Bunun özel projeye bağlı olduğunu düşünüyorum.
Örneğin, farklı işletme alanları birbirinden tamamen bağımsızsa, işletme alanına göre organize olurdum.
Ancak, iş alanları arasında paylaşılan kod varsa veya daha doğrusu, iş alanları aynı kod tabanının farklı varyantlarıysa , teknik alana göre düzenlemek daha mantıklı görünüyor. Herhangi bir Nesne Odaklı dil kullanırsanız, genel denetleyicilerinizi, modellerinizi vb. İşletmenize özgü dosyalarınızda daha ince yapmak için alt sınıflandırabilirsiniz.
Ayrıca, iki - paylaşılan kodu kendi etki alanına ayırın ve bunu diğer alanlarda kullanın (altın). Bu size bağırsak hissi ile çalışan düzeninizi verir, ancak iş alanları arasında paylaşılan koda izin verir.
Domain1 # This domain changes bits of standard MVC code
controllers
models
views
Domain2 # this domain only modifies views, all else is standard
views
Shared # Here is the better part of code base
controllers
models
views
PS. Çoğu çerçevenin, yalnızca paylaşılan kodunuz varsa ve aksi takdirde ayrı projeler oluşturacak olmanız durumunda, farklı iş alanlarını tek bir projede karıştırmayı bekledikleri için teknik alana göre organize olduğunu düşünüyorum .
DÜZENLE:
Örneğin, bir şirketin deposunu işleyen bir web uygulaması olduğunu varsayalım. Genel formda bu birçok şirket için geçerli olabilir, ancak her birinin karşılanmayan ve satın almalarını yasaklayan bazı özellikleri olabilir. Örneğin, bunlardan biri forkliftlere tablet dağıttı ve diğerleri için özel bir görünüme ihtiyaç duyuyor öğeleri varsayılan iki yerine üç seviyeye düzenlemek için.
Elbette bu şirketlerin her biri için projeyi çatallayabilirsiniz. Ancak çerçeve / dil izin veriyorsa, genel projenin bitlerini ve parçalarını her müşterinin ihtiyaçlarına göre özelleştirmek ve bunları Business Domain düzenlerinde düzenlemek için alt sınıflandırma veya eklentiler vb. Kullanabilirsiniz.
Örneğin, genel proje JSON'a yalnızca Öğenin kendisini dışa aktarıyorsa, Domain1 denetleyiciyi alt sınıflandırabilir ve son teslim sorunlarını da dışa aktarabilir.
Daha sonra Domain1'in Domain2 için de geçerli bir bileşeni olduğunu fark ederseniz, jenerik sürümünü Paylaşılan'a çıkarabilirsiniz.
Dediğiniz gibi, teknik çerçeveye göre birçok çerçeve düzenliyor ve şimdilik kullandığım şey bu, çünkü FW seçimim bunu kolaylaştırıyor. Ama biraz (veya çok) dirsek yağı ile, ben de Business Domain düzenini desteklemek için dahil yollarını yeniden yazabilirsiniz düşünüyorum.