Un poco de antecedentes: como líder del equipo, uso NDepend aproximadamente una vez por semana para verificar la calidad de nuestro código. Especialmente la cobertura de prueba, las líneas de código y las métricas de complejidad ciclomática son invaluables para mí. Pero cuando se trata de ciclos de nivelación y dependencia, estoy un poco ... muy preocupado. Patrick Smacchia tiene una buena publicación de blog que describe el objetivo de la nivelación.
Para ser claros: en "ciclo de dependencia" entiendo una referencia circular entre dos espacios de nombres.
Actualmente estoy trabajando en un marco GUI basado en Windows CE para instrumentos integrados, solo piense en la plataforma gráfica de Android pero para instrumentos de muy bajo nivel. El marco es un conjunto único con aproximadamente 50,000 líneas de código (pruebas excluidas). El marco se divide en los siguientes espacios de nombres:
- Navegación principal y subsistema de menú
- Subsistema de pantalla (Presentadores / Vistas / ...)
- Controles / capa de widgets
Hoy pasé medio día tratando de llevar el código a los niveles adecuados [gracias a Resharper, no hay problema en general], pero en todos los casos existen algunos ciclos de dependencia.
Entonces mi pregunta: ¿Cómo sigue estrictamente la regla del "Ciclo sin dependencia"? ¿Es realmente tan importante la nivelación?
fuente