在“乔尔测试”中帮助小店铺得分更高的工具

时间:2008-08-18 18:17:50

标签: version-control bug-tracking dailybuilds

我认为Joel Test上的问题#1到#4都是关于正在使用的开发工具和为开发人员提供的支持系统:

  1. 您使用源代码管理吗?
  2. 你能一步完成构建吗?
  3. 你做日常制作吗?
  4. 你有一个bug数据库吗?
  5. 我只是好奇为没有大型银行账户的小型开发商店提供免费/便宜(但很好)的工具,以便在这些问题上获得肯定答案。

    对于源代码管理,我知道Subversion是一个很好的解决方案,如果你是一个单人店,你甚至可以使用SourceGear的Vault

    我将NAnt用于我的大型项目,但还没有设置脚本来构建我的安装程序以及运行obfusication工具只需一步。还有其他建议吗?

    如果您只需一步即可对建筑物回答“是”,我认为创建每日构建很容易,但您建议使用哪些工具来自动化这些日常构建?

    对于一个或两个人的团队,已经在SO上讨论过你可以使用FogBugz On Demand,但小团队还有其他什么样的bug跟踪解决方案?

14 个答案:

答案 0 :(得分:19)

  1. 源代码管理:SubversionMercurialGit
  2. 构建自动化:NAntMSBuildRakeMaven
  3. 持续整合:CruiseControl.NETContinuumJenkins
  4. 问题跟踪:TracBugzillaGemini(如果必须是.NET和free-ish)
  5. 不要忘记使用NUnitFitWatiN进行自动化测试。

答案 1 :(得分:4)

1)Subversion

2)Ant / Maven

3)Continuum

4)Bugzilla / Trac

答案 2 :(得分:3)

我喜欢的堆栈:

1)颠覆。我对分布式源代码控制很感兴趣,但还没有机会尝试任何愤怒。对于集中式解决方案,svn坚如磐石。

2)Ant。 Maven在工作时使用是一种乐趣,但作为一个老蚂蚁黑客,我发现一旦出现问题,maven很难跟上。

3)哈德森。到目前为止没有被提及,但绝对值得调查。令人难以置信的可用和积极维护的工具。 PreviousLy我们为Anthill Pro买单,看起来很好看,每次搞砸都很痛苦。

4)我们支付jira。不是便宜,但比我们看到的开源选项更有用,也非常灵活。

答案 3 :(得分:2)

  1. GIT中
  2. 的Cron
  3. Trac系统
  4. 我是一个几个音节的人; - )

    确保使用某种版本控制,开发人员可以轻松地创建私有分支,然后将其私有分支并将其压缩到主分支上的单个提交中。这样,个人开发人员 - 而不是组织 - 可以获得版本控制的好处,而不会在提交失败的情况下污染任何其他人的代码(并减慢他们的工作)。

    这个功能是我喜欢的git。我认为它只存在于分布式版本控制系统中;但是,使用DVCS并不意味着你实际上不得不进行分布式开发。

    关于一步构建,make是默认构建工具,它对大多数任务都很有效。除非你有充分的理由不这样做,否则我会继续这样做。

    您需要每日构建,将构建命令放在cron.daily中。如果需要,设置一个procmail挂钩来处理来自cron的邮件。

    要进行错误跟踪,请使用$(apt-cache search bug tracking)。基本上,只要它在盒子上说“bug tracker”并且你知道其他人正在使用它,它可能会正常工作。常客包括bugzilla,mantis和trac。

答案 4 :(得分:2)

我的工程堆栈:

  1. Git(我喜欢GitHub,但Git不需要托管解决方案)
  2. CruiseControl.rb
  3. 的FogBugz
  4. 毫无疑问,这些选择会受到我的开发堆栈的影响,开发堆栈通常包括Ruby,Rails,SQLite,Firefox和OSX。

答案 5 :(得分:2)

您可能希望查看我finding an alternative to Team System的现有问题。那里也有很多建议。

答案 6 :(得分:1)

我没有任何建议的工具,但我对每日构建有一个建议。我总是对这个问题回答是,即使我们没有每日构建。相反,我们每次有人提交时都会进行构建。因此,我们几乎立即发现任何问题。如果我们的任何项目都有足够的LOC,那么建筑需要花费的时间超过一些时间,那么这样做也会优雅地降低每日构建的方向。

答案 7 :(得分:0)

我目前正在使用SVN,但我通常在开发服务器上检查网络驱动器时遇到很多问题。往往存在需要大量钓鱼才能解决的锁定问题。可能是使用WebDav访问方法会缓解其中的一些问题,但我还没有进行过实验。

任何Bugzilla,Trac或Fogbugz都会帮助您进行错误跟踪,并且每个都提供导出功能,因此您可以随时改变主意。此外,如果您可以让您的团队完全购买,时间管理软件也可以方便用于验尸等(如果每个人都有动力完全参与。

答案 8 :(得分:0)

使用MSBuild,CruiseControl.NET,FxCop,NUnit,NCover和Subversion查看有关持续集成的这些文章......

From the software development trenches

答案 9 :(得分:0)

对于构建自动化和持续集成,请查看TeamCity中的Jetbrains

它有很多features,设置和使用真的很轻松。

如果您使用Visual Studio 2005/2008,它将直接构建您的解决方案,而无需额外的脚本(如果您只想构建一个版本。)

它还将执行您的单元测试并收集有关构建成功,单元测试执行时间等的统计信息。

最重要的是:专业版对于拥有多达20个用户和3个构建代理的团队是免费的。

答案 10 :(得分:0)

相对便宜的好问题跟踪器是axoSoft OnTime。在使用MS TFS之前我使用了它多年。

NantCruiseControl是我环境的主要内容。

答案 11 :(得分:0)

  1. 源代码管理:cvs
  2. 构建gnu make
  3. 调用bash脚本的cron作业
  4. 的bugzilla

答案 12 :(得分:0)

我不认为你真的需要在.Net上进行模糊处理(see another response

我不会考虑Vault,SVN目前真的是市场领导者(而且是免费的)。 Git看起来非常有前途,但目前只有陡峭的学习曲线才是命令行。

MSBuild击败.nt 2或3.5

的NAnt

CC.Net很棒。

答案 13 :(得分:0)

* 4)Redmine

我建议Bitnami测试不同的堆栈。它有Trac,Redmine和Subversion,以及其他几个不相关的。