JAVA团队开发手册 - 2.代码管理
工具选择
代码管理用什么工具好,有人喜欢git,不过git有个小小的缺点,就是对UI使用的大文件支持不太好,比如PSD文档,PNG文档等等。
作为windows下的佛系程序员,我还是保守一点,团队使用SVN。
如果有两个工具都差不多,选择最适合你的那个,或者说,选择团队里面会的人最多的那个。
为什么,节省时间成本。
这并不是说不能使用git和github, 该用你还是用。
只是在团队中我们首选了svn, 方便大文件的存储。
工具选择哪个,主要还是看整个团队。
搭建环境
服务器端我们使用visualsvn server.
开源免费,然后权限控制挺棒的。
有钱的话可以购买一台腾讯的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测试一天,周四下午发正式服务器。
周五规划好下周功能,并讨论需求。
自动化发布
每天下午四点会自动化发布一个版本给测试进行回归.
保证出现重大问题的及时回退。
JAVA团队开发手册 - 2.代码管理相关推荐
- JAVA团队开发手册 - 1.环境搭建
JAVA团队开发手册 - 1.环境搭建 写在前面 所有公司最核心的根本就是赚钱 + 实现老板的梦想. 对于IT类技术型公司,最大的成本就是人,可以称之为知识型劳动密集型企业. 对比房地产,模糊的说,产 ...
- 【代码质量】-阿里巴巴java开发手册(代码质量提升神器)学习笔记
前言:<阿里巴巴 Java 开发手册>是阿里巴巴集团技术团队的集体智慧结晶和经验总结,有了这些前人总结的经验,可以帮助我们写出高质量的代码,同时可以减少Bug数量,少踩坑,提高代码的可读性 ...
- Java阿里巴巴开发手册与JDK1.8API中文版下载
Java阿里巴巴开发手册 JDK1.8API中文版 链接:https://pan.baidu.com/s/1M3zp31KlRCXDXkBqHSUS6A 提取码:lcmc
- 阿里巴巴Java正版开发手册.pdf(转)
目录 一 .编程规约 编程规约 .................................................................................... ...
- java web 开发技术大全 代码_Java Web开发技术大全
资深程序员全力打造,深入剖析SSH框架整合开发的精髓 全方位解读Java Web开发的基础知识.高级技术及应用案例 内容全面,讲解详细,全面覆盖JSP.Se rvlet.AJAX及SSH框架整合开发 ...
- 开发中的代码管理工具熟知
一. 掌握 - git 概述 1. git 简介? 1.什么是git? > git是一款开源的分布式版本控制工具 > 在世界上所有的分布式版本控制工具中,git是最快.最简单.最流行的 2 ...
- 阿里 P9 开源分享内部 Java 核心开发手册(2022 版)覆盖 P5 到 P8
这个世界唯一不变的就是变化, IT 圈子不外如是.计算机领域一直在改变,从基础框架到计算设备,还有几乎每天都涌现出的新技术.因此,作为一名程序开发人员,我们要通过不断的学习来提高自己的技能. 所以持续 ...
- 爱了,阿里P9开源分享内部Java核心开发手册(2022版)覆盖P5到P8
这个世界唯一不变的就是变化, IT圈子不外如是.计算机领域一直在改变,从基础框架到计算设备,还有几乎每天都涌现出的新技术.因此,作为一名程序开发人员,我们要通过不断的学习来提高自己的技能. 所以持续学 ...
- 最全面的Java核心技术开发手册
Java 概述 什么是 Java? Java 是 Sun Microsystems 于1995 年首次发布的一种编程语言和计算平台.编程语言还比较好理解,那么什么是 计算平台 呢? " 计算 ...
最新文章
- 百亿数据,毫秒级返回,如何构建?
- 逆向分析c++ vector向量
- [Azure] Azure 中国服务使用注意事项及兼容版存储访问工具
- CSS弹出二级多列菜单和DIV布局实例 - 仿IBM官网首页
- Spring-基于Spring使用自定义注解及Aspect实现数据库切换
- qtablewidget设置选中一行_Word里面如何设置标题的大纲级别
- java gc 可以对方法区进行回收_浅谈 Java 之 GC
- Linuxcurl命令参数详解
- 一个简单的时间轴demo
- 使用.net备份和还原数据库
- FastCGI - Writing Hello World in FCGI with C++
- unix c线程同步的三种方法:互斥量、读写锁以及条件变-xhb8413-ChinaUnix博客
- 小米荣耀互怼:头部高管们神仙打架 到底谁是谁非?
- 微弱信号相关检测程序matlab,基于MATLAB微弱信号的相关检测设计与仿真.pdf
- .NET下,你采用的哪种方式来操作数据库
- BAT Java面试154道题分享!搞懂轻松进BAT
- 给一张表加一个自动编号字段_Python办公自动化|从Word到Excel
- cs231n图像分类笔记(上)学习记录
- 2022-09-29 C++并发编程(二十八)
- Google Guava与字符串操作相关的类
热门文章
- 从零开始学产品第五篇:三个环境,开发、测试和线上
- 数据库知识点一共涉及这几方面知识
- python展示全部好友_利用Python网络爬虫抓取微信好友的签名及其可视化展示
- 卷积神经网络流程图_基于卷积神经网络的叶片气孔自动计数方法
- Jquery Ajax 请求示例
- 事务的传播行为和隔离级别?
- Spring Boot RestTemplate 忽略证书访问https
- Windows 下使用ftp批处理脚本
- [Ext JS 4] 实战之Load Mask - 在Grid Reconfigure的使用状况
- pythoninit作用_简介Python中的__init__的作用