Трохи довідки: як керівник команди, я використовую NDepend приблизно раз на тиждень, щоб перевірити якість нашого коду. Особливо тест-покриття, рядки коду та метрики цикломатичної складності для мене безцінні. Але коли справа доходить до циклів вирівнювання та залежності, я трохи ... заклопотаний. У Патріка Смакіа є приємна публікація в блозі, в якій описана мета вирівнювання.
Щоб було зрозуміло: під "циклом залежності" я розумію кругові посилання між двома просторами імен.
В даний час я працюю над системою GUI на основі CE CE для вбудованих інструментів - просто подумайте про графічну платформу Android, але про інструменти дуже низького рівня. Рамка являє собою єдину збірку з близько 50 000 рядків коду (випробування виключені). Рамка розділена на такі простори імен:
- Основна підсистема навігації та меню
- Екранна підсистема (Презентатори / Перегляди / ...)
- Елементи керування / шар віджетів
Сьогодні я провів половину дня, намагаючись привести код до належних рівнів [завдяки Resharper взагалі немає проблем], але у всіх випадках існують певні цикли залежності.
Отже, моє запитання: наскільки чітко ви дотримуєтесь правила "Без циклу залежності"? Чи справді важливо вирівнювання?