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开发者的 ...
随机推荐
- LNMP之Php的安装配置
此配置的编译参数是: ./configure --prefix=/opt/php7.2.3 --with-openssl --with-zlib --with-curl --enable-ftp -- ...
- 在libuv中使用openssl建立ssl连接
在libuv中使用openssl建立ssl连接 @(blogs) 使用openssl进行加密通信时,通常是先建立socket连接,然后使用SSL_XXX系列函数在普通socket之上建立安全连接,然后 ...
- 数学【洛谷P4071】 [SDOI2016]排列计数
P4071 [SDOI2016]排列计数 求有多少种长度为 n 的序列 A,满足以下条件: 1 ~ n 这 n 个数在序列中各出现了一次 若第 i 个数 A[i] 的值为 i,则称 i 是稳定的.序列 ...
- 190225RabbitMQ
一.简单的RabbitMQ示例 生产者 # Author:Li Dongfei import pika connection = pika.BlockingConnection( pika.Conne ...
- ubuntu下的pycharm4中文路径乱码
修改字体: 设置(settings)->外观与行为(appearance & behavior) -> 外观(appearance) ->我选择的主题是Darcula 但其字 ...
- Optimizing and caching browser bundles...
扎心了,老铁!!! 他妈的,弄了几天都是卡在这里!!上网查了一下.说是我的内存不够,好吧.我慢慢等,然而让我等了好几天都没什么反应..两天了,一直卡在这里.今天在虚拟机也是发狠了. 我直接把虚拟机的内 ...
- js中自己实现bind函数的方式
最近由于工作比较忙,好久都没时间静下心来研究一些东西了.今天在研究 call 和 apply 的区别的时候,看到 github 上面的一篇文章,看完以后,感觉启发很大. 文章链接为 https://g ...
- Avito Cool Challenge 2018:D. Maximum Distance (最小生成树)
题目链接 题意 : 给出一个联通图和一些特殊的点,现在定义cost(u,v)为一条从u到v的路径上面边权的最大值 , 定义dis(u,v) 为从u到v 路径上面cost 的最小值 然后求所有特殊点到其 ...
- 兼容 火狐、IE 的中a标签用 javascript:void(0); 依然执行跳转的问题
<a onclick="return false;" href="javascript: void(0)" target="_blank&quo ...
- es6 封装一个基础的表单验证
1, 需求分析 设计一个通用的表单验证,如果后期表单中添加了更多的需求,不需要更改之前的代码逻辑,最好不要改之前的代码,需要加什么直接加就好了. 2,代码分析 此表单验证最好返回一个函数,在api设计 ...