Что Вы делаете, когда Вы внезапно брошены на крупный проект? [закрытый]

12
задан SilentGhost 23 July 2010 в 09:53
поделиться

6 ответов

Хороший вопрос. У меня не было вашего опыта, но в подобных случаях мне нравится думать: "Как съесть кита?". Ответ (предсказуемо) - "по кусочку за раз". Разумные люди не будут ожидать, что вы сразу же все поймете, но они захотят увидеть прогресс. Возможно, в большом проекте есть небольшие участки, не слишком сложные, без большого количества зависимостей. Поработайте над пониманием одного из них, и вы на один "кусочек" (и/или "байт") приблизитесь к знанию всего проекта.

8
ответ дан 2 December 2019 в 20:15
поделиться

Будучи знакомым со всей существующей документацией, я бы попытался получить общую картину. Буквально.

  • создайте TreeMap исходного кода

Я бы использовал GrandPerspective на Mac или WinDirStat на Windows. Это даст вам некоторое представление о структуре файлов проекта (иногда это дает некоторые подсказки о структуре кода). Имея это, вы можете расспросить своих коллег о некоторых кластерах, о том, что они делают, как они связаны друг с другом.

  • научиться собирать проект

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

  • просмотрите исходный код с помощью Structure101 или аналогичного инструмента

Это полезно, особенно для Java-проектов. Этот инструмент отлично справляется со своей задачей. Это даст вам больше деталей о структуре кода, а иногда и об архитектуре системы. Этот опыт может быть иногда трудным, вы можете узнать из этого инструмента, что код - это в основном большой клубок грязи ;)

  • ищите тесты и изучайте их

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

6
ответ дан 2 December 2019 в 20:15
поделиться

«Я прошел курс скорочтения и прочитал« Войну и мир »за двадцать минут. Это касается России». (Вуди Аллен)

Я согласен с тем, что другие говорили до меня. Вам понадобятся некоторые инструменты, которые дадут вам обзор кода. Я лично использовал inFusion ( http://www.intooitus.com/inFusion ), потому что он дает также другие интересные данные помимо структуры.

1
ответ дан 2 December 2019 в 20:15
поделиться

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

0
ответ дан 2 December 2019 в 20:15
поделиться

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

Затем попробуйте рефакторить код. Еще лучше, если вы можете рефакторить код, над которым, как вы знаете, будете работать позже.

Это эффективно потому, что:

  • рефакторинг дает вам цель, к которой вы можете стремиться. В то время как "играть" и "ломать" код - это здорово, но это нецеленаправленно.
  • Чтобы рефакторить код, нужно действительно понимать код.
  • После рефакторинга остается код, в котором меньше концепций, которые нужно удерживать в памяти. Если вы не понимаете большую базу кода, это не потому, что вы выпускник, а потому, что никто не может удержать в памяти более 7 (плюс-минус несколько) концепций одновременно.
  • Если вы следуете правильным рекомендациям по рефакторингу, это означает, что вы будете писать тесты. Хотя, убедитесь, что вы будете работать над модулями, которые вы тестируете, так как написание тестов может отнимать много времени (хотя и приносить пользу)

Вложите деньги в покупку этой книги:

http://www.amazon.co.uk/Refactoring-Improving-Design-Existing-Technology/dp/0201485672

Но эти ссылки должны помочь вам начать:

Признаки того, что ваш код нуждается в рефакторинге и какой рефакторинг использовать (Из книги Refactoring - Martin Fowler) http://industriallogic.com/papers/smellstorefactorings.pdf

Таксономия запахов кода: http://www.soberit.hut.fi/mmantyla/BadCodeSmellsTaxonomy.htm

Удачи!!!

0
ответ дан 2 December 2019 в 20:15
поделиться

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

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

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

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

Я знаю, что вы чувствуете, потому что однажды я так себя чувствовал ...

1
ответ дан 2 December 2019 в 20:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: