Un po 'di background: come capo di una squadra utilizzo NDepend circa 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 preziose per me. Ma quando si tratta di cicli di livellamento e dipendenza sono un po '... ben preoccupato. Patrick Smacchia ha un bel post sul blog che descrive l'obiettivo della livellamento.
Per essere chiari: in "ciclo di dipendenza" capisco un riferimento circolare tra due spazi dei nomi.
Attualmente sto lavorando a un framework GUI basato su Windows CE per strumenti embedded - basti pensare alla piattaforma grafica Android ma per strumenti di fascia molto bassa. Il framework è un singolo assembly con circa 50.000 righe di codice (test esclusi). Il framework è suddiviso nei seguenti spazi dei nomi:
- Sottosistema di navigazione e menu principale
- Sottosistema schermo (presentatori / visualizzazioni / ...)
- Controlli / Widget Layer
Oggi ho trascorso mezza giornata nel tentativo di portare il codice a livelli adeguati [grazie a Resharper nessun problema in generale] ma in tutti i casi esistono alcuni cicli di dipendenza.
Quindi la mia domanda: con quale rigore segui la regola "Nessun ciclo di dipendenza"? La livellamento è davvero così importante?