Взятие чужого кода - PullRequest
       23

Взятие чужого кода

5 голосов
/ 22 октября 2009

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

Извините, я забыл упомянуть, но документации мало, и я пытался решить простые проблемы. Спасибо!

Ответы [ 17 ]

1 голос
/ 22 октября 2009

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

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

1 голос
/ 22 октября 2009

Ведение журнала полезно видеть, что делает код.

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

Иногда полезно как-то попытаться понять стиль кода программистов, это помогает мне понять, как он мог думать о проблеме и решать ее.

0 голосов
/ 16 марта 2010

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

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

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

0 голосов
/ 22 октября 2009

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

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

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

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

Так что веселись.

0 голосов
/ 22 октября 2009

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

  • Я получаю обзор
  • Я увижу много ошибок / плохих дизайнерских решений. Который облегчает заказ и prio их. (вместо того, чтобы выбрать не относящуюся к делу ошибку и решить ее, я исправлю те, которые действительно имеют значение)
  • У меня позже есть документация.
  • Документация облегчит обоснование рефакторинга / переписывания под костюм
0 голосов
/ 22 октября 2009

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

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

0 голосов
/ 22 октября 2009

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

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