Я помню, что мне сказали, что наличие инструкции if if(10 == $myVariable)
- это плохая практика. Однако почему это плохая практика и как ее зовут? (Я могу смутно помнить, что у него есть определенное имя).Переключение if-утверждения вокруг плохой практики?
ответ
Согласно a post на блоге Джефф Этвуд Coding Horror, StackOverflow пользователя zneak называет это Состояние Yoda. Описание выглядит следующим образом:
Использование
if(constant == variable)
вместоif(variable == constant)
, какif(4 == foo)
. Потому что это похоже на высказывание «если синее небо» или «если высокий мужчина».
Это относится к персонажу Звездных войн Yoda, который always talks backwards.
В качестве exussum упоминаний в his answer, это иногда не считается плохой практикой, потому что он может избежать опечаток.
хорошая практика из-за случайных опечаток
if (10 = $myVariable)
не скомпилируется, где в качестве
if ($myVariable = 10)
волю, и если утверждение верно делают, а также установить $ MYVARIABLE на 10
является довольно легко сделать, и трудно обнаружить ошибку.
Как вы можете сказать, что это хорошая практика? Если вы внимательно прочтете свою цитированную статью в вики, вы увидите также критику и недостатки. Так что это действительно основанный на мнениях ответ и не очень беспристрастный. –
Я согласен, что это вариант, но большинство вопросов, связанных с «хорошей практикой», есть. Например, использование пробела при программировании добавляет ненужные байты в файл (критика и недостаток). Хотя я не знаю никакого поддерживаемого кода, который не использует пробелы. один человек хорошая практика всегда будет другой плохой практикой.Думайте о программистах с использованием пробелов, безусловно, является недостатком. – exussum
Я согласен с вами, но разве вы не должны упоминать об этом тоже? Таким образом, каждый может принимать свои собственные решения, основываясь на фактах, а не на других мнениях? Просто предложение, потому что в вашем ответе я не вижу, что это просто мнение. Для меня, как читателя, я воспринимаю это как тяжелые факты, если критики не учитываются. –
Это также может быть хорошей практикой на языках, где доступ к null
может привести к сбою, например, Java. Например, следующий безопасен, даже если MYVARIABLE является null
:
if ("foo".equals(myVariable)) {
// Do something
}
Принимая во внимание следующие будут бросать NullPointerException
:
if (myVariable.equals("foo")) {
// Do something
}
Если стандарты кодирования требуют, чтобы переменная приходит первым, ваш код сделал более подробное требование по нечетной проверке:
if (myVariable != null && myVariable.equals("foo")) {
// Do something
}
- 1. Встраиваемые стили плохой практики?
- 2. Полиморфные отношения плохой практики?
- 3. Почему плохой практики SendKeys?
- 4. скрыты глобалы плохой практики программирования?
- 5. Это использование динамической плохой практики?
- 6. Подпространства для организации плохой практики?
- 7. Почему этот цикл плохой практики?
- 8. URL-адрес POST плохой практики?
- 9. Объявляет строку, полную «плохой» практики?
- 10. Циркулярные ссылки на классы плохой практики?
- 11. Создает частный конструктор для тестирования плохой практики?
- 12. Объявляет переменную внутри вызова метода плохой практики?
- 13. Статические локальные переменные в методах плохой практики?
- 14. Заставляет заказ/размещение #include плохой практики?
- 15. C# возвращение типа вывода плохой практики?
- 16. Является ли EventToCommand передачей плохой практики EventArgs?
- 17. MVVM - это команда в модели плохой практики?
- 18. Поиск через документ внутри плохой практики документа?
- 19. - это mysql_connect в заголовке плохой практики?
- 20. Изменяет список таким образом плохой практики?
- 21. вызывает функции из других функций плохой практики?
- 22. Изменяет массивы в нескольких функциях плохой практики?
- 23. Использование всей доступной темы плохой практики?
- 24. Весенняя ботинок @ Транснациональная имбрация плохой практики?
- 25. JavaScript: расширяет прототип динамически плохой практики?
- 26. Отражения плохой или хорошей практики для команд
- 27. Почему у плохой практики есть viewController?
- 28. Слишком много сеансовых переменных плохой практики?
- 29. Почему опустошение или падение таблицы плохой практики?
- 30. Использует слишком много частичных представлений плохой практики?
Это «условия Йода». – DCoder
На самом деле некоторые яростно думают, что это хорошая практика, если вы случайно наберете '(10 = $ myVariable)', так как это вызывает ошибку в отличие от '($ myVariable = 10)'. Этот вопрос, в первую очередь, основан на мнениях. – sjagr
и его выполнение для предотвращения случайных присвоений, которые всегда возвращают true, если вы должны оставить один из '=' s. – sevenseacat