Как начать модификацию с больших проектов - PullRequest
8 голосов
/ 29 июня 2009


Я должен сделать улучшения существующего проекта C ++ с более чем 100 000 строк кода.
Мой вопрос: как и с чего начать с такими проектами?
Проблема возрастает, если код недостаточно документирован. Есть ли автоматизированные инструменты для изучения потока кода в больших проектах?

Спасибо,

Ответы [ 10 ]

16 голосов
/ 29 июня 2009

Прежде чем прикасаться к чему-либо, используйте Source Control!

13 голосов
/ 29 июня 2009

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

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

3 голосов
/ 29 июня 2009

Первое, что я хотел бы сделать, это попытаться найти требования к продукту .

Это почти немыслимо, что продукт такого размера будет разработан без требований.

Изучив требования, вы сможете:

  • получить представление о том, что продукт (и, следовательно, код), по крайней мере, должен делать
  • посмотрите, насколько хорошо (или плохо) код действительно соответствует этим требованиям

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

3 голосов
/ 29 июня 2009

Книга "Чтение кода" Диомидиса Спинеллиса содержит множество советов о том, как получить обзор и углубленные знания о более крупных, неизвестных проектах.

Глава 6 посвящена только этой теме (Работа с большими проектами). Также главы об инструментах (гл. 9) и архитектуре (гл. 8) могут содержать хорошие советы для вас.

Однако книга о понимании (путем чтения) «кода». Он не затрагивает непосредственно этап обслуживания.

3 голосов
/ 29 июня 2009

Есть еще одна хорошая книга, в настоящее время свободно доступная в сети, об объектно-ориентированном реинжиниринге: http://www.iam.unibe.ch/~scg/OORP/

3 голосов
/ 29 июня 2009
  • Сначала хорошо изучите существующий интерфейс.
  • Пишите тесты, если они отсутствуют, или расширяйте уже написанные.
  • Изменить исходный код.
  • Запустите тесты, чтобы проверить, не нарушает ли модификация старое поведение.
2 голосов
/ 29 июня 2009

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

2 голосов
/ 29 июня 2009

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

Также могут помочь перекрестные ссылки, такие как cscope, ctags, lxr и т. Д. A

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

2 голосов
/ 29 июня 2009

Запуск Doxygen с тегом EXTRACT_ALL , заданным для документирования всех отношений в базе кода. Он не поможет вам с потоком кода, но, надеюсь, он пролил некоторый свет на структуру и дизайн всего приложения.

1 голос
/ 29 июня 2009

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

...