Un po 'di background: come guida di una squadra, uso NDepend una volta alla settimana per verificare la qualità del nostro codice. Soprattutto la copertura del test, le linee di codice e le metriche di complessità ciclomatica sono inestimabili per me. Ma quando si tratta di cicli di livellamento e dipendenza, sono un po '... ben preoccupato. Patrick Smacchia ha un simpatico post sul blog che descrive l'obiettivo della livellizzazione.
Per essere chiari: Sotto "ciclo di dipendenza" capisco un riferimento circolare tra due spazi dei nomi.
Attualmente sto lavorando su un framework GUI basato su Windows CE per strumenti incorporati - basti pensare alla piattaforma grafica Android ma agli strumenti di fascia bassa. Il framework è un unico assembly con circa 50.000 righe di codice (test esclusi). Il framework è suddiviso nei seguenti spazi dei nomi:
- Navigazione principale e amp; Sottosistema menu
- Sottosistema schermo (Presentatori / Visualizzazioni / ...)
- Controls / Widget Layer
Oggi ho passato la mezza giornata a provare a portare il codice a livelli appropriati [grazie a Resharper nessun problema in generale] ma in tutti i casi esistono alcuni cicli di dipendenza.
Quindi la mia domanda: quanto segue rigorosamente la regola "No Dependency Cycle"? La livellizzazione è davvero così importante?