Ресурсы для обучения, как лучше читать код
Вопрос
Недавно я унаследовал большую кодовую базу и имею наличие, чтобы прочитать его. Дело в том, что я обычно был разработкой, начнем проект. В результате у меня нет большого количества опыта чтения кода.
Моя реакция на то, что нужно прочитать много кода, хорошо, UMM, чтобы переписать его. Но мне нужно быстро довести себя быстро и строить на вершине существующей системы.
У других людей есть техники, которые они научились поглощать кодовую базу? На данный момент я просто читаю через код. Я пробовал генерировать диаграммы UML, используя umodel. Они такие большие, они не будут печатать чисто и когда я увеличиваю, я действительно теряю перспективу, увидев все отношения.
Как другие люди имели дело с этой проблемой?
Решение
Вау - я буквально только что закончил слушать подкаст на чтении кода !!!
Я бы порекомендовал слушать это. Один интересный момент, который был сделан, что я нашел радикал и может быть чем-то, что вы могли бы попробовать (я знаю, что я собираюсь!). Загрузите весь исходный код базы. Начните редактирование и рефакторинг кода, затем ... бросить эту версию !!! Я думаю со всеми требованиями, которые у нас есть сроки, которые делают это, даже не произойдет для большинства разработчиков.
Я нахожусь в подобной позиции для вас в своей собственной работе, и я обнаружил, что для меня нашел следующее: - Написать тестовые случаи в существующем коде. Чтобы иметь возможность написать тестовый случай, который вам нужно иметь возможность понять базу CDE. - Если это доступно, посмотрите на ошибки вопросы, которые были задокументированы через жизненный цикл продукта и посмотрите, как они были решены. - Попробуйте решить некоторые из кода - вы, вероятно, сломаете это, но это нормально, вы можете выбросить его и начать снова. Разлагая код в меньшие проблемы, вы поймете его
Вам не нужно делать радикальные изменения при рефакторинге, хотя. Когда вы читаете код, и вы что-то понимаете, переименуйте переменную или имена методов, чтобы лучше отразить проблему, которые пытаются решить.
О, и если вы можете, пожалуйста, получите копию работы эффективно с устаревшим кодом Michael C. Перки - я думаю, что вы найдете это бесценным в вашей ситуации.
Удачи!
Другие советы
эта статья обеспечивает руководство
Визуализация: визуальное представление дизайна приложения.
Нарушения дизайна: понимание здоровья объектной модели.
Стиль нарушения: понимание государства Кодекс в настоящее время в.
Бизнес-логический обзор: возможность тестирования существующего источника.
Обзор производительности: где в исходном коде есть узкие места?
Документация: имеет ли код адекватной документации для людей, на которые они работают?
Я бы порекомендовал еще один подкаст и ресурсы:Эпизод Se-Radion на археологии программного обеспечения
В общем, я начинаю в точке входа кода (главная функция, крючок плагина и т. Д.) и работать через базовый поток выполнения. Если его приличная кодовая база, она должна быть разбита в приличные куски размеров, и затем вы можете пройти и выяснить, за что отвечает каждый кусок кода. Оглядываясь назад, когда в исполнении потока системы его называют.
Для разведки / модуля / класса я использую все Doxygen. будет генерировать после его прогона по источникам. Он генерирует несколько приятных диаграмм соотношения классов, иерархии наследования и графики файловых зависимостей. Преимущество этого заключается в том, что они каждый сосредоточен на одном классе и о том, как она связана со своими соседями, братьями и сестрами и родителями, поэтому графики обычно имеют управляемый размер и легко понять.
Как вы понимаете, что отличаются, классы, функции и подсистемы. Мне нравится добавлять комментарии для заполнения того, что звучит, как явно отсутствует документация. Это поможет вам, когда вы перечитаете код во второй раз.