Новые крупные проекты - PullRequest
       5

Новые крупные проекты

7 голосов
/ 18 марта 2009

Я думаю, что я нахожусь в некоторой уникальной ситуации: у меня достаточно опыта программирования на C / C ++ в среде Linux. Тем не менее, у меня действительно нет «опыта проекта». Например, я знаком с концепцией контроля версий, но никогда не использовал ее. Или я никогда не работал над проектом с более чем полдюжиной исходных файлов.

Итак, сейчас я работаю над этим проектом с большим количеством кода, уже существующего. Я должен написать весь свой код в среде Windows, используя Visual Studio 2008 (точнее, Visual C ++), поэтому у меня есть несколько вопросов:

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

Есть ли у кого-нибудь общие рекомендации по переходу от небольших проектов к более крупным?

Любая помощь / совет будет принята с благодарностью

Ответы [ 6 ]

3 голосов
/ 18 марта 2009

Идеи, которые уже даны, очень хороши. Но вы также можете прочитать кодер Майка Гандерлоя для разработчика . Из вашего описания вашего текущего опыта, я думаю, вы найдете его полезным. Также читайте Прагматичный программист ; Я держу его в своем кабинете за столом и часто одалживаю его более молодым разработчикам.

3 голосов
/ 18 марта 2009

Некоторые из ключей к схватке с большой кодовой базой:

  • Изучите все тонкости контроля источников. А пока начните с изучения всех команд SVN. SVNBook - хороший ресурс для этого. Используйте VisualSVN или подобный плагин для взаимодействия с вашим репозиторием в вашей IDE (Tortoise по-прежнему полезен, когда вы хотите взаимодействовать из других источников). В будущем вам захочется познакомиться с ветвлением и слиянием (и инструментами для этого быстро и правильно) и, возможно, изучить DVCS (распределенную систему управления версиями), такую ​​как Git или Mercurial . Это, по крайней мере, немного расширит ваш кругозор и, вероятно, преподаст вам некоторые уроки, которые будут полезны даже в проектах, где вы используете более традиционный (централизованный) контроль версий.
  • Узнайте, как быстро искать вещи, находить объявления незнакомых классов и переменных и отслеживать выполнение более крупного приложения. Существует множество подходов для этого, и вы, вероятно, будете использовать большинство из них в тот или иной момент, но некоторые из них являются встроенными функциями вашей IDE (большинство из них достаточно надежны в этом отношении, вы должны быть в состоянии щелкните правой кнопкой мыши имя класса и легко найдите его объявление), grep и т. п. ( ack - вариант, который очень подходит для написания кода), и CTAGS , если вы качайте это (C / C ++).
  • Изучите основы модульного тестирования, возможно, даже попробуйте фреймворк, такой как NUnit . Лично я не разбираюсь в юнит-тестах, но я понимаю их полезность, и многие клянутся ими, так что не стучите, пока вы не попробовали, по крайней мере.
  • Даже если вы безупречный программист с надежной батареей модульных тестов, большие кодовые базы требуют более высокого уровня навыков отладки из-за сложности возникающих проблем. Может ли это помочь научиться писать краткие, описательные отладочные printf() -подобные операторы, лучше познакомиться с вашим отладчиком или даже изучить все тонкости вашего языка (например, угловые случаи системы типов / объектной модели) в решении этих сложных вопросов.

К сожалению, я не использовал Visual Studio, но я думаю, что ознакомление с процессом импорта / переноса проекта вашей IDE также будет поучительным. Может быть, кто-то еще поделится более конкретными советами по этому вопросу. Процесс может быть обременительным, особенно если у вас раньше была нестандартная система пользовательской сборки, и вы хотите, чтобы впредь все выполнялось One True Visual Studio Way, но инструменты для автоматического извлечения зависимостей из кода становятся все лучше и лучше.

1 голос
/ 18 марта 2009

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

Я также второй Мэтт J узнаю, как использовать IDE: я не знаком с Visual Studio конкретно, но должны быть контекстные пункты меню, когда вы нажимаете на класс или метод, чтобы привести вас к месту, где это было объявлено, и оттуда к классам, из которых это было получено.

Сначала настройте контроль версий: вы будете чувствовать себя более комфортно, когда будете учиться «возвращаться»;)

0 голосов
/ 18 марта 2009

Познакомьтесь с Visual Studio хорошо, если вы живете в нем, вы действительно должны это знать.
AnkSVN - бесплатный плагин для Visual Studio 2008, и он работает очень хорошо. Кроме того, Refactor для C ++ - это еще один бесплатный плагин и единственный способ получить поддержку рефакторинга в Visual C ++.

Кроме того, вы скоро узнаете, что в больших проектах 80% вашего времени будет потрачено на обслуживание кода, поэтому сделайте себе одолжение и сделайте свой код местом, в котором вы хотите жить, а не местом террор, от которого ты отступишь. Чистый код, случайные комментарии и модульные тесты будут иметь большое значение для того, чтобы вы захотели встать и пойти на работу утром, вместо того, чтобы бояться того, что вам придется работать над этим чудовищем, когда вы прикасаетесь к чему-либо, что оно ломает. 1008 *

0 голосов
/ 18 марта 2009

Юнит-тесты. Используйте их, или вы пожалеете об этом.

0 голосов
/ 18 марта 2009

Я давно пользуюсь VisualSVN без проблем. Он прекрасно интегрируется с vs2008. Что касается перехода к крупным проектам, отличный способ увидеть, как это делается, - загрузить исходный код существующего проекта и посмотреть, как он был собран. После того, как у вас есть хорошее представление о том, как все устроено, лучшее, что вы можете сделать для себя, - это написать код . Мозговой штурм проекта и пойти на это. В зависимости от того, как вы относитесь к своему результату после завершения, вы также можете использовать его как часть своего портфеля.

...