VS 2010: Валидация архитектуры приложения

Источник: msug

В своем прошлом посте про понравившиеся возможности я рассказывал про граф зависимостей, доступного в VS 2010 Ultimate Edition. Дальше по списку у меня - валидация структуры приложения, следующий шаг для улучшений вашей архитектуры.

Построение диаграммы структуры

Мы воспользуемся тестовым приложением Tailspin с предыдущего поста. Теперь, когда я понял базовую структуру приложения, я хотел бы прикрутить его к своей архитектуре. В нашем случае приложение написано, используя паттерн MVC. Давайте убедимся в этом. Для этого добавим новую диаграмму структуры через меню Architecture:

 

Я получу пустую диаграмму структуры, где смогу определить слои моей архитектуры. Немного попотев, мы получим все основные слои:

Вроде, не плохая архитектура получилась, но нам нужно понять, как физическая реализация имеет реальную связь с этой логической архитектурой. Для этого, мы можем перетянуть на соответствующий слой нужные классы, которые отвечают за его реализацию.

После расстановки классов по нужным слоям, вы можете попросить систему выяснить связи, нажав правой кнопкой по поверхности конструктора, выбрав Generate Dependencies:

После данной операции, вы получите представленную ниже диаграмму. Просмоторщик структуры, может быть использован для просмотра содержания каждого слоя:

Обновление вашей имплементации

На данном этапу у нас есть диаграмма, описывающая физическое строение. Но вот проблема - в MVC паттерне, мы не хотим, чтобы представление общалось напрямую с моделью. Такое часто случается, если кто-то пишет код, который работает напрямую со слоем данных, а не через бизнес логику (такую ошибку легко допустить). Давайте это исправим, удалив линию:

После этого, мы нажмем правой кнопкой по графу и выберем Validate Architecture:

Visual Studio проанализирует все связи и будет искать те, которые нарушают или не соответствуют диаграмме структуры, помещая их в список ошибок:

У нас появилась возможность, пройтись по коду и исправить вкравшиеся ошибки, и повторять шаг Validate Architecture до тех пор, пока не исчезнут все ошибки.

Укрепление структуры в билде

Итак, мы получили чистую архитектуру и соответствующую реализацию. Все мы знаем, что может произойти дальше - задачи выполнены, баги исправлены и код снова пойдет в рознь с архитектурой. Нужно как-то синхронизировать это дело.

Добавив новое определение в билд TFS, которое использует Gated Check-in, мы укрепим архитектуру:

Когда вы используете Gated Check-in, все изменения, которые вы отправляете в TFS, должны будут пройти сперва тесты (отсутствие ошибок, пройти набор тестов и т.п.). В таком случае, если у вас возникли ошибки, изменения не применяются и не попадают в ваш билд. Мы добавим еще один шаг в в закладке Process:

Теперь так же и билд будет производить валидацию архитектуры.

Итоги

Существуют несколько ключевых понятий:

  • Если вы создаете новый код, то можете начать с логического проектирования и спокойно работат дальше.
  • Если вы начали работать с уже существующим активами, то можете узнать что вы получили и продолжете работать, добиваясь идеального логического проектирования.
  • Получив один раз физическую и логическую синхронизацию, вы сможете автоматизировать этот шаг (gated check-in)

Страница сайта http://185.71.96.61
Оригинал находится по адресу http://185.71.96.61/home.asp?artId=23700