Инструменты и способы понять объектно-ориентированный код - PullRequest
3 голосов
/ 21 сентября 2011

В моей работе / учебе мне приходилось смотреть, понимать и изменять нетривиальный код, написанный в объектно-ориентированном стиле, с небольшим количеством документации. Для моего случая это архитектурные симуляторы на C ++.

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

Существуют ли инструменты, которые могут взять кодовую базу и сгенерировать полезное представление диаграммы, например диаграммы UML? Также есть какие-то конкретные методы, которые были вам полезны при анализе кода?

Ответы [ 3 ]

4 голосов
/ 21 сентября 2011

Один из возможных вариантов: doxygen

2 голосов
/ 21 сентября 2011

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

1 голос
/ 21 сентября 2011

Если бы я был в вашей ситуации, первое, что я сделал бы, это попытался бы отследить оригинального автора. У автора будет гораздо лучшее понимание кода, чем то, что вы можете получить, просто прочитав (гипотетические) комментарии.

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

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

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

Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...