Condividi tramite


Stabilizzazione della struttura dell'applicazione tramite diagrammi livello

Il codice sviluppato da un team a piccoli incrementi viene modificato ed esteso frequentemente. Tali modifiche possono generare dipendenze sempre più complesse, che rendono più difficile apportare modifiche al codice nel tempo. Per evitare questo problema, il team può utilizzare i diagrammi livello per progettare e convalidare le dipendenze tra i componenti dell'applicazione.

Tramite un diagramma livello il team può visualizzare le parti principali dell'applicazione e le dipendenze tra di esse, senza i dettagli relativi alla modalità di funzionamento e interazione delle parti stesse.

Il team può inoltre utilizzare i diagrammi livello per verificare che il codice sia conforme all'architettura. Quando si crea un diagramma livello in Visual Studio, è possibile assegnare gruppi di classi dal codice a ogni livello e specificare le dipendenze mediante frecce. È quindi possibile utilizzare Visual Studio per convalidare le dipendenze nel codice, verificando che effettivamente seguano le frecce disegnate nel diagramma livello.

Il team può assicurare che le modifiche future siano sempre conformi all'architettura definendo i criteri di archiviazione per la convalida del diagramma livello e utilizzandoli nelle compilazioni continue del team.

Introdurre la convalida dei livelli

Il team può iniziare a utilizzare la convalida dei livelli seguendo le procedure descritte in questa sezione.

Per utilizzare la convalida dei livelli durante la scrittura di nuovo codice

  1. La prima volta che si scrive codice per l'applicazione, disegnare un diagramma livello per rappresentare i componenti principali e le relative dipendenze. Probabilmente il diagramma verrà modificato nel corso del progetto durante lo sviluppo dell'applicazione.

    Per ulteriori informazioni, vedere Diagrammi livello: riferimento.

  2. Assegnare gli spazi dei nomi o le classi ai livelli durante la loro creazione.

  3. Prima di archiviare il codice, fare clic con il pulsante destro del mouse sul diagramma livello, quindi scegliere Convalida architettura.

  4. Aggiungere la convalida dei livelli alle procedure di compilazione normali e di archiviazione.

    Per ulteriori informazioni, vedere Convalidare il codice con diagrammi livello.

Per introdurre la convalida dei livelli quando si aggiorna un'applicazione esistente

  1. Utilizzare Esplora architettura e i grafici diretti per spostarsi all'interno dell'applicazione in modo da comprenderne la struttura. Di seguito verranno fornite nozioni di base per migliorare la comprensione.

  2. Descrivere come dovranno essere i componenti principali e le dipendenze. Per ulteriori informazioni, vedere Creare diagrammi livello dal codice.

  3. Assegnare elementi ai livelli trascinandoli da Esplora Architettura o Esplora soluzioni.

  4. Fare clic con il pulsante destro del mouse sul diagramma livello e scegliere Convalida architettura.

  5. Verificare gli eventuali rapporti sugli errori e correggerli tramite i seguenti approcci:

    • Correggere il diagramma livello. Migliorare il diagramma livello in modo da rappresentare il codice esistente in modo più accurato oppure riassegnare gli elementi di codice a livelli diversi.

    • Correggere il codice. Se si ritiene che il diagramma livello rappresenti una migliore progettazione rispetto al codice esistente, è consigliabile aggiornare il codice in modo che corrisponda al diagramma livello.

      Per ulteriori informazioni, vedere Effettuare il refactoring del codice esistente per conformità al diagramma livello più avanti in questo argomento.

  6. Ripetere i passaggi precedenti finché non verranno più segnalati errori.

  7. Aggiungere la convalida dei livelli alle procedure di compilazione normali e di archiviazione.

    Per ulteriori informazioni, vedere Convalidare il codice con diagrammi livello.

Effettuare il refactoring del codice esistente per conformità al diagramma livello

Quando il team inizia a lavorare su un'applicazione esistente, è possibile che la struttura dell'applicazione sia più complessa di quanto dovrebbe essere. Questa situazione diventa evidente quando si tenta di creare un diagramma livello e assegnare elementi ai livelli. Il team potrebbe non essere in grado di assegnare elementi ai livelli in modo che possano essere convalidati senza introdurre livelli e dipendenze che logicamente sono inutili o introducendo dipendenze che ignorano i livelli o creano cicli. Difetti come questi rendono il codice più difficile da comprendere e modificare e possono far sembrare incoerente il relativo comportamento agli utenti.

Il team può rendere più facile l'utilizzo del codice effettuandolo il refactoring per migliorarne la progettazione. Quando il team sceglie di effettuare il refactoring del codice per migliorare la progettazione, considerare i seguenti punti:

  • Mantenere le modifiche di refactoring separate da altre modifiche. Una modifica di refactoring non deve comportare una modifica importante delle storie utente.

  • Aggiungere ogni modifica proposta al backlog del prodotto e includere una descrizione della modifica e il vantaggio previsto.

    Nota

    Le modifiche di refactoring che richiedono solo ore per l'implementazione e il test possono essere gestite come bug.Le modifiche di refactoring più estese devono essere aggiunte al backlog del prodotto ed essere stimate e classificate in ordine di priorità insieme agli altri elementi del backlog.

  • Prima di procedere al refactoring, scrivere i test necessari per assicurare che la funzionalità dell'area a cui si sta lavorando non sia stata modificata.

Aggiornamento del modello di livello.

Dopo i primi uno o due sprint, i diagrammi livello dovrebbero rimanere stabili. In genere è consigliabile considerare un errore di convalida dei livelli come un errore nel codice anziché come un errore nel modello di livello.

Quando è necessario aggiornare il modello di livello, rivedere la modifica proposta insieme al team.

La maggior parte delle modifiche al modello di livello rientrano nelle categorie seguenti:

  • Estensione. Si stanno aggiungendo più componenti al codice e si desidera aggiungere i livelli per mantenere la conformità.

  • Perfezionamento. Molti elementi di codice sono attualmente assegnati a un singolo livello. Si desidera migliorare l'efficacia della convalida dei livelli suddividendo il singolo livello in livelli più piccoli.

  • Refactoring. Si desidera migliorare le strutture delle dipendenze del codice esistente. Le strutture esistenti vengono riflesse nei diagrammi livello correnti. Si desidera quindi aggiornare contemporaneamente il diagramma livello e il codice.

Argomenti correlati