Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Юрий Солдаткин "Контроль зависимостей между элементами структуры приложения"

DotNetRu
December 14, 2019

Юрий Солдаткин "Контроль зависимостей между элементами структуры приложения"

Проектирование архитектуры приложения в стиле «большого комка грязи» может привести к печальным последствиям. К сожалению, в долгосрочной перспективе все приложения начинают превращаться в этот самый «комок». Размытие границ между слоями и контекстами усложняет внесение изменений в код и его развитие. И задумываться об этом стоит не только для новых проектов, но и для существующего legacy.
В докладе мы рассмотрим варианты организации структуры приложения с помощью сборок и пространств имен и как средства статического анализа кода помогают не только найти нарушения в существующей архитектуре, но и автоматизировать контроль соблюдения принятых правил в момент разработки и отложено.

DotNetRu

December 14, 2019
Tweet

More Decks by DotNetRu

Other Decks in Programming

Transcript

  1. Последствия попустительства 1 2 3 Небольшие по смыслу правки приводят

    к необходимости перелопачивания всего проекта Код плохо тестируется Изменение даже в одном проекте влечет перекомпиляцию большой части решения
  2. NDepend • Визуализация • CQLinq • *Степень связности внутри и

    между сборками/пространствами имен • *Внешние зависимости
  3. Visual Studio Enterprise • Низкий порог освоения • Лучшая интеграция

    в процесс • Ограниченные возможности • *Степень связности внутри и между сборками/пространствами имен
  4. Сравнение NDepend VSE Roslyn Проверка при компиляции +/– + +

    Визуализация + + – Оценка степени связности + +/– + Контроль внешних зависимостей + +/– + Гибкость задания правил + – +
  5. Наш опыт • Последовательное разделение большого legacy-приложения • Поддержка двумя

    независимыми командами • Контроль только новых проблем • Выделение контрактных сборок