Принцип YAGNI

·

2 min read

Принцип YAGNI (You Ain't Gonna Need It) переводится как "Тебе это не понадобится". Он говорит о том, что не стоит добавлять функциональность в код, если она не нужна прямо сейчас. Этот принцип широко используется в гибкой разработке (Agile) и помогает избегать ненужной сложности в коде.

Почему важно следовать YAGNI?

Экономия времени – не тратим ресурсы на ненужные функции.

Простота кода – код проще читать, тестировать и поддерживать.

Гибкость – легче адаптировать код к реальным требованиям.

Меньше багов – меньше кода = меньше потенциальных ошибок.

"Лучший код – это тот, который вообще не пришлось писать."

Как применять YAGNI на практике?

❌ Плохой код (нарушает YAGNI)

class Order {
    public function calculateDiscount() {
        // Возможно, в будущем мы будем учитывать статус клиента
        if ($this->customer->isVip) {
            return $this->total * 0.1;
        }
        return 0;
    }
}

🔴 Проблема:

  • В системе нет VIP-клиентов, но код уже учитывает их.

  • Возможно, этот код никогда не понадобится, а поддерживать его придется.

  • Чем больше таких "запасных" решений, тем сложнее код.

✅ Хороший код (следует YAGNI)

class Order {
    public function calculateDiscount() {
        return 0; // Пока скидок нет, не усложняем
    }
}

☑ Если в будущем появятся VIP-клиенты, тогда мы добавим нужную логику. Пока в этом нет необходимости – код остается чистым.

Как избежать нарушения YAGNI?

Плохой подход:

  • "Давайте сразу добавим поддержку промокодов, реферальной системы и кэшбэка!"

  • "Вдруг в будущем мы захотим сделать учет налогов?"

Хороший подход:

  • "Сейчас нужна только базовая скидка? Ок, делаем её и ничего лишнего."

  • "Когда появятся новые требования – добавим нужные фичи."

Если кратко:

YAGNI – это принцип, который говорит: "Не пиши код, который не нужен прямо сейчас". Это помогает избежать ненужной сложности и ускоряет разработку.

Заключение

Принцип YAGNI помогает писать чистый, понятный и гибкий код. Если есть желание добавить что-то "на будущее", спроси себя: А действительно ли это нужно прямо сейчас? Если нет – не пиши этот код.

Помни: Чем меньше кода, тем лучше. 🚀

Дополнительные материалы:

https://web-creator.ru/articles/yagni