Немного предыстории: как руководитель группы, я использую NDepend примерно раз в неделю, чтобы проверять качество нашего кода. Особенно тест-охват, строки кода и показатели цикломатической сложности для меня неоценимы. Но когда дело доходит до циклов выравнивания и зависимости, я немного ... очень обеспокоен. У Патрика Смаккья есть хороший пост в блоге, в котором описана цель выравнивания.
Для ясности: под «циклом зависимости» я понимаю циклические ссылки между двумя пространствами имен.
В настоящее время я работаю над структурой GUI на основе Windows CE для встроенных инструментов - просто подумайте о графической платформе Android, но для инструментов очень низкого уровня. Фреймворк представляет собой единую сборку с около 50 000 строк кода (тесты исключены). Каркас разделен на следующие пространства имен:
- Базовая подсистема навигации и меню
- Подсистема экрана (Докладчики / Представления / ...)
- Управление / Виджет Слой
Сегодня я потратил полдня на попытки вывести код на должный уровень [благодаря Resharper в общем нет проблем], но во всех случаях существуют циклы зависимости.
Итак, мой вопрос: насколько строго вы следуете правилу «нет цикла зависимости»? Действительно ли выравнивание так важно?