Bir süredir bu konuyu düşünüyorum.
Sonuç olarak - bu bir nicelik meselesi değil, kalite ve bağlam meselesidir.
Örneğin, uygun bir proje yapısı dosyaların nerede bulunduğunu açıklayan yorumları yener (uygulama ve niyet)
Benzer şekilde, bağlamı açıklığa kavuşturmak için sınıflandırma adlandırma atıyor (Bir Hastada Id -> Hasta.Id).
DDD'nin iyi dokümantasyonda söz sahibi olduğuna inanıyorum - sınıflandırma bağlam sağlar, bağlam sınırlar oluşturur ve sınırlar kasıtlı uygulamalara yol açar (bunun olması gerektiğinden ziyade ait olduğu yer budur).
Kendi başına kod, dokümantasyon olarak kabul edilecek kadar iyi değildir. Çoğu durumda sorun, kodların çalışmasının yorumlandığı veya yorumlanmadığı gerçeğinde değil, itici güç (alan mantığı) değildir.
Bazen kimin patron olduğunu unuturuz - kod değişirse, etki alanı mantığı veya muhakemesi olmamalı, ancak etki alanı mantığı veya muhakemesi değiştiğinde kod kesinlikle değişecektir.
Tutarlılık da çok önemlidir - tutarlı değilse kendi başına konvansiyon işe yaramaz.
Tasarım kalıpları sadece 'iyi uygulama' değildir - geliştiricilerin anlaması gereken lingo. Bir geliştiriciye bir Fabrikaya yeni bir tür eklemesini söylemek, yönteme yeni bir tür eklemekten (bağlam ve tutarlılığın zayıf veya eksik olduğu) daha iyi anlaşılır.
Mücadelenin yarısı aşinalıktır .
Bir yan not olarak, çok sayıda belgeyi tercih eden API'ler de alan adına ve içeriğe duyarlıdır. Bazen çoğaltma işlevselliği kötü değildir (aynı şey, farklı bağlamlar) ve ayrı olarak ele alınmalıdır.
Yorum yapmak açısından, mantığın ardındaki alan mantığını belirtmek her zaman iyidir.
Örneğin, tıp endüstrisinde çalışıyorsunuz. Yönteminizde "IsPatientSecure = true;"
Şimdi, iyi bir programcı hastanın güvenli olarak işaretlendiğini anlayabilir. Ama neden? Etkileri nelerdir?
Bu durumda hasta, tesis dışı bir hastaneye güvenli bir şekilde nakledilen bir mahkumdur. Bunu bilerek, bu noktaya giden olayları (ve belki de hala olması gerekenleri) hayal etmek daha kolaydır.
Belki de bu yazı en iyi ihtimalle felsefi görünüyor - ama yazdığınızın 'mantık' ya da 'mantık' olduğunu unutmayın - kod değil.