YAGNI (You Aren't Gonna Need It)
"İhtiyacınız olana kadar sisteme yeni özellik eklemeyin."
Açıklama:
"Belki ileride lazım olur", "Gelecekte şuraya da bağlarız" diyerek yazılan kodların %80'i hiçbir zaman kullanılmaz, ancak sonsuza dek bakım maliyeti (Technical Debt) oluşturur.
Kod Örneği (Anti-Pattern):
// Gelecekte belki MongoDB, Oracle vs. kullanırız diyerek yazılan devasa arayüz
class DatabaseFactory {
static getDatabase(type) {
if (type === 'mysql') return new MySQLConnection();
if (type === 'mongodb') return new MongoConnection(); // Henüz MongoDB yok!
if (type === 'oracle') return new OracleConnection(); // Oracle hiç kullanılmayacak
}
}
Nasıl Uygulanır (KISS & YAGNI):
Şu an sadece MySQL'e mi ihtiyacınız var? Sadece onu yazın. İleride değişmesi gerekirse o zaman yeniden düzenlersiniz (Refactoring). Geleceği tahmin etmeye çalışıp gereksiz yere soyutlamalar kurgulamayın.