Разрушение монолитного проекта

Я собираюсь разбить монолитное приложение WPF/C# на управляемые модули. Пожалуйста, дайте мне знать, какие моменты я должен помнить, прежде чем ломать программное обеспечение. Любые инструменты, которые будут полезны и т. Д.

Заранее спасибо.

С Уважением,

JOHN.

3 ответа

Решение

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

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

Также модульные тесты и интеграционные тесты могут помочь гарантировать, что функциональность поддерживается без внесения ошибок, а использование инструментов рефакторинга, таких как resharper, justCode или coderush, может реально помочь настроить ваши пространства имен, физическое расположение файла кода и сигнатуры классов / методов при работе с большими кодовыми базами в меньшие, более управляемые библиотеки и проекты.

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

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

Согласитесь с приведенным выше комментарием, хотя этот вопрос слишком широк, чтобы получить какие-либо значимые ответы.

Ваш вопрос очень широк, так как есть много методов (например, интенсивное модульное тестирование вашего кода), которые могут помочь. Вероятно, лучше прочитать книгу на эту тему. Я очень рекомендую вам Майкл С. Перья

Эффективная работа с устаревшим кодом

Хотя эта книга в основном ориентирована на Java, описанные методы в целом применимы. Это определенно изменит способ, которым вы пишете и думаете о коде, и поможет при работе с существующими приложениями.

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

Чтобы завершить Mac-ответ по таким инструментам, как NDepend (Отказ от ответственности: я являюсь разработчиком инструмента NDepend), я бы посоветовал прочитать эти 2 белые книги о том, как разделить ваш код на сборки, слои и компоненты. Это, безусловно, ключ, чтобы сломать вашу монолитную базу кода.

Другие вопросы по тегам