JAVA团队开发手册 - 2.代码管理

工具选择

代码管理用什么工具好,有人喜欢git,不过git有个小小的缺点,就是对UI使用的大文件支持不太好,好比PSD文档,PNG文档等等。前端

做为windows下的佛系程序员,我仍是保守一点,团队使用SVN。git

若是有两个工具都差很少,选择最适合你的那个,或者说,选择团队里面会的人最多的那个。程序员

为何,节省时间成本。github

这并非说不能使用git和github, 该用你仍是用。web

只是在团队中咱们首选了svn, 方便大文件的存储。windows

工具选择哪一个,主要仍是看整个团队。后端

搭建环境

服务器端咱们使用visualsvn server.api

开源免费,而后权限控制挺棒的。安全

有钱的话能够购买一台腾讯的windows云服务器,放在外网部署。服务器

若是担忧代码安全问题,能够购买一台本地机器,而后把IP映射出去。

人多的团队可能担忧SVN的拉代码慢的问题,对于之前作手机的MTK团队的确须要担忧一下,动不动1-2G的代码。

对JAVA web团队,这个不用太担忧,除非你的网络很是差,那得考虑让老板加下带宽了。

若是老板不肯意,你能够算一下拉代码等待的时间X每一个人的小时工资。

绝对大于带宽的钱。

做为互联网开发团队,有两样钱不能省,一个是开发机的配置,一个就是网络带宽。

太慢不光影响效率,还影响开发心情。

文件夹规划

在咱们团队中的经验是拆分为3个大的仓库,一个代码,一个文档,一个发布。
也就是code,doc

code咱们须要创建分支,以便在发布和开发子功能的时候拉取分支。

其它的好比人力资源行政(hr),运维(devops)也拆分出来成为独立的仓库。

代码(code):

下面用来存放各个项目的代码,按项目名称进行划分。
好比你有一个oa项目,有一个user项目(用户中心).
咱们能够这样子进行存放。
oa
user

文件夹中看项目拆分程度,进行子项目的命名。

1.user是一个总体项目,没有作先后端分离,只有一个web项目。
咱们能够写成
user-web。
2.oa是一个先后端分离的项目,分为PC,手机两个前端项目,一个api项目。
那咱们能够写成
oa-api
oa-web-pc
oa-web-mb

文档(doc):

文档也是按照项目进行划分。
之因此文档单独分离,主要仍是权限控制的问题,代码通常不能被产品和UI拿到的,可是文档是你们都要看的,分离之后权限控制相对简单一点


仍是假设有两个项目oa和user.
oa下面有
task(各类需求和任务,为何用task,这个单词好记,简单)
ui(原型和ui设计就放这个里面了)
test(各类测试用例和测试报告就放这里面了)
lab(项目的衍生品作各类小实验的小工程文档,均可以丢这个里面)

user下面呢,一样是这些文件夹

hr和devops

hr和devops就不用太介绍了,你们本身想怎么放就怎么放

devops里面有一个要介绍的
须要有一个项目规划表
好比oa-api 用什么端口,放哪台服务器

版本发布

RC版本发布

RC版本发布就是从主干上拉取测试过的代码,建立一个分支,进行发布。

拿oa为例,咱们能够建立分支 rc-oa-1.00.0106 表示是1.00版本,2018年1月6号发布的。

正式版本发布

正式版本就不用特别拉取分支了,由于咱们RC上线,测试经过了,就是直接发布到正式了。

个别公司还有uat环境,可是对于小公司单应用快速迭代,RC已经够用了。

就算是uat环境,也是直接拉取rc, 只是配置的启动参数不同。

子功能添加

通常小的模块,能够直接在主干上进行开发,这没有太大的问题。

若是有影响很大的模块,建议建立一个分支 task-xxxx-oa-1.00.0106 这个样子。

在分支上开发完成之后,再经过打patch包合并到咱们的主干上来。

迭代周期

通常每一周,每一个人保持2-3个功能的开发上线,是比较合理的。

大的功能点耗费的时间长一点,这个时候能够考虑建立分支。

咱们通常周三下午就准备RC上线,周四RC测试一天,周四下午发正式服务器。

周五规划好下周功能,并讨论需求。

自动化发布

天天下午四点会自动化发布一个版本给测试进行回归.保证出现重大问题的及时回退。

相关文章
相关标签/搜索