Каковы в настоящее время инструменты для улучшения, автоматизации и упрощения сборки и управления версиями программного обеспечения - PullRequest
1 голос
/ 30 января 2011

Я пишу приложения на Java.Я использую в основном Eclipse, Maven.Стоит ли использовать SVN, если над проектом работает только один человек (я)?Svn репозиторий / сервер должен быть на моем компьютере или в Интернете?Какие еще инструменты я должен посмотреть?Гудзон, мерзавец?Для чего нужен Гудзон?Какие инструменты использовать в процессе разработки, чтобы сделать этот процесс еще более увлекательным и профессиональным.

Ответы [ 4 ]

5 голосов
/ 30 января 2011

Стоит ли использовать SVN, если над проектом работает только один человек (я)?

Да. Svn или какой-либо другой репозиторий исходного кода (git, mercurial, cvs и т. Д.) Помогает вам вести историю изменений, которые вы вносили, и позволяет вам вернуться к более раннему состоянию, если вы допустили большую ошибку. (Конечно, если вы никогда не делаете ошибок и всегда помните, что вы сделали и почему ... навсегда ... контроль версий является излишним.)

Svn репозиторий / сервер должен быть на моем компьютере или в интернете?

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

На какие еще инструменты я должен смотреть? Гудзон, мерзавец? Для чего нужен Гудзон?

Git - это альтернатива svn ...

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

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

Инструмент тестирования покрытия, такой как Coberatura (в Гудзоне).

Проверки стилей и ошибок, такие как CheckStyle, FindBugs, PMD и т. Д.

Хорошая кофемашина: -)

2 голосов
/ 30 января 2011

Да, я бы сказал, что полезно иметь контроль версий, даже если вы единственный пользователь.Вот некоторые из преимуществ:

  • Вы можете быстро отменить свои изменения, не задумываясь о том, что вы изменили со времени последнего обновления / фиксации
  • Вы можете перейти в свой проект для проверки идей, иобъединить ветви или вернуться к базе
  • В случае, если к проекту присоединяется новый программист, он может просто извлечь проект из системы контроля версий и начать в него входить, не копируя файлы по сети или черезusb-stick или что-то
  • У вас есть история вашего проекта (что было сделано, когда)
  • Ваши проекты хранятся в одном месте, где вы можете легко увидеть их все и / или реализоватьавтоматическое резервное копирование
  • Упрощение совместного использования и работы над проектом на нескольких компьютерах
  • Вы получаете опыт использования контроля версий, который вам, вероятно, понадобится позже при работе в команде над каким-либо проектом

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

Что касается того, какая система контроля версий является «лучшей», я не могу сказать точно.Я только использовал CVS и SVN, из этих двух я бы сказал, определенно пойти с SVN.Я также слышал хорошие отзывы о Mercurial и GIT, но никогда не использовал их.

Что касается других инструментов, я не уверен, что они вам нужны (поскольку вы уже используете Maven).У нас есть Hudson на работе, но я не знаю, как его настроить (это сделал кто-то другой), хотя веб-сайт Hudson говорит, что это действительно легко.Hudson контролирует систему контроля версий (в нашем случае svn) и автоматически создает проект, когда замечает новые изменения, внесенные в svn.Он запускает maven-target и сообщает о любых неудачных тестах коммиттеру по электронной почте.Я думаю, что можно также запланировать выполнение сборок в определенное время и развертывание проекта в указанном месте, но не уверен в этом.Для одного проекта разработчика, я бы сказал, что настройка Hudson, вероятно, излишняя.

Редактировать: Вспоминая, если вы решили использовать SVN, получите Subclipse (так как вы используете Eclipse), этоSVN-плагин, который позволяет легко обрабатывать извлечения / фиксации / обновления / отмены и просматривать историю, изменения и т. Д. Прямо из Eclipse-IDE.

1 голос
/ 30 января 2011

Стоит ли использовать SVN, если над проектом работает только один человек (я)?

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

Svn репозиторий / сервер должен быть на моем компьютере или в интернете?

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

На какие еще инструменты я должен смотреть?

Вы можете выбрать Mercurial. Это позволяет вам делать локальные коммиты, которые хранятся как отдельные версии, поэтому каждое соответствующее изменение регистрируется отдельно. Затем периодически вы можете отправить его на сервер, где он хранится удаленно и более безопасно. На самом деле это та же концепция, что и в Git (распространяемой), но Mercurial, похоже, менее всеобъемлющий.

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

Кофемашина. ;)

0 голосов
/ 30 января 2011

Стоит ли использовать SVN, если сейчас над проектом работает только один человек (I)?

Да, это так.Альтернатива - иметь кучу .zip или .tgz со странными именами, такими как «last», «working», «test1», «bad», и не помнить, что вы сделали и почему.Обратите внимание, что если проект не тривиален, то даже через некоторое время вы будете точно таким же, как кто-то другой (т.е. не помните, что вы сделали и почему на самом деле ничем не отличается от того, что не знаете его).

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

Svn-репозиторий / сервер должен быть на моем компьютере или в Интернете?

Если вы используете распределенный контроль версий (например, git), тогда удаленный - это лучший вариант для ИМО.Я использую виртуальный сервер с дистрибутивом linux через ssh, но есть и специализированные хостинговые службы только для репозиториев.

Если вы не используете распределенную систему контроля версий (например, вы используете svn), то всеНемного раздражает, если хранилище находится в Интернете.

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

...