Java开发团队管理细则
软件开发是团队协作,多人开发很容易造成协调问题,因此,做一些必要的开发规范,有助于帮助新员工成长,也有助于提高开发效率,防止各种问题影响开发进度。
1. 代码规范
建议每位java开发人员都读一下《阿里巴巴Java开发手册》
阿里作为中国最大规模使用Java的公司,也是Java技术实力最强的公司。这个手册在业界影响很大,已经成为了很多团队的开发标准,更加方便的是,开发了IntelliJ Idea插件,使用方式见官方说明文档:https://github.com/alibaba/p3c/blob/master/idea-plugin/README_cn.md 可以在写代码时实时对常见的代码书写错误或者可能留坑的地方进行提示,非常有用。
如图:插件利用Inspections设置了很多规则进行检验,包含的都是代码规范,如果有错误或者不规范的地方,会标出来,有些还会给出修正建议,非常方便。

扫描生产环境一个老项目,结果如下,注意这些问题,有助于提高员工能力。

PS:推荐FindBugs-IDEA,能够帮助我们找出一些代码中的潜在问题,建议配合Alibaba Java Coding Guidelines一起使用。
2. 项目行结束符统一
当一个开发同一个项目的开发人员,有些使用mac/lunix, 有些使用windows时,很容易因为行结束符的不同导致做code review比较diff的时候出现整个文件不一样的情形,其实不是文本不一样,只是行结束符不一样。
windows的行结束符是CRLF(\r\n), 而Unix and OS X的是LF(\n)
因此,最好将行结束符统一设为LF。
设置方式:intellij idea → file → setting → code style → line separator 设为Unix and OS X(\n)

然后开启本地行结束符提示,当有文件行结束符与设置不一致时,文件上边缘会出现提示,并支持一键修复,如果是老代码进行修改,也有对整个project进行扫描,并一键全部替换,非常方便。

3. code style
大括号应不应该换行,== 两边应不应该空格,一行代码最长写多少,这些都是代码格式规范,
在 intellij idea → file → setting → code style 中都有设置,同一个项目甚至同一个公司的开发人员,最好都使用同一份模板,保证大家代码的一致性,在写完一段代码后,执行Reformat Code(windows下Crtl + Alt + L), 可以一键将不符合格式规范的代码进行修正。
如果公司没有统一的规范的话,建议使用Google的规范,https://github.com/google/styleguide/blob/gh-pages/intellij-java-google-style.xml
4. git使用规范
多人开发,很容易出现merge conflict,一般来说都有test分支和master分支,在每次合test分支前,先merge master,保证当前分支与master同步,避免在test分支合自己分支时,出现由于自己代码分支版本落后而导致不应出现的conflict。
如果可以,建议使用gitflow框架,条理清楚,操作方便。
Java开发团队管理细则的更多相关文章
- 用Java开发一个本地服务管理软件
一.最终界面先贴上最终效果图,图1为初始化界面,图二为点击启动/停止之后的中间过渡状态,图三为启动成功后弹出的提示框 把动态gif图片嵌入到jpg背景图中?用Adobe ImageReady即可办到 ...
- Java开发笔记(八十四)文件与目录的管理
程序除了处理内存中的数据结构,还要操作磁盘上的各类文件,这里的磁盘是个统称,泛指可以持久保留数据的存储介质,包括但不限于:插在软驱中的软盘.固定在机箱中的硬盘.插在光驱中的光盘.插在USB接口上的U盘 ...
- atitit.研发管理--标准化流程总结---java开发环境与项目部署环境的搭建工具包总结
atitit.研发管理--标准化流程总结---java开发环境与项目部署环境的搭建工具包总结 1. ide系列(只开发环境需要,但部署环境也做好放上,很有用) 1 2. web服务器+sdk+网站程序 ...
- 阿里巴巴天猫超市团队招聘java开发工程师
大家好,发个招聘信息:我是阿里巴巴集天猫超市开发团队的同学,我们部门目前在杭州招人,P6岗位,要求至少本科,熟悉java,spring等java开发技术,最好有互联网企业开发经验,感兴趣的可以通过我直 ...
- Java开发笔记(一百四十七)通过JDBC管理数据库
前面介绍了如何通过JDBC获取数据库连接,可是Connection对象不能直接执行SQL语句,需要引入Statement报告对象才能操作SQL.Statement对象由Connection的creat ...
- 高性能JAVA开发之内存管理
这几天在找一个程序的bug,主要是java虚拟机内存溢出的问题,调研了一些java内存管理的资料,现整理如下: 一.JVM中的对象生命周期 对象的生命周期一般分为7个阶段:创建阶段,应用阶段,不可视阶 ...
- 使用Java开发高性能网站需要关注的那些事儿
无论大型门户网站还是中小型垂直类型网站都会对稳定性.性能和可伸缩性有所追求.大型网站的技术经验分享值得我们去学习和借用,但落实到更具体的实践上并不是对所有网站可以适用,其他语言开发的网站我还不敢多说, ...
- Java开发环境的配置与Hello World
一.Java开发需要做的准备 Java程序的执行过程是首先由Java编译器将以.java为后缀的Java源文件编译成.class字节码文件.然后字节码文件便可以由JVM虚拟机进行加载并执行. 在初学J ...
- 答CsdnBlogger问-关于职业发展和团队管理问题
本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处! 问1:关于职业发展以及团队管理?(正能同學_) 请问在二线城市的小公司里,普通Android开发者的 ...
随机推荐
- 设置使用的python版本
一.查看当前使用的python版本,或设置使用的python版本 二.python2中默认使用ASCII码,无法识别中文,报错如图,解决办法,设置字符集为utf-8
- blog搬家须知
我的博客即将入驻“云栖社区”,诚邀技术同仁一同入驻. 地址:这里. 不过这里也是会同步更新的
- [HNOI2004]树的计数 BZOJ 1211 prufer序列
题目描述 输入输出格式 输入格式: 输入文件第一行是一个正整数n,表示树有n个结点.第二行有n个数,第i个数表示di,即树的第i个结点的度数.其中1<=n<=150,输入数据保证满足条件的 ...
- angularJs路由的使用
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- 16. js 判断变量类型,包括ES6 新类型Symbol
相信大家在开发中遇到需要判断变量类型的问题,js变量按存储类型可分为值类型和引用类型,值类型包括Undefined.String.Number.Boolean,引用类型包括object.Array.F ...
- npm i -S -D -g 区别
npm install 本身就有一个别名 npm i npm i module_name -S 即 npm install module_name --save 写入depende ...
- Django - Xadmin 组件(二)
Django 自带的 admin 组件可以自定义配置,本文实现 Xadmin 对自定义显示数据列 (list_display) 的配置. 构建表单数据 模板层 从视图函数传来的数据变量是双层列表,第一 ...
- vue项目用webpack打包后跨域问题
在app.js的最开始加上 app.all('*', (req, res, next) => { res.header("Access-Control-Allow-Origin&quo ...
- 毕业设计 python opencv实现车牌识别 码云地址
码云地址:https://gitee.com/yinghualuowu/Python_VLPR 删除了冗余代码,可以更加便于运行.其实是为了那些进不去github准备的~
- HDU - 6188
用vis表贪心异常方便 #include<bits/stdc++.h> #define rep(i,j,k) for(register int i=j;i<=k;i++) #defi ...