Найти тему
Webнутый

Принцип программирования YAGNI

Оглавление

YAGNI: You Aren't Gonna Need It

Привет программист, в мире разработки программного обеспечения существует множество принципов, направленных на повышение эффективности и качества кода. Мы с вами уже рассмотрели 2 из них - KISS(https://dzen.ru/media/webnutiy/bud-prosce-glupyshka-ili-je-prosto-kiss-6533bb48741c0b2efc967012) и DRY(https://dzen.ru/media/webnutiy/dryg-luchshii-drug-programmista-65316fc2ac1eaf2192b214d6).

Теперь пришло время к
YAGNI - "You Aren't Gonna Need It". При разработке ПО о нём никак нельзя забывать, иначе можно наломать дров, а историю из своей жизни и как я пренебрёг им, расскажу в конце статьи.
Давайте приступать!

Вам это не понадобится!

Ключевая мысль данного принципа заключается в том, что не нужно писать код, который в теории может понадобится - поберегите свои силы и нервы в конце концов!

YAGNI напоминает нам о том, что не стоит внедрять в проект функции, которые в данный момент не несут никакой ценности. Этот принцип предлагает разработчикам быть осторожными с предварительным проектированием и избегать создания функций "на всякий случай". В данный момент необходимо сосредоточиться на текущих потребностях проекта, а не на тех, которых может и не быть вовсе.

Не следуя данному принципу мы подвергаем себя будущим проблемам, связанными с тем, что нужно двигать этот мёртвый кусок кода и поддерживать его. Дада, тот кусок кода, который ещё не используется, который никому не нужен, а вы уже потратили на него столько времени. В этом его суть - кратко и понятно.

Не всё так однозначно

YAGNI не говорит нам - не думай наперёд, не продумывай как это будет работать, не ищи вариант получше. Он больше склонен к KISS, не нужно так усложнять себе жизнь. Ты можешь продумать вариант, который решит проблему, не нужно придумывать лучшее решение с первого раза(пока не стоит задача улучшить текущее решение - не делай этого, вдруг команда разработки решит избавиться от этого куска кода).

Вывод: Делаем то, что надо, а до остального руки дойдут позже.

Ну что же, пришло время для моей истории 🧐

А как там в реальности?

Как-то раз, в день, когда ничего не предвещало беды, мне пришла в голову мысль посмотреть задачки беклога и поделать их наперёд, потому что текущие задачки уже были сделаны. Начал я реализовывать отдельный микросервис для основного приложения компании. Спустя пару дней реализовал, и так как я сделал свою задачку, то вылил ветку в основной код с изменениями, к которым пока не готово приложение. Например: добавил пару колонок к таблицам, удалил некоторые данные из каких-то обработчиков.

Уже чувствуете, чувствуете - что-то не так. Резко, на следующий день с утра пораньше нужно было вылить хотфикс в релиз иииииииииииии..... 😤
Всё, мой код полетел туда - чуть не сломал всё и оставил приложение неработающим на продолжительный срок. Пришлось потом откатывать - было долго и весело :)

И да, этот код так и не использовался спустя пару месяцев - ведь это пока не нужно, сейчас есть задачки куда важнее.


Оцени публикацию, оставь своё мнение в комментариях и попробуй угадать какой принцип мы рассмотрим следующим.

На связи, ваш
Webнутый👋