Aşırı gayretli (adlandırılır YAGNI uygulanması Sayımı tarafından Tasarımı içinde Object Oriented Kalkınma Tuzaklar herhangi mantıklı kişi gereksinimleri olduğunu söyleyebilirdi bir ortamda) kesinlikle değişecek. Ve tekrar tekrar değiştirin.
Eğer (zor) her şeyi tam olarak şu anki şartlara göre kodladıysanız — bu daha genel olamaz mı? YAGNI tokmak ile - ve sonra gereksinimler büyük ölçüde değişebilir (ancak makul bir şekilde tahmin edilebilecek şekilde), o zaman bu uyum için 2 hafta ile 20 dakika arasında bir fark olabilir.
GÜNCELLEME: Açıklığa kavuşturmak için, işte olanlardan çok uzak olmayan kurgusal bir örnek. Yığın Taşması, rozetleri desteklemek için tasarlandı, ancak ilk başta yalnızca dört rozet düşünebileceklerini varsayalım. Sadece dört kişi, böylesine küçük bir sayı, bu yüzden sitedeki tüm mantık boyunca tam olarak dört rozet için destek sağladılar . Veritabanında, kullanıcı bilgisinde, tüm ekran kodunda. Çünkü "Ya bir daha ihtiyacın olmayacak" diye düşünemeyeceğin rozetlere ihtiyacın var, değil mi? Diyelim ki site yayına giriyor ve insanlar yeni rozetler önermeye başlıyor. Her rozetieklenmesi iki hafta kadar sürer, çünkü her yerde ince ayar yapmak için çok fazla kodlama vardır. Ama yine de, "Ya'ya ihtiyaç duymayacaksınız", bugünkü listeden daha fazla rozete ihtiyaç duymaz, bu nedenle genel rozet koleksiyonunu desteklemek için hiçbir zaman yeniden düzenleme yapılmaz. Böylesi genel bir koleksiyon daha fazla zaman alabilir miydi? Varsa, fazla değil.
YAGNI değerli bir ilkedir, ancak (ab) kötü tasarım ve uygun olmayan kodlamayı affetmek için kullanılmamalıdır. Bir denge var ve deneyimle, ona yaklaştığımı düşünüyorum.