Как запустить модификацию с больших проектов

Все остальные ответы верны. Однако, если вещь, которую вы хотите выделить с помощью alloca(), достаточно мала, я думаю, что это хорошая техника, которая быстрее и удобнее, чем с помощью malloc() или иным образом.

Другими словами, alloca( 0x00ffffff ) опасно и может вызвать переполнение, точно так же, как char hugeArray[ 0x00ffffff ];. Будьте осторожны и разумны, и с вами все будет в порядке.

8
задан Nader Shirazie 29 June 2009 в 06:54
поделиться

10 ответов

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

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

13
ответ дан 5 December 2019 в 04:36
поделиться

Используйте управление источником, прежде чем что-либо трогать!

16
ответ дан 5 December 2019 в 04:36
поделиться
  • Сначала хорошо изучите существующий интерфейс.
  • Напишите тесты, если они отсутствуют, или расширьте уже написанные.
  • Измените исходный код.
  • Запустите тесты, чтобы проверить, работает ли модификация каким-то образом нарушает прежнее поведение.
3
ответ дан 5 December 2019 в 04:36
поделиться

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

3
ответ дан 5 December 2019 в 04:36
поделиться

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

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

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

3
ответ дан 5 December 2019 в 04:36
поделиться

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

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

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

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

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

3
ответ дан 5 December 2019 в 04:36
поделиться

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

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

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

2
ответ дан 5 December 2019 в 04:36
поделиться

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

2
ответ дан 5 December 2019 в 04:36
поделиться

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

2
ответ дан 5 December 2019 в 04:36
поделиться

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

1
ответ дан 5 December 2019 в 04:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: