Ищу инструменты, советы, методы, чтобы быстро освоить новое приложение (с точки зрения кодирования) - PullRequest
1 голос
/ 13 января 2011

Я консультант по разработке программного обеспечения, который ищет инструменты, которые помогут мне быстро понять новое приложение, когда я начну новый проект на сайте заказчика.Я думаю, что было бы полезно получить общий обзор приложения или системы: схемы схемы БД, диаграммы объектной модели предметной области, диаграммы UML, API и т. Д. По существу, я получаю общий обзор продукта.и как работать с приложением с точки зрения разработчиков.Прямо сейчас я использую объектный браузер в visual studio, но чувствую, что должно быть лучше и больше возможностей для такого рода вещей.Я использовал инструмент под названием Doc-O-Matic , и он дал мне некоторое представление о связи файлов классов в решении C #.

Мой текущий проект - большое и сложное приложениенаписано на C #, Spring.net, NHibernate, MVC, и я пытаюсь разобраться с дизайном.Он кажется очень сложным и интенсивно использует шаблоны проектирования ОО, и все очень абстрагировано, что затрудняет отслеживание того, что делает приложение (хотя я уверен, что оно хорошо спроектировано с точки зрения ОО).инструментов, методов, которые помогут мне получить такую ​​информацию в ситуациях, когда клиент предоставляет мало или совсем не документально (как это часто бывает)?Какие инструменты, приемы вы используете для быстрого изучения новой системы?

Спасибо!

Ответы [ 2 ]

1 голос
/ 13 января 2011

Вы (по крайней мере, я) не можете изучить весь дизайн системы и как она работает. Это слишком много времени. Однажды я столкнулся с той же проблемой, когда начал свою работу., Хотя у меня был большой проект, который не был так хорошо разработан. Некоторые шаги, чтобы быстро перейти к действию:

  • Узнайте, как приложение работает с точки зрения пользователя зрения, что означает использование приложения в областях, с которыми вам нужно работать
  • Если вы знакомы с проблемной областью и знаете, какие бизнес-кейсы рассматриваются в приложении, тогда перейдите к модулю / части кода, с которыми вам нужно работать .
  • Лучше всего было бы получить толчок от (бывшего) разработчика . Если вам некому это сделать, попробуйте отладить процесс / код, который нужно изменить , чтобы вы могли видеть задействованные компоненты.
  • Начните с наименьшего возможного варианта использования . Если приложение хорошо спроектировано, то очень высоки шансы того, что одни и те же шаблоны были применены во всем коде. Итак, если вы «взломаете» один кусок кода, вы получите их все (... хотя бы часть логики проектирования).
  • Запишите вещи, как только вы их поняли , иначе вы забудете их из-за большого количества информации, которую вы собираете за короткое время.
  • Было бы также хорошо прокомментировать код, в котором отсутствует документация , но это опасно, если вы впервые работаете с приложением. Вы столкнетесь с ситуациями, когда вы подумали, что поняли, что происходит, но не поняли.

Это лишь некоторые из моих опытов.

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

Прежде всего, не предполагайте, что программа, которой трудно следовать, "хорошо спроектирована с точки зрения ОО".Цель OOA & D - не более и не менее, чем сделать код более легким для понимания, расширения и рефакторинга, избегая «спагетти-кода» (кода с большими неорганизованными файлами, содержащими множество переходов; практически единственный способ сделать это на старых языках).).Тем не менее, вы можете при чрезмерно усердном использовании шаблонов проектирования создавать другие программные пасты: «код лазаньи» (так много уровней абстракции, что трудно перейти к реальному коду, который вы хотите проверить) или «код равиоли» (код не работает)до такого количества кусков размера укуса, что вы постоянно перемещаетесь из файла в файл, чтобы отслеживать выполнение одного простого алгоритма).

В любом случае, для проектов .NET VS имеет некоторые инструменты для генерации диаграмм классов,Office Visio Professional также может интегрироваться с Visual Studio и расширяет эту функциональность, предоставляя некоторую «перемотку назад» между изменением диаграмм и изменением реального кода.Точно так же он может подключаться к MSS и давать вам схемы схем.Но на самом деле нет лучшего инструмента, чем практический опыт.Даже самый хорошо разработанный код будет иметь некоторые особенности, которые требуют, чтобы вы знали кодовую базу, чтобы сосредоточиться на объекте с проблемой (или на связи между объектами и т. Д.).Я еще не встречал работодателя, который не ожидал, что потребуется новый месяц для нового найма, чтобы ознакомиться с достаточным количеством существующей архитектуры, чтобы начать работать.С точки зрения заключения контрактов, это ожидание может быть менее мягким, но просто нецелесообразно ожидать, что кто-то погрузится в массивную кодовую базу с небольшим количеством или вообще без внешней документации и начнет плавать, как олимпийский спринтер.

...