2010-11-10 20 views
5

Le projet, je l'ai impliqué, a un dossier de projet axé sur l'architecture/structure du dossier:architecture (structure) à orientation par rapport à projet orienté fonction structure

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> 
    |____ ... 

Il est clairement du point architectural vue du système (a été proposée par l'équipe de développement).

Il est une structure orientée fonctionnalités a été proposée par l'équipe de designer:

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> 
    |____ ... 

Cette variante est plus proche de designers et décrit clairement une caractéristique à mettre en œuvre.

Nos équipes ont commencé une guerre sainte: quelle est la meilleure approche. Quelqu'un pourrait-il nous aider et expliquer contre et les avantages du premier et deuxième. Peut-être qu'il y en a un troisième qui est plus utile et bénéfique pour nous deux.

Merci.

+0

Peut-être que vous voulez reconsidérer vos tags ... tout ce qui peut raisonnablement être marqué [holywar] est à peu près S & A par définition, n'est ce pas? – dmckee

Répondre

5

Je choisirais la deuxième option, pour la maintenabilité d'une application longue durée.

Laissez-moi vous expliquer avec un exemple:

Un jour, un an après la sortie de l'application, et mois après que l'équipe qui worte le code d'origine a quitté, un utilisateur détecte et signaler un bug à un certain processus . Le ticket ressemblera sûrement à quelque chose comme "Ce truc ne marche pas" qui, après quelques ping-pong d'email, finira par être "je ne peux pas enregistrer une commande multi-produit pour un client australien". Eh bien, sur la première structure de projet, vous devez rechercher parmi tous vos gestionnaires de demandes et d'événements de projet où se trouve le code bogué. Sur le second, vous pouvez affiner votre recherche au niveau du module de sauvegarde des commandes (ou en fonction de la granularité de votre structure, le module "enregistrement des commandes outre-mer/multiproduits").

Il peut gagner beaucoup de temps et faciliter la maintenabilité IMO.

+0

+1 cela a du sens dans ce cas. – garik