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

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

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.
Avatar for DotNetRu DotNetRu
December 14, 2019

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

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

Avatar for DotNetRu

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-приложения • Поддержка двумя

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