Właśnie pisałem oświadczenie if z dość długimi nazwami nieruchomości i napotkałem ten problem.
Powiedzmy, że mamy takie wyrażenie if:
if(_someViewModelNameThatIsLong.AnotherPropertyINeedToCheck == someValue &&
!_someViewModelNameThatIsLong.ThisIsABooleanPropertyThatIsImportant)
{
//Do something
}
Druga właściwość jest typu boolowskiego i nie ma sensu mieć podobnego do stetement
if(boleanValue == true)
Czy istnieje lepszy sposób na podkreślenie negacji niż postawienie jej !
na pierwszym planie . Wydaje mi się, że można to łatwo nadzorować podczas czytania kodu i może potencjalnie powodować problemy z debugowaniem
readability
Ivan Crojach Karačić
źródło
źródło
_someViewModelNameThatIsLong
if( ! something)
vsif(!something)
... && model.Prop == false)
? Osobiście bardzo rzadko używam!
, zbyt łatwo to przeoczyć.Odpowiedzi:
A następnie w obiekcie modelu widoku
(zakładając, że someValue jest łańcuchem i nie jest znany obiektowi modelu)
To nie tylko podkreśla! operatora, ale ogólnie czyni go bardziej czytelnym. Teraz w metodzie wywoływania widzę jeden warunek, który powinien mieć dobrą nazwę, aby opisać warunek w kontekście obiektu wywołującego. A w obiekcie modelowym widzę, co to oznacza w kontekście obiektu modelowego.
źródło
someValue
może być konieczny parametrNeedsMeToDoSomething
metody, w zależności od twojej sytuacji.Włóż go do własnego bloku if przed oceną mniej ważnych warunków. Nie tylko łatwiej byłoby czytać bez bałaganu w innych warunkach, ale jest to również pierwszy warunek, który programista odczyta. Połącz to z pomysłem wspomnianym już przez @scrwtp, aby przypisać do zmiennej o znaczącej nazwie, a otrzymasz:
Jeśli programujesz w języku kompilatora, w większości przypadków są one zagnieżdżane, jeśli bloki łączą się na końcu, o ile nie wstawisz kodu między zewnętrznym if i wewnętrznym if, więc nie powinno to wpływać na wydajność w tych skrzynie
źródło
Jeśli używasz C / C ++, preprocesor może zapewnić czytelność.
źródło
Po prostu wyodrębnię
W metodzie, która zwraca to. Jeśli nazwiesz tę metodę NotThisIsABooleanPropertyThatIsImportant, wszystko powinno być w porządku.
źródło