Как вы знакомы с кодовой базой, у которой нет документации?

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

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

Ответ 1

В прошлом был поток об этом на Slashdot год назад. Среди обычного Slashdot cruft есть хорошие ответы; может быть, кто-то может их добыть здесь.

Некоторые хорошие перешагнув программу с помощью отладчика, Doxygen (конечно) (и соответствующие инструменты, такие как ctags/etags/GNU Global), отказ от, и несколько книг об этом тема: Эффективно работает с устаревшим кодом by Michael Feathers и Чтение кода: перспектива с открытым исходным кодом by Diomidis Spinellis.

И я лично рекомендую читать The P.G. Wodehouse метод рефакторинга; если ничего, по крайней мере, весело читать!

Ответ 2

Прочтите модульные тесты. Нет модульных тестов? Напишите некоторые модульные тесты.

Ответ 3

Вы видели этот вопрос?

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

Ответ 4

У меня было несколько таких работ, в которых все программисты покинули компанию. Я бы назвал это красным флагом.

Вероятно, не случайно, что проект не имеет документации, но трудно сказать, существует ли там причинно-следственная связь. Истина может быть любой из следующих:

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

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

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

Еще одно упражнение - построить UML-диаграммы для частей системы. Диаграмма может быть полезна даже тогда, когда объектно-ориентированная архитектура кода имеет недостатки.

Ответ 5

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

и для справки вы можете проверить это, этот чувак, кажется, находится в более плотном месте, чем вы:

inherited-a-php-nightmare-where-to-start

Ответ 6

Какой язык программирования? Насколько велика база кода (строки 1k, 10k, 100k?)

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

Ответ 7

Если он достаточно мал, чтобы сделать это (скажем, 10 000 строк или меньше), у меня был справедливый успех с хорошими старыми списками. Распечатайте код, получите некоторые маркеры и те цветные флажки после публикации, перейдите по списку, нарисуйте заметки, найдите ссылки и сориентируйте общую структуру. Идите куда-нибудь тихо, чтобы сделать это, и просто потратьте время, чтобы пройти код.

Если это что-то написано, вы можете использовать ctags или что-то подобное, возьмите ноутбук, чтобы вы могли искать код.

Ответ 8

Первое, что я всегда делаю (в VisualStudio), - это создать диаграмму классов каждого проекта в решении. Это позволяет мне увидеть графическое представление того, с чем я работаю.

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

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

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