Я просто писал оператор if с довольно длинными именами свойств и столкнулся с этой проблемой.
Допустим, у нас есть выражение if, подобное этому:
if(_someViewModelNameThatIsLong.AnotherPropertyINeedToCheck == someValue &&
!_someViewModelNameThatIsLong.ThisIsABooleanPropertyThatIsImportant)
{
//Do something
}
Второе свойство имеет логический тип, и нет смысла иметь такой тип
if(boleanValue == true)
Есть ли лучший способ подчеркнуть отрицание, чем поставить !
перед. Мне кажется, что это легко можно заметить при чтении кода и может вызвать проблемы с отладкой.
readability
Иван Крояч Карачич
источник
источник
_someViewModelNameThatIsLong
if( ! something)
vsif(!something)
... && model.Prop == false)
? Лично я очень редко пользуюсь!
, это слишком легко не заметить.Ответы:
И тогда в представлении модель объекта
(предполагается, что someValue является строкой и не известен объекту модели)
Это не только подчеркивает! оператор, но это делает его более читабельным в целом. Теперь в вызывающем методе я вижу одно условие, которое должно быть хорошо названо, чтобы описать условие в контексте вызывающего объекта. И в объекте модели я вижу, что это означает в контексте объекта модели.
источник
someValue
что вNeedsMeToDoSomething
зависимости от вашей ситуации может потребоваться указать параметр метода.Поместите его в свой блок if перед оценкой менее важных условий. Мало того, что было бы легче читать без беспорядка других условий, но также и первое условие, которое будет читать программист. Объедините это с идеей, уже упомянутой @scrwtp, назначить переменную со значимым именем, и вы получите:
Если вы программируете на языке компилятора, в большинстве случаев эти вложенные блоки if объединяются в конце концов, если вы не вставляете код между внешним if и внутренним if, поэтому это не должно влиять на производительность в этих случаев.
источник
Если вы используете C / C ++, то препроцессор может обеспечить читабельность.
источник
Я бы просто извлечь
В методе, который возвращает это. Если вы назовете этот метод NotThisIsABooleanPropertyThatIsImportant, с вами все будет в порядке.
источник