C # Утилита отображения потока кода / визуализации? - PullRequest
7 голосов
/ 13 апреля 2011

Меня попросили переписать (с нуля) существующее приложение C # winforms. К сожалению, этот код был изменен по крайней мере дюжиной различных разработчиков за последние три или четыре года, и никто из них, по-видимому, не придерживался какого-либо стандарта кодирования. Сказать, что эта кодовая база - беспорядок, было бы вежливо выразить. Учитывая масштабы кода (~ 24 тыс. Строк) и тот факт, что этот код является совершенно новым для меня, я хотел бы найти какую-то утилиту, которая поможет мне быстрее понять, как работает это приложение на высоком уровне. Имейте в виду, что в этом коде, кажется, нет обилия хороших практик ООП, поэтому мне нужно нечто более подробное, чем диаграммы классов. Я видел ссылки на генерацию диаграмм последовательности, которые могли бы больше походить на то, что я ищу, но у меня есть только VS2010 Premium, и у меня сложилось впечатление, что эта функциональность предоставляется только с VS Ultimate SKU. У меня есть доступ к текущей версии .NET Reflector, и я видел, как несколько человек упоминали, что для этого есть плагины, которые могут быть полезны, но у меня нет конкретных имен.

Ответы [ 3 ]

6 голосов
/ 13 апреля 2011

Переписывание кода с нуля может привести к катастрофе: посмотрите на это: http://www.joelonsoftware.com/articles/fog0000000069.html

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

Вот некоторые из проблем, с которыми вы можете столкнуться

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

Помимо наличия множества блок-схем / диаграммПриложение, которое лучше всего запросить или получить, - это техническая спецификация .Какова цель программы, и, учитывая, что над ней работали еще 12 человек, можете ли вы взять на себя это?

Вы упомянули ООП, планируете ли вы взять код для спагетти и полностью переписать его, чтобы соответствоватьобъектно-ориентированная модель?Если так, то это большая работа ... и с 12 предыдущими мозгами, работающими над этим, чья-то логика непременно сбьет вас с толку.

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

См. эти темы SO для получения дополнительной информации:

3 голосов
/ 13 апреля 2011

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

О, и этот связанный вопрос тоже.

0 голосов
/ 13 апреля 2011

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...