Технически нет, но в остальном абсолютно Да !!!
Забудьте о «Это личные предпочтения», «код будет работать нормально», «он работал нормально для меня»"это более читабельно" Яда Яда Б.С.Это может легко привести к очень серьезным проблемам, если вы допустите ошибку и поверите мне, что очень легко ошибиться, когда вы кодируете (Не верьте ?, посмотрите знаменитую ошибку Apple go to fail ).
Аргумент: «Это личное предпочтение»
Нет, это не так.Если только вы не команда из одного человека, уезжающая на Марс, нет.Большую часть времени будут другие люди, читающие / изменяющие ваш код.В любой серьезной команде разработчиков кода это будет рекомендуемый способ, поэтому он не является «личным предпочтением».
Аргумент: «код будет работать нормально»
Так же как и код спагетти!Означает ли это, что все в порядке, чтобы создать его?
Аргумент: "у меня все работает нормально"
В моей карьере я видел много ошибок, созданных из-заЭта проблема.Вы, вероятно, не помните, сколько раз вы прокомментировали 'DoSomething()'
и сбиты с толку тем, почему 'SomethingElse()'
вызывается:
if (condition)
DoSomething();
SomethingElse();
Или добавили SomethingMore и не заметили, что он не будет вызван(хотя отступ подразумевает иное):
if (condition)
DoSomething();
SomethingMore();
Вот пример из реальной жизни, который я имел.Кто-то хотел выключить все журналы, чтобы запустить поиск и замену "console.log"
=> //"console.log"
:
if (condition)
console.log("something");
SomethingElse();
Увидеть проблему?
Даже если вы думаете, «это так тривиальноЯ бы никогда этого не сделал ";помните, что всегда будет член команды с более низкими навыками программирования, чем вы (надеюсь, вы не худший в команде!)
Аргумент: "это более читабельно"
Если я что-то узнал о программировании, так это то, что простые вещи очень быстро становятся очень сложными.Очень часто это:
if (condition)
DoSomething();
превращается в следующее после того, как оно было протестировано с различными браузерами / средами / вариантами использования или добавлены новые функции:
if (a != null)
if (condition)
DoSomething();
else
DoSomethingElse();
DoSomethingMore();
else
if (b == null)
alert("error b");
else
alert("error a");
И сравнитеэто с этим:
if (a != null) {
if (condition) {
DoSomething();
}
else {
DoSomethingElse();
DoSomethingMore();
}
} else if (b == null) {
alert("error b");
} else {
alert("error a");
}
PS: Бонусные баллы идут к тому, кто заметил ошибку в примере выше.