Geliştirmek istediğim web sitelerinde sıkça görebildiğim ve bazı yardımlardan memnun kalacağım bir kod örneği var. Çoğunlukla geçersiz kullanıcı girdisini ortadan kaldırmayı amaçlayan bir page_load yönteminde 5-10 iç içe if ifadeleri görüyorum, ancak bu çirkin görünüyor ve okumak ve korumak zordur.Okunabilirlik ifadeleri varsa çok fazla sayı nasıl toplanır
Aşağıdaki kod örneğini temizlemenizi nasıl öneriyorsunuz? Ortadan kaldırmaya çalışıyorum ana şey ifadeler iç içe.
string userid = Request.QueryString["userid"];
if (userid != ""){
user = new user(userid);
if (user != null){
if (user.hasAccess){
//etc.
}
else{
denyAccess(INVALID_ACCESS);
}
}
else{
denyAccess(INVALID_USER);
}
}
else{
denyAccess(INVALID_PARAMETER);
}
Gördüğünüz gibi, bu çok hızlı bir şekilde oldukça dağınıklaşır! Bu durumda takip etmem gereken herhangi bir desen veya uygulama var mı? Guard Clauses
efendim
string userid = Reuest.QueryString["userid"];
if(userid==null)
return denyAccess(INVALID_PARAMETER);
user = new user(userid);
if(user==null)
return denyAccess(INVALID_USER);
if (!user.hasAccess)
return denyAccess(INVALID_ACCESS);
//do stuff
PS kullanarak
alışkanlık ulaşmak: sadece yöntem adı kendisi (yöntem adı ne yaptığını testi ifade etmelidir Not) okuyarak bazı yeni kişi o/o mantığı anlayan kodunu okur understand.If kolay olacak bu durumda bir kullanıcı var == null üstünde bir dava var efendim – lemon
Dava == null kullanıcısı zaten kontrol edildi. İfadelerin yazıldığı sıra önemlidir. Null, sonra yasadışı değerler vb. Için nesneleri kontrol ederek başlamalısınız. –
Sanırım bu yaklaşımı beğendim, tavsiye için teşekkürler. – NickGPS