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