Come limitare la violazione di un'architettura N-Tier

0

Recentemente abbiamo installato un'architettura a 4 livelli nel nostro progetto composta dai seguenti quattro livelli principali:

  • Livello interfaccia utente
  • Livello di accesso ai dati.
  • Livello di dominio.
  • Livello aziendale.

Tutti gli strati svolgono i loro soliti ruoli nell'architettura a 4 livelli e interagiscono ciascuno nel modo consueto. Usiamo SVN per mantenere il nostro CVS.

Il mio problema è che abbiamo molti programmatori inesperti che si sviluppano in un'architettura ben formata, e dobbiamo controllare sempre il codice per trovare le violazioni dell'architettura.

Ad esempio:

  • A volte include l'accesso al database in User Interface Layer e non nel Business Layer, che interagisce con il livello di accesso ai dati per leggere o salvare i dati nel database.

Problemi come quelli sopra si verificano sempre. La mia domanda è:

Come verificare il codice prima che i programmatori possano inviare le nuove modifiche al repository e segnalare violazioni dell'architettura? Come evitare di farlo manualmente?

    
posta Victor Sigler 22.04.2014 - 21:41
fonte

3 risposte

2

Forse ciò che stai tentando è possibile con Diagrammi dei livelli .

Vedi MSDN: Convalida il codice con i diagrammi dei livelli

To make sure that code doesn't conflict with its design, validate your code with layer diagrams in Visual Studio Ultimate and Visual Studio Premium. This can help you:

  • Find conflicts between dependencies in your code and dependencies on the layer diagram.
  • Find dependencies that might be affected by proposed changes. For example, you can edit the layer diagram to show potential architecture changes and then validate the code to see the affected dependencies.
  • Refactor or migrate code to a different design.
  • Find code or dependencies that require work when you move the code to a different architecture.

You can validate code manually from an open layer diagram in Visual Studio or from a command prompt. You can also validate code automatically when running local builds or Team Foundation Build.

o Canale 9: Uso dei diagrammi di livello per progettare e convalidare la tua architettura

This short video shows how to design architectural layers in your product, and then validate them to ensure that components implement the intended architecture.

    
risposta data 22.04.2014 - 22:25
fonte
6

Se il livello dell'interfaccia utente non ha accesso agli assembly o alle informazioni di autenticazione necessarie per accedere al database, è impossibile accedere al database direttamente da quel livello. Se hai separato i tuoi livelli in assiemi separati e limiti i tipi di dati pubblici e i membri solo a quelli necessari nel livello di livello superiore, è facile rilevare una violazione, poiché il riferimento all'assembly sarà stato aggiunto.

Un problema segnalato dall'utente Euphoric è che le restrizioni di assemblaggio non impediscono ai livelli inferiori di effettuare chiamate in livelli superiori usando interfacce, eventi o delegare callback. Quindi è ancora necessaria una formazione sulla stratificazione.

    
risposta data 22.04.2014 - 21:48
fonte
2

C'è solo un modo per risolvere questo problema: tutoraggio e recensioni chiave. Non importa se il codice dello sviluppatore inesperto viene prima esaminato da uno più esperto prima di essere archiviato. Il revisore fornisce quindi un feedback, in modo che lo sviluppatore possa correggere il codice e imparare a non ripetere lo stesso errore. E se lo sviluppatore ha ripetuto gli stessi errori per tutto il tempo, allora è il momento di cercare un nuovo sviluppatore.

    
risposta data 22.04.2014 - 22:47
fonte

Leggi altre domande sui tag