软件开发是团队协作,多人开发很容易造成协调问题,因此,做一些必要的开发规范,有助于帮助新员工成长,也有助于提高开发效率,防止各种问题影响开发进度。

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开发团队管理细则的更多相关文章

  1. 用Java开发一个本地服务管理软件

    一.最终界面先贴上最终效果图,图1为初始化界面,图二为点击启动/停止之后的中间过渡状态,图三为启动成功后弹出的提示框 把动态gif图片嵌入到jpg背景图中?用Adobe ImageReady即可办到 ...

  2. Java开发笔记(八十四)文件与目录的管理

    程序除了处理内存中的数据结构,还要操作磁盘上的各类文件,这里的磁盘是个统称,泛指可以持久保留数据的存储介质,包括但不限于:插在软驱中的软盘.固定在机箱中的硬盘.插在光驱中的光盘.插在USB接口上的U盘 ...

  3. atitit.研发管理--标准化流程总结---java开发环境与项目部署环境的搭建工具包总结

    atitit.研发管理--标准化流程总结---java开发环境与项目部署环境的搭建工具包总结 1. ide系列(只开发环境需要,但部署环境也做好放上,很有用) 1 2. web服务器+sdk+网站程序 ...

  4. 阿里巴巴天猫超市团队招聘java开发工程师

    大家好,发个招聘信息:我是阿里巴巴集天猫超市开发团队的同学,我们部门目前在杭州招人,P6岗位,要求至少本科,熟悉java,spring等java开发技术,最好有互联网企业开发经验,感兴趣的可以通过我直 ...

  5. Java开发笔记(一百四十七)通过JDBC管理数据库

    前面介绍了如何通过JDBC获取数据库连接,可是Connection对象不能直接执行SQL语句,需要引入Statement报告对象才能操作SQL.Statement对象由Connection的creat ...

  6. 高性能JAVA开发之内存管理

    这几天在找一个程序的bug,主要是java虚拟机内存溢出的问题,调研了一些java内存管理的资料,现整理如下: 一.JVM中的对象生命周期 对象的生命周期一般分为7个阶段:创建阶段,应用阶段,不可视阶 ...

  7. 使用Java开发高性能网站需要关注的那些事儿

    无论大型门户网站还是中小型垂直类型网站都会对稳定性.性能和可伸缩性有所追求.大型网站的技术经验分享值得我们去学习和借用,但落实到更具体的实践上并不是对所有网站可以适用,其他语言开发的网站我还不敢多说, ...

  8. Java开发环境的配置与Hello World

    一.Java开发需要做的准备 Java程序的执行过程是首先由Java编译器将以.java为后缀的Java源文件编译成.class字节码文件.然后字节码文件便可以由JVM虚拟机进行加载并执行. 在初学J ...

  9. 答CsdnBlogger问-关于职业发展和团队管理问题

    本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处! 问1:关于职业发展以及团队管理?(正能同學_) 请问在二线城市的小公司里,普通Android开发者的 ...

随机推荐

  1. 性能测试常用sql语句

    做了一段时间的性能测试,把自己在性能测试过程中,使用到的Oracle中用到的sql语句整理一番,做个备忘: (1)多个字段以某种格式拼接 Oracle方式:"||"字符串拼接符; ...

  2. 洛谷P3236 [HNOI2014]画框(最小乘积KM)

    题面 传送门 题解 我似乎连\(KM\)都不会打啊→_→ 和bzoj2395是一样的,只不过把最小生成树换成\(KM\)了.因为\(KM\)跑的是最大权值所以取个反就行了 //minamoto #in ...

  3. python 获得毫秒级时间戳

    import time import datetime t = time.time() print (t) #原始时间数据 print (int(t)) #秒级时间戳 print (int(round ...

  4. selenium定位不到元素

    selenium定位不到元素时,网上大部分查到都是iFrame的切换问题,然后是多窗口.句柄的处理问题, 在初学是遇到定位不到元素,一直在找上面的问题,发现都不是上面的问题, 后来才发现是页面刷新的问 ...

  5. Largest Submatrix of All 1’s(思维+单调栈)

    Given a m-by-n (0,1)-matrix, of all its submatrices of all 1's which is the largest? By largest we m ...

  6. CodeForces - 1110C-Meaningless Operation(打表找规律)

    Can the greatest common divisor and bitwise operations have anything in common? It is time to answer ...

  7. 不要重复发明轮子-C++STL

    闫常友 著. 中国铁道出版社. 2013/5 标准的C++模板库,是算法和其他一些标准组件的集合. . 1.类模板简介 2.c++中的字符串 3.容器 4.c++中的算法 5.迭代器 6.STL 数值 ...

  8. hdu-1702-栈和队列

    ACboy needs your help again! Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K ( ...

  9. 【记录】adb连不上手机

    1.\用户\.android文件夹下新建adb_usb.ini,内容为手机的VID值,如0x9BB5 2.重启adb adb kill-server adb start-server adb devi ...

  10. PIE SDK神经网络聚类

    1.算法功能简介 神经网络是模仿人脑神经系统的组成方式与思维过程而构成的信息处理系统,具有非线性.自学性.容错性.联想记忆和可以训练性等特点.在神经网络中,知识和信息的传递是由神经元的相互连接来实现的 ...