Технічно ні, але в іншому випадку абсолютно Так !!!
Забудьте про "Це особисті переваги", "код буде працювати чудово", "він добре працює для мене", "він є більш читабельним" yada yada BS. Це може легко призвести до дуже серйозних проблем , якщо ви зробите помилку , і повірте мені , це дуже легко зробити помилку , коли ви кодуванням (не вірить?, Перевірити знаменитий Apple , йти на провал помилки ).
Аргумент: "Це особисті переваги"
Ні, це не так. Якщо ви не одноосібна команда, яка виїжджає на Марс, ні. Більшість часу там будуть інші люди, які читають / змінюють ваш код. У будь-якій серйозній команді з кодування це буде рекомендований спосіб, тому це не є «особистими уподобаннями».
Аргумент: "код буде працювати нормально"
Так само і з кодом спагетті! Це означає, що це нормально створити?
Аргумент: "для мене це добре працює"
У своїй кар’єрі я бачив так багато помилок, які були створені через цю проблему. Ви, напевно, не пам’ятаєте, скільки разів ви коментували '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: Бонусні бали дістаються тому, хто помітив помилку у наведеному вище прикладі.