2010-11-10 17 views
5

Il progetto, che ho coinvolto, ha una struttura di file/cartelle di un progetto di architettura orientata:Architecture (struttura) -oriented vs. struttura del progetto caratteristica orientata

Root 
|____ Node1 
    |____ Event Handlers 
    |   |___ <all event handlers of project> 
    |____ Events 
    |   |___ <all events of project> 
    |____ Request Handlers 
    |   |___ <all request handlers of project> 
    |____ Requests 
    |   |___ <all requests of project> 
    |____ ... 

Si tratta di un chiaro dal profilo architettonico vista del sistema (è stato proposto dal team di sviluppo).

Si tratta di una struttura di tratti orientata è stato proposto dal team di design:

Root 
|____ Feature #1 
    |____ Event Handlers 
    |   |___ <all event handlers of Feature #1> 
    |____ Events 
    |   |___ <all events of Feature #1> 
    |____ Request Handlers 
    |   |___ <all request handlers of Feature #1> 
    |____ Requests 
    |   |___ <all requests of Feature #1> 
    |____ ... 

Questa variante è più vicino a progettisti e descrive chiaramente una caratteristica da implementare.

Le nostre squadre hanno iniziato una guerra santa: qual è l'approccio migliore. Qualcuno potrebbe aiutarci e spiegare con e professionisti del primo e del secondo. Forse c'è un terzo che è più utile e vantaggioso per entrambi.

Grazie.

+0

Forse vuoi riconsiderare i tuoi tag ... tutto ciò che può essere ragionevolmente etichettato [holywar] è praticamente S & A per definizione, non è vero? – dmckee

risposta

5

Vorrei scegliere la seconda opzione, al fine di mantenere una lunga durata di applicazione.

Mi spiego con un esempio:

Un giorno, un anno dopo il rilascio dell'applicazione, e mesi dopo che la squadra che ha worte il codice originale ha lasciato, un utente rileva e segnalare un bug in un determinato processo . Il biglietto avrà sicuramente qualcosa del tipo "Questa roba non funziona" che, dopo qualche email ping-pong, finirà per essere "Non posso salvare un ordine multi-prodotto per un cliente australiano".

Bene, nella prima struttura del progetto, è necessario cercare tra tutti i gestori di richieste ed eventi del progetto in cui è presente il codice buggato. Sul secondo, è possibile restringere la ricerca al modulo di salvataggio dell'ordine (o in base alla granularità della struttura, il modulo "ordine di acquisto all'estero/multiprodotto").

Può risparmiare molto tempo e facilitare la maneggevolezza IMO.

+0

+1 ha senso in questo caso. – garik

Problemi correlati