Eldeki sorun için tasarım yapma konusunda büyük bir inanan ve "bir gün buna ihtiyacımız olabilir" için hazırlamanız gereken tüm davaları tahmin etmeye çalışarak tasarımınızı dışlamamasına inanıyorum.
Temel olarak, belirli bir gereksinimler listesi göz önüne alındığında, buna karşı tasarım yapın, ancak bu yapmamanız gerektiği anlamına gelmez:
- Tasarımınızdaki yönleri, çözümünüzdeki bu yönleri kodlamak yerine, yapılandırılabilir hale getirin. Çalışma zamanında geçen parametreler veya başlangıçta okunan harici bir konfigürasyon aracılığıyla (veya HUP’tan sonra).
- kodunuzu sihirli sayılarla işaretleyin,
- Yeniden kullanabileceğiniz bir yazılı şey olup olmadığını görmek için bir göz atmaktan kaçının, belki de mevcut çözümü ve yeni şartlar için uygun olan bir yaklaşımı sağlamak için mevcut çözümü uyarladıktan sonra.
"Olası gelecekler" için tasarım yaparken asıl sorun, her zaman sadece tahmin etmenizdir. Muhtemelen eğitimli tahminler yapmak, ancak "itmek can sıkmaya başladığında" hala bir dizi tahminde bulunuyor.
Bunu yaparak, çözümünüzü bilinen gereksinim (ler) iniz tarafından tanımlandığı şekilde elde etmek yerine genel dava (lar) a sığdırmak için gerçekten sıkma olasılığınız da çok yüksektir.
Bu ne diyor? "Sahip olduğun tek şey bir çekiç olduğunda, her şey bir çiviye benzemeye başlar."
Keşke birisinin "Her ne kadar gelecekte görebileceğimiz bu genel durumlar için daha uyumlu bir çözüm" dediğini duyduğumda bir pound olsaydı.