关于团队协助开发,遇到比较多的就是两类问题:

  1. 开发环境不统一的问题

  2. 代码管理问题

 

1. 开发环境不统一的问题

自从在上家公司离职后,就一直在想,怎么才能很好的解决开发环境不统一的问题。。。测试可能在window 下开发,前端可能在mac os下开发,后端可能在ubuntu下,怎么才能跨平台解决不兼容的问题,做到整个团队统一开发环境,再也不怕,“为什么我这里可以,你的机器就报错”这类问题了~~

经过几个月的实践操作,我发现借助vagrant + virtualbox可以很好的解决这个问题。。。首先vagrant 和 virtual box都是跨平台的产品,可以很好的兼容在不同的系统上安装。。。其次,不改变团队每个员工的现有开发习惯和coding环境,vagrant会挂载一个共享文件夹,开发还是通过原有的开发习惯开发,访问的却是通过端口转发或者ip绑定的方法来直接访问虚拟机里面的服务。。。最后,借助vagrant打包,团队分发,做到团队完全一致的运行环境,甚至还可以把包纳入版本管理,让团队随意切换包的版本。。。

目前我们的团队统一使用的环境就是ubuntu12.04, web的服务全部跑在ubuntu下,源码放到共享文件夹里面,这样就可以使用本机系统的IDE等开发工具开发,然后跑的却是ubuntu系统里面的服务。。。

不得不说vagrant真是统一开发环境的神器,想了解vagrant的详细操作,推荐一篇好文:http://blog.segmentfault.com/fenbox/1190000000264347

 

2. 代码管理问题

代码管理问题的话,遇到比较麻烦的就是冲突问题,或者是提交不清晰,导致需要做回滚操作的时候,浪费大量时间去找。。

这里我暂时认为,使用git flow规范来开发是比较好的一个解决方法。。。

在日常开发上,提倡团队成员多commit,可以等功能全部完善再push到代码库里面,多commit,对以后查找很有帮助。

这里推荐一篇文章:写出好的 commit message