Инструменты, которые помогут маленькому магазину набрать больше очков в «Тесте Джоэла»

На мой взгляд, вопросы № 1 - № 4 о тесте Джоэла касаются используемых инструментов разработки и системы поддержки для разработчиков:

  1. Вы используете контроль версий?
  2. Вы можете сделать сборку за один шаг?
  3. Вы делаете ежедневные сборки?
  4. У вас есть база данных ошибок?

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

Для управления исходным кодом я знаю, что Subversion - отличное решение, и если вы работаете в одном магазине, вы можете даже использовать SourceGear's Vault .

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

Если вы можете ответить «да» на сборку за один шаг, я думаю, что создание ежедневных сборок будет простым, но какие инструменты вы бы порекомендовали для автоматизации этих ежедневных сборок?

Для команды из одного или двух человек уже обсуждалось на SO, что вы можете использовать FogBugz On Demand, но какие другие решения для отслеживания ошибок существуют для небольших команд?

18.08.2008 18:17:49
14 ОТВЕТОВ
РЕШЕНИЕ
  1. контроль версий : Subversion или Mercurial или Git
  2. автоматизация сборки: NAnt , MSBuild , Rake , Maven
  3. непрерывная интеграция: CruiseControl.NET или Continuum или Jenkins
  4. отслеживание проблем: Trac , Bugzilla , Gemini (если это должен быть .NET и free-ish)

Не забудьте автоматическое тестирование с NUnit , Fit и WatiN .

19
28.12.2011 22:24:12
Если вы хотите, чтобы он был .NET и бесплатным, в отличие от free-ish, тогда BugTracker.NET, а не Gemini. Имеет отличную интеграцию Subversion.
Corey Trager 27.09.2008 04:15:05
4
18.08.2008 18:21:11

Хорошим трекером, который был относительно недорогим, был axoSoft OnTime . Я использовал его в течение многих лет, прежде чем получить MS TFS.

Нант и CruiseControl являются основными элементами моей среды.

0
18.08.2008 18:29:58

Я не думаю, что вам действительно нужно запутывать на .Net больше ( см. Другой ответ )

Я бы не стал рассматривать Vault, сейчас SVN действительно лидер на рынке (и бесплатный). Git выглядит довольно многообещающе, но в настоящее время это командная строка только с крутой кривой обучения.

MSBuild побеждает NAnt для .Net 2 или 3.5

CC.Net отлично.

0
23.05.2017 10:27:42

Мой инженерный стек:

  1. Git (я люблю GitHub, но Git не требует размещенного решения)
  2. Грабли
  3. CruiseControl.rb
  4. FogBugz

Без сомнения, на этот выбор влияет мой стек разработки, который чаще всего включает в себя Ruby, Rails, SQLite, Firefox и OSX.

2
18.08.2008 18:40:45

* 4) Redmine

Я рекомендую Bitnami для тестирования различных стеков. У него есть Trac, Redmine и Subversion, а также несколько других не связанных между собой.

0
18.08.2008 18:45:01

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

1
18.08.2008 18:49:06
Вы перестраиваете все, что (вероятно) зависит от переданного кода? В некоторых случаях (изменение одного из базовых компонентов) может привести к перестройке всего приложения. Как вы справляетесь со временем сборки ~ час для одного коммита? Спасибо.
TcKs 8.06.2009 12:04:45
После коммита, мы ждем 60 секунд, чтобы увидеть, поступят ли еще коммиты. Это в основном позволяет избежать построения дерева только с одним из нескольких связанных коммитов. Мы строим все, что зависит от принятого кода. Для нашего проекта «Инструментарий» это может быть 10 приложений. Сборка для нашего крупнейшего приложения (~ 200 тыс. Строк Java) занимает <1 мин на нашей сборочной коробке. Тем не менее, коммиты могут поступать во время сборки - в этом случае мы собираемся снова, как только заканчивается первая сборка. Если наши сборки станут длиннее, у этого будет больше шансов. В конце концов, мы теоретически достигли бы ситуации, когда сборочная коробка всегда собирается.
Jon Bright 11.06.2009 10:24:11

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

2
23.05.2017 12:02:50

Ознакомьтесь с этими статьями о непрерывной интеграции с использованием MSBuild, CruiseControl.NET, FxCop, NUnit, NCover и Subversion ...

Из окопов разработки программного обеспечения

0
18.08.2008 20:09:28

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

Любой из Bugzilla, Trac или Fogbugz поможет вам с отслеживанием ошибок, и каждый из них предлагает функцию экспорта, так что вы всегда можете передумать позже. Кроме того, если вы можете заставить свою команду полностью скупиться, программное обеспечение для управления временем также может пригодиться для посмертных и т. Д. (Если каждый заинтересован в полном участии.

0
18.08.2008 23:13:46

Мой любимый стек:

1) Subversion. Я заинтригован по поводу распределенного управления исходным кодом, но у меня еще не было возможности попробовать что-либо в гневе. Для централизованного решения SVN является надежным.

2) Муравей. Maven - это радость, когда он работает, но как старый муравейник я нахожу, что maven трудно следовать, когда что-то идет не так.

3) Хадсон. Пока не упоминалось, но, безусловно, стоит изучить. Невероятно полезный и активно поддерживаемый инструмент. PreviousLy мы заплатили за Anthill Pro, который казался ненадежным, и каждый раз, когда он облажался, было трудно его исправить.

4) Мы платим за джира. Не дешевый, но гораздо более удобный, чем варианты с открытым исходным кодом, на которые мы смотрели, и очень гибкий.

3
19.08.2008 00:24:24

Для автоматизации сборки и непрерывной интеграции взгляните на TeamCity от Jetbrains .

У него много функций, и его легко настроить и использовать.

Если вы используете Visual Studio 2005/2008, он создаст ваше решение напрямую, без необходимости в дополнительных сценариях (если сборка - это все, что вам нужно).

Он также выполнит ваши модульные тесты и соберет статистику об успешности сборки, времени выполнения модульных тестов и т. Д. И т. Д.

Лучше всего: Pro-версия бесплатна для команд до 20 пользователей и 3 агентов сборки.

0
19.08.2008 19:00:58
  1. Гит
  2. Делать
  3. Cron
  4. Trac

Я человек из нескольких слогов ;-)

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

Эта функция мне нравится в git. Я думаю, что он действительно присутствует только в распределенных системах контроля версий; использование DVCS не означает, что вам действительно нужно заниматься распределенной разработкой.

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

Если вам нужны ежедневные сборки, поместите команду build в свой cron.daily. Установите обработчик procmail для обработки почты от cron, если это необходимо.

Для отслеживания ошибок используйте $(apt-cache search bug tracking). В основном, если на коробке написано «средство отслеживания ошибок», и вы знаете, что другие люди используют его, это, вероятно, будет работать нормально. Среди завсегдатаев - багзилла, богомол и трак.

2
24.05.2009 23:54:34
  1. контроль источника: cvs
  2. построить гну сделать
  3. задание cron, которое вызывает скрипты bash
  4. Bugzilla
0
8.06.2009 11:57:20