Разрушение монолитного проекта
Я собираюсь разбить монолитное приложение WPF/C# на управляемые модули. Пожалуйста, дайте мне знать, какие моменты я должен помнить, прежде чем ломать программное обеспечение. Любые инструменты, которые будут полезны и т. Д.
Заранее спасибо.
С Уважением,
JOHN.
3 ответа
В зависимости от вашего набора инструментов есть несколько вещей, которые обычно помогают при анализе базы кода с архитектурной или структурной точки зрения.
В VS 2010 Ultimate или с помощью такого инструмента, как nDepend, вы можете создавать графики зависимостей, которые помогут вам увидеть зависимости вашего приложения, и использование кода может оказаться полезным при попытке разбить большой код на меньшие API-интерфейсы или сервисы.
Также модульные тесты и интеграционные тесты могут помочь гарантировать, что функциональность поддерживается без внесения ошибок, а использование инструментов рефакторинга, таких как resharper, justCode или coderush, может реально помочь настроить ваши пространства имен, физическое расположение файла кода и сигнатуры классов / методов при работе с большими кодовыми базами в меньшие, более управляемые библиотеки и проекты.
На стороне планирования вам действительно необходимо установить ключевые элементы приложения с точки зрения разделения интересов, чтобы определить границы каждого модуля.
Вероятно, худшее, что вы можете сделать, это просто запустить и взломать код на куски. Планирование поэтапной миграции для одного модуля за раз было бы моей стратегией выбора.
Согласитесь с приведенным выше комментарием, хотя этот вопрос слишком широк, чтобы получить какие-либо значимые ответы.
Ваш вопрос очень широк, так как есть много методов (например, интенсивное модульное тестирование вашего кода), которые могут помочь. Вероятно, лучше прочитать книгу на эту тему. Я очень рекомендую вам Майкл С. Перья
Хотя эта книга в основном ориентирована на Java, описанные методы в целом применимы. Это определенно изменит способ, которым вы пишете и думаете о коде, и поможет при работе с существующими приложениями.
Книга Перьев также является одной из книг, которые наиболее рекомендуются в этом посте.
Чтобы завершить Mac-ответ по таким инструментам, как NDepend (Отказ от ответственности: я являюсь разработчиком инструмента NDepend), я бы посоветовал прочитать эти 2 белые книги о том, как разделить ваш код на сборки, слои и компоненты. Это, безусловно, ключ, чтобы сломать вашу монолитную базу кода.