Myślę, że to zależy od konkretnego projektu.
Na przykład, jeśli różne domeny biznesowe są całkowicie od siebie niezależne, organizowałbym według domen biznesowych.
Jeśli jednak istnieje wspólny kod między domenami biznesowymi, a raczej domeny biznesowe to różne warianty tej samej bazy kodu, logiczne wydaje się organizowanie według domen technicznych. A jeśli używasz dowolnego języka obiektowego, prawdopodobnie możesz podklasować ogólne kontrolery, modele itp. W plikach biznesowych, aby były cieńsze.
Między nimi jest również (złoty) środek - usuń wspólny kod do jego własnej domeny i użyj go w innych domenach. Daje to układ oparty na przeczuciach, ale pozwala na udostępnianie kodu między domenami biznesowymi.
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. Myślę, że większość frameworków organizuje się według domen technicznych tylko dlatego, że zwykle oczekują, że zmieszasz różne domeny biznesowe w jeden projekt tylko wtedy , gdy masz wspólny kod, a w przeciwnym razie stworzysz osobne projekty.
EDYTOWAĆ:
Załóżmy na przykład, że istnieje aplikacja internetowa, która obsługuje magazyn firmy. W ogólnej formie może to dotyczyć wielu firm, ale każda z nich może mieć pewne niespełnione szczegóły i zabrania ich zakupu. Np. Jedna z nich wdrożyła tablety do wózków widłowych i potrzebuje specjalnego widoku dla nich, a jeszcze inna chce organizować przedmioty na trzy poziomy zamiast domyślnych dwóch.
Oczywiście możesz rozwidlić projekt dla każdej z tych firm. Ale jeśli pozwala na to środowisko / język, możesz użyć podklasy lub wtyczek itp., Aby dostosować części ogólnego projektu do potrzeb każdego klienta i uporządkować je w układach Domeny Biznesowej.
Np. Jeśli ogólny projekt eksportuje do JSON tylko sam element, Domena 1 może podklasować kontroler i sprawić, że eksportuje również ostatnie problemy z dostawą.
A jeśli później okaże się, że Domena 1 ma składnik, który jest również ważny dla Domeny 2, możesz wyodrębnić jego ogólną wersję do Udostępnionego.
Jak powiedziałeś, wiele frameworków organizuje się według dziedzin technicznych i właśnie z tego korzystałem, tylko dlatego, że mój FW ułatwia to. Ale przy odrobinie (lub dużo) smaru łokciowego myślę, że mógłbym przepisać ścieżki dołączania, aby obsługiwały również układ domeny biznesowej.