Leo*_*eda 75 version-control continuous-integration unit-testing compilation
我总是独自编程,我还是学生,所以我从未与其他人一起编程,我以前甚至都没有使用版本控制系统.
我现在正在开展一个项目,需要了解程序员如何在公司的一个软件上协同工作.
软件是如何编译的?它来自版本控制系统吗?是个别程序员吗?这是周期性的吗?是有人决定建造什么的吗?是否有任何测试以确保它"有效"?
什么都行.
Ven*_*emo 54
实际上,这些流程的变化与许多公司一样多.含义:每个公司都有一些不同的约定,但有一些常见的最佳实践通常在大多数地方使用.
这些简单的事情确保项目不会失控,并且每个人都使用相同版本的代码.当事情变得非常糟糕时,连续集成过程会有所帮助.
它还可以防止人们提交不构建到主存储库的东西.
如果要包含一个需要数天才能实现的新功能,并且它会阻止其他人构建(和测试)项目,请使用版本控制的分支功能.
如果这还不够,您可以将其设置为进行自动化测试,如果可能的话,可以使用相关项目.
上面的列表乍一看可能非常重量级.我建议您根据需要进行操作:从版本控制和错误跟踪器开始,然后在需要时设置持续集成服务器.(如果这是一个大项目,你很快就会需要它.)开始为最重要的部分编写单元测试.如果还不够,那就写下更多.
一些有用的链接:
持续集成,每日构建是你的朋友,版本控制,单元测试
对于版本控制,我现在倾向于将Git用于我的个人项目.Subversion也很流行,例如,如果使用Windows服务器,VisualSVN很容易设置.对于客户来说,TortoiseSVN最适合很多人.这是Git和SVN之间的比较.
对于错误跟踪软件,Jira和Bugzilla非常受欢迎.我们还在以前的工作场所使用过Mantis.
对于持续集成软件,有一个Teamcity(同样,CruiseControl和它的.NET对应物值得注意).
当然,这将是首席开发人员.
在公司中,主要开发人员是与项目的财务/营销人员交谈的人,并根据公司的财务能力,计划的特征来自用户的要求以及可用的时间来决定结构.
这是一项复杂的任务,通常涉及不止一个人.有时,团队成员也被要求参与或集体讨论整个项目或特定部分的设计.
小智 11
我也是一名学生,他最近完成了一个软件工程课程,整个学期由一个巨大的小组项目组成.首先我要说的是,我们可以和3个人一起完成整个学期12个人的工作.与人合作是一件艰难的事情.沟通是关键.
绝对利用存储库.每个人都可以远程访问所有代码,并添加/删除/更改任何内容.但是关于颠覆的最好的部分是,如果有人破坏了代码,你可以恢复到早期版本并评估那里出了什么问题.沟通仍然是关键,知道你的队友在做什么,这样就没有冲突.不要坐在你的代码上,快速,有意义地提交到存储库是最有效的.
**我还推荐一个bug追踪器,比如Redmine.您可以为每个人设置帐户,并为人员分配具有不同优先级的任务,还可以跟踪并查看人员是否已经处理了某些问题,或者是否有更多问题出现.
并且,如前所述,单元测试将有很大帮助.祝你好运!希望这有帮助:-)
重要的是:
最后,您需要愿意共同努力实现该计划.这往往是艰难的部分.
通常,最好不要将构建工件检入存储库.存储库将包含源代码树,构建配置等 - 由人类编写的任何内容.软件工程师将检查其代码的副本到其本地文件系统并在本地构建它.
将单元测试作为构建过程的一部分运行也是一种好习惯.这样,开发人员将立即知道他的更改是否使任何单元测试无效,并且有机会在检查他的更改之前修复它们.
您可能希望查看版本控制系统(Subversion,CVS,Git等之一)的文档以及构建系统(例如,在Java中有Ant和Maven).