Ресурсы для обучения, как лучше читать код

StackOverflow https://stackoverflow.com/questions/2777465

  •  03-10-2019
  •  | 
  •  

Вопрос

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

Моя реакция на то, что нужно прочитать много кода, хорошо, UMM, чтобы переписать его. Но мне нужно быстро довести себя быстро и строить на вершине существующей системы.

У других людей есть техники, которые они научились поглощать кодовую базу? На данный момент я просто читаю через код. Я пробовал генерировать диаграммы UML, используя umodel. Они такие большие, они не будут печатать чисто и когда я увеличиваю, я действительно теряю перспективу, увидев все отношения.

Как другие люди имели дело с этой проблемой?

Это было полезно?

Решение

Вау - я буквально только что закончил слушать подкаст на чтении кода !!!

http://www.pluralsight-tring.net/community/blogs/pluralCast/Archive/2010/03/01/pluralCast-10-rading-code-with-alan-stevens.aspx?utm_source=feedburner&utm_medium=feeds&utm_campaMpaign=feed 3A + плюрацкий +% 28pluralCast + by + pluralsight% 29

Я бы порекомендовал слушать это. Один интересный момент, который был сделан, что я нашел радикал и может быть чем-то, что вы могли бы попробовать (я знаю, что я собираюсь!). Загрузите весь исходный код базы. Начните редактирование и рефакторинг кода, затем ... бросить эту версию !!! Я думаю со всеми требованиями, которые у нас есть сроки, которые делают это, даже не произойдет для большинства разработчиков.

Я нахожусь в подобной позиции для вас в своей собственной работе, и я обнаружил, что для меня нашел следующее: - Написать тестовые случаи в существующем коде. Чтобы иметь возможность написать тестовый случай, который вам нужно иметь возможность понять базу CDE. - Если это доступно, посмотрите на ошибки вопросы, которые были задокументированы через жизненный цикл продукта и посмотрите, как они были решены. - Попробуйте решить некоторые из кода - вы, вероятно, сломаете это, но это нормально, вы можете выбросить его и начать снова. Разлагая код в меньшие проблемы, вы поймете его

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

О, и если вы можете, пожалуйста, получите копию работы эффективно с устаревшим кодом Michael C. Перки - я думаю, что вы найдете это бесценным в вашей ситуации.

Удачи!

Другие советы

эта статья обеспечивает руководство

  • Визуализация: визуальное представление дизайна приложения.

  • Нарушения дизайна: понимание здоровья объектной модели.

  • Стиль нарушения: понимание государства Кодекс в настоящее время в.

  • Бизнес-логический обзор: возможность тестирования существующего источника.

  • Обзор производительности: где в исходном коде есть узкие места?

  • Документация: имеет ли код адекватной документации для людей, на которые они работают?

Я бы порекомендовал еще один подкаст и ресурсы:Эпизод Se-Radion на археологии программного обеспечения

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top