Ein bisschen Hintergrundwissen: Als Teamleiter benutze ich NDepend ungefähr einmal pro Woche, um die Qualität unseres Codes zu überprüfen. Insbesondere die Testabdeckung, Codezeilen und zyklomatische Komplexitätsmetriken sind für mich von unschätzbarem Wert. Aber wenn es um Levelisierungs- und Abhängigkeitszyklen geht, bin ich ein bisschen ... sehr besorgt. Patrick Smacchia hat einen schönen Blog-Beitrag, der das Ziel der Levelisierung beschreibt.
Um es klar zu sagen: Unter "Abhängigkeitszyklus" verstehe ich Zirkelverweise zwischen zwei Namespaces.
Derzeit arbeite ich an einem Windows CE-basierten GUI-Framework für eingebettete Instrumente - denken Sie nur an die Android-Grafikplattform, aber für sehr einfache Instrumente. Das Framework ist eine einzelne Baugruppe mit ca. 50.000 Codezeilen (ohne Tests). Das Framework ist in folgende Namespaces unterteilt:
- Kernnavigations- und Menüsubsystem
- Bildschirm-Subsystem (Moderatoren / Ansichten / ...)
- Steuerelemente / Widget-Ebene
Heute habe ich den halben Tag damit verbracht, den Code auf das richtige Niveau zu bringen [dank Resharper im Allgemeinen kein Problem], aber in allen Fällen existieren einige Abhängigkeitszyklen.
Meine Frage: Wie streng befolgen Sie die Regel "Kein Abhängigkeitszyklus"? Ist Levelisierung wirklich so wichtig?