帮助小商店在"乔尔测验"中得分更高的工具
我认为Joel测试中的问题1至问题4与正在使用的开发工具和为开发人员提供的支持系统有关:
- 我们是否使用源代码管理?
- 我们可以一步一步构建吗?
- 我们每天制作吗?
- 我们有错误数据库吗?
我很好奇,对于没有大型银行帐户可用来对这些问题做出肯定答案的小型开发商店,有哪些免费/廉价(但很好)的工具存在。
对于源代码管理,我知道Subversion是一个很好的解决方案,如果我们是一个单一商店,甚至可以使用SourceGear的Vault。
我将NAnt用于较大的项目,但尚未设置脚本来构建安装程序以及运行混淆工具,只需一步即可。还有其他建议吗?
如果我们可以在一个步骤中对建筑物做出肯定的回答,那么我认为创建每日构建会很容易,但是我们建议使用哪些工具来自动化这些每日构建?
对于一个或者两个人的团队,已经在SO上进行了讨论,我们可以使用FogBugz On Demand,但是对于小型团队还存在哪些其他错误跟踪解决方案?
解决方案
回答
1)颠覆
2)蚂蚁/ Maven
3)连续体
4)Bugzilla / Trac
回答
- 源代码控制:Subversion或者Mercurial或者Git
- 构建自动化:NAnt,MSBuild,Rake,Maven
- 持续集成:CruiseControl.NET或者Continuum或者Jenkins
- 问题跟踪:Trac,Bugzilla,Gemini(如果必须为.NET和免费版本)
不要忘记使用NUnit,Fit和WatiN进行自动化测试。
回答
一个相对便宜的好问题跟踪工具是axoSoft OnTime。在获得MS TFS之前,我已经使用了多年。
Nant和CruiseControl是我的环境的主要内容。
回答
我认为我们真的不再需要对.Net进行混淆(请参阅其他回复)
我不会考虑Vault,目前SVN确实是市场领导者(免费)。 Git看起来非常有前途,但是目前只有陡峭的学习曲线才是命令行。
MSBuild击败.NET 2或者3.5的NAnt
CC.Net非常好。
回答
我的工程堆栈:
- Git(我喜欢GitHub,但是Git不需要托管解决方案)
- 耙
- CruiseControl.rb
- 福格布兹
毫无疑问,这些选择受我的开发堆栈的影响,开发堆栈通常包括Ruby,Rails,SQLite,Firefox和OSX。
回答
- 4)Redmine
我建议使用Bitnami测试不同的堆栈。它有Trac,Redmine和Subversion,以及其他几个不相关的东西。
回答
我没有任何建议的工具,但是我有关于日常构建的建议。即使我们没有每日构建,我也总是对这个问题回答是。相反,每当有人进行提交时,我们都会进行构建。因此,我们几乎立即发现了任何问题。如果我们的任何项目的LOC足以使构建花费的时间不短,那么这样做也会朝着日常构建的方向优雅地降级。
回答
我们可能希望查看我现有的问题,以找到Team System的替代方案。也有很多建议。
回答
查看有关使用MSBuild,CruiseControl.NET,FxCop,NUnit,NCover和Subversion进行持续集成的文章...
从软件开发战es
回答
我目前使用的是SVN,但通常对开发服务器上的网络驱动器结帐有很多问题。往往存在锁定问题,需要大量研究才能解决。也许使用WebDav访问方法可以缓解其中的一些问题,但是我还没有进行过试验。
Bugzilla,Trac或者Fogbugz中的任何一个都可以进行错误跟踪,并且每个都提供导出功能,因此我们以后随时可以改变主意。另外,如果我们可以让团队完全参与进来,那么时间管理软件也可以方便地进行事后调查等(如果每个人都有充分参与的动力。
回答
我的首选堆栈:
1)颠覆。我对分布式源代码控制很感兴趣,但是还没有机会尝试一下。对于集中式解决方案,svn坚如磐石。
2)蚂蚁。 Maven在工作时会很有趣,但是作为老蚂蚁黑客,我发现一旦出现问题,Maven很难追随。
3)哈德森。到目前为止尚未提及,但绝对值得调查。难以置信的实用性和积极维护的工具。 PreviousLy我们为Anthill Pro付了钱,它看起来有些脆弱,每次拧紧时都很难修复。
4)我们为吉拉支付。它并不便宜,但比我们研究的开源选项更有用,而且也非常灵活。
回答
对于构建自动化和持续集成,请查看Jetbrains的TeamCity。
它具有很多功能,并且设置和使用起来非常容易。
如果我们使用Visual Studio 2005/2008,它将直接构建解决方案,而无需额外的脚本(如果只需要构建)。
它还将执行单元测试,并收集有关构建成功,单元测试执行时间等的统计信息。
最好的是:Pro版本对于拥有20个用户和3个构建代理的团队是免费的。
回答
- 吉特
- 制作
- 克龙
- Trac
我是一个只有几个音节的人;-)
确保使用某种版本控制,使开发人员可以轻易地随意创建私有分支,然后将其私有分支压缩到主分支中的单个提交中。这样,相对于组织而言,个人开发人员(而不是组织开发人员)可以获得版本控制的好处,而不会因提交中断而污染其他任何人的代码(并降低他们的工作速度)。
我喜欢git的这个功能。我认为它仅在分布式版本控制系统中才真正存在。但是,使用DVCS并不意味着我们实际上必须进行分布式开发。
关于一步构建,make是默认的构建工具,它对大多数任务都非常有效。除非我们有充分的理由不这样做,否则我会同意的。
我们需要每日构建,请将构建命令放在cron.daily中。如果需要,设置procmail挂钩来处理来自cron的邮件。
要进行错误跟踪,请使用$(apt-cache搜索错误跟踪)。基本上,只要它在包装盒上显示"错误跟踪程序",并且我们知道其他人正在使用它,它就可以正常工作。 Bugzilla,螳螂和Trac是常客。
回答
- 源代码控制:cvs
- 建立gnu make
- 调用bash脚本的cron作业
- 虫子