Ben yaşlılar arasında küçük geliştiriciyim ve onların düşüncelerini ve akıl yürütmelerini anlama konusunda çok zorlanıyorum.
Domain Driven Design (DDD) okuyorum ve neden bu kadar çok sınıf oluşturmamız gerektiğini anlamıyorum. Bu yazılım tasarım yöntemini takip edersek, en fazla iki dosya ve 3-4 işlevle değiştirilebilen 20-30 sınıfla bitiririz. Evet, bu karışık olabilir, ama çok daha sürdürülebilir ve okunabilir.
Ne zaman bir tür ne yaptığını görmek istediğimde EntityTransformationServiceImpl
, birçok sınıfı, ara yüzü, işlev çağrısını, kurucuyu, yaratılışını vb. Takip etmem gerekiyor.
Basit matematik:
- 60 satır kukla kod vs 10 sınıf X 10 (diyelim ki tamamen farklı bir mantığa sahibiz) = 600 karışıklık kodu satırı - 100 sınıf + biraz daha fazlası bunları sarmak ve yönetmek için; bağımlılık enjeksiyonu eklemeyi unutmayın.
- 600 satırlık kod okunuyor = bir gün
- 100 sınıf = bir hafta, hangisinin ne yaptığını hala unutma
Herkes bakımı kolay olduğunu söylüyor, peki ne için? Her yeni işlevsellik eklediğinizde, fabrikalar, varlıklar, hizmetler ve değerler içeren beş sınıf daha eklersiniz. Bu tür bir kodun dağınık koddan daha yavaş hareket ettiğini hissediyorum.
Diyelim ki, bir ay içinde 50K LOC karışık kod yazarsanız, DDD işi çok fazla inceleme ve değişiklik gerektirir (her iki durumda da testleri önemsemiyorum). Daha fazla değilse, basit bir ekleme hafta alabilir.
Bir yılda, çok sayıda karışık kod yazarsınız ve hatta birden çok kez yeniden yazabilirsiniz, ancak DDD stilinde, hala karışık kodla rekabet edebilecek kadar özelliğiniz yoktur.
Lütfen açıkla. Neden bu DDD stiline ve birçok desene ihtiyacımız var?
UPD 1 : Çok büyük cevaplar aldım, lütfen bir yere yorum ekleyebilir veya cevabınızı okuma listesi için bağlantı ile düzenleyebilir misiniz (hangisinden başlayacağınızdan emin değilsiniz, DDD, Tasarım Desenleri, UML, Kod Tamamlandı, Refactoring, Pragmatik,. .. pek çok iyi kitap) tabii ki sıralı olarak, böylece bazılarınız gibi anlamaya başlayabilir ve kıdemli olabilirim.