Penso che ciò dipenda da un progetto specifico.
Ad esempio, se i diversi domini aziendali sono totalmente indipendenti l'uno dall'altro, organizzerei per dominio aziendale.
Ma se esiste un codice condiviso tra i domini aziendali, o meglio, i domini aziendali sono diverse varianti della stessa base di codice, allora sembra più logico organizzarsi per dominio tecnico.
E se utilizzi qualsiasi tipo di linguaggio orientato agli oggetti, puoi probabilmente creare sottoclassi di controller generici, modelli, ecc. Nei tuoi file aziendali specifici per renderli più sottili.
C'è anche una (a metà) golden tra le due - elimina il codice condiviso nel proprio dominio e lo usa in altri domini. Questo ti dà il tuo layout intuitivo, ma consente il codice condiviso tra i domini aziendali.
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. Penso che la maggior parte dei framework organizzi per dominio tecnico solo perché tendono ad aspettarsi di mescolare diversi domini aziendali in un singolo progetto solo se hai codice condiviso e altrimenti creerai progetti separati.
Modifica
Ad esempio, supponiamo che esista un'app Web che gestisce il magazzino di un'azienda. In forma generica ciò potrebbe applicarsi a molte aziende, ma ognuna di esse potrebbe avere alcune specifiche che non sono soddisfatte e proibisce loro di acquistare. Ad esempio, una di queste ha distribuito tablet ai carrelli elevatori e ha bisogno di una Vista speciale per loro mentre un altro vuole ancora. per organizzare gli elementi in tre livelli invece del valore predefinito di due.
Ovviamente potresti forgiare il progetto per ciascuna di queste società.
Tuttavia, se il framework / linguaggio consente, è possibile utilizzare la sottoclasse oi plugin ecc. Per personalizzare i bit e le parti del progetto generico in base alle esigenze di ogni cliente e organizzarli nei layout di Dominio aziendale.
E.g se il progetto generico esporta in JSON solo l'elemento stesso, Domain1 può creare sottoclasse del controller e fargli esportare anche problemi di consegna recenti.
E se successivamente scopri che Dominio1 ha un componente valido anche per Dominio2, puoi estrapolarne la versione generica su Condiviso.
Come hai detto, molti framework si organizzano per dominio tecnico ed è quello che ho usato per ora, solo perché il mio FW di scelta lo rende più facile. Ma con un po '(o molto) di gomito, penso che potrei riscrivere i percorsi di inclusione per supportare anche il layout di Business Domain.