Главная

Не используйте else в своем коде.

Или почему не стоит использовать else в JavaScript коде.

Поделиться:
 

39+

Ключевые слова if-else являются базовыми почти в каждом языке программирования. С их помощью можно создавать простую условную логику, понятную каждому. Скорее всего, если вы программист, вы знакомы с “else”. Но если вы хороший программист, вы его не используете. Когда я начинал свою карьеру, моей главной проблемой было чрезмерное использование “else” выражений. В какой-то момент я осознал свои ошибки и перестал его использовать. Случилось это лет 5 назад. Давайте объясню!

This image has an empty alt attribute; its file name is carbon-2020-03-18T080852.167-986x1024.png

Почему?

Подумайте над выражением «если А, то делай это, если не А, то это». Этот пример не проблемный, если A является двоичным — проблемное пространство составляет только 2 случая. Но если представляет собой комбинацию двоичных выводов или содержит более крупные выражения, пространство альтернатив может быть неожиданно большим и трудным для понимания, тестирования и обслуживания.

Я считаю, что нужно избегать использования if/ else if, так как это чрезвычайно загромождает код. Описывать условные выражения можно с помощью операторов if, которые должны быть взаимоисключающими и не зависеть от порядка выполнения. К тому же это заставляет писать все условия, необходимые для обработки данных, в начале каждой функции. А если для обработки сложных условий использовать полиморфизм, то код станет еще более понятным и читабельным. (State Pattern).

Пример

Отличный пример — светофор (объект TrafficLight) с тремя различными состояниями: красным, желтым и зеленым, каждое из которых имеет свой определенный набор правил.

Правила:
Допустим, светофор в состоянии Red. После небольшой задержки на состоянии Red, состояние меняется на Green. Затем, после еще одной задержки, состояние Green меняется на Yellow. После очень короткой задержки состояние Yellow меняется на Red. И так далее.

Не используйте if-else

Простой способ

Удалить стоит только else выражения и переписать условия.

Или же можно использовать switch-case вместо if-else.

Также можно воспользоваться шаблоном “StatePattern”, чтобы убрать все if-else.
Светофор: Зеленый (1 минута) → Желтый (10 секунд) → Красный (1 минута)

Output:

Green → for 1 minute
Yellow → for 10 seconds
Red → for 1 minute
Green → for 1 minute
Yellow → for 10 seconds
Red → for 1 minute
Green → for 1 minute
Yellow → for 10 seconds
Red → for 1 minute
Green → for 1 minute
Yellow → for 10 seconds

В этой статье я продемонстрировал пример хорошего и плохого кода. Также я рассказал о том, почему не стоит использовать else выражения. Надеюсь, статья была для вас полезной.
Спасибо

39+