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

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. luoguP3224 [HNOI2012]永无乡

    https://www.luogu.org/problemnew/show/P3224 考虑对每个岛维护一颗平衡树,用并查集维护连通性,启发式合并即可 这东西其实是一个大暴力,每次把节点少的平衡树合并 ...

  2. centos7用docker安装kafka

    参考之前的文章安装zookeeper集群  https://www.cnblogs.com/xiaohanlin/p/10124674.html 如果是测试环境也可以简单安装单节点的zookeeper ...

  3. Selenium3+python异常后截图(screenshot)

    前言 在执行用例过程中由于是无人值守的,用例运行报错的时候,我们希望能对当前屏幕截图,留下证据. 在写用例的时候,最后一步是断言,可以把截图的动作放在断言这里,那么如何在断言失败后截图呢? 一.截图方 ...

  4. PHP简单实现一言 / 随机一句功能

    很多网站都喜欢在页面中加个一言,不过一般都是调用的第三方api.其实,使用万能的php能用短短的几行代码就实现该功能! 将下列代码复制并粘贴到 api.php 中保存,你的专属“一言” API 就搭建 ...

  5. EasyUI学习笔记(二)—— Layout

    一.layout页面布局 EasyUI布局容器包括东.西.南.北.中五个区域,其中中心面板是必须的,而东.西.南.北这四个面板是可选的,如果布局里面不需要东.西.南.北这四个面板,那么可以把相应的di ...

  6. Android 系统特有的类介绍及使用

    1.Content类 在应用程序中Context的具体实现子类就是:Activity,Service,Application.可以把它理解成存储东西的仓库. 常用的上下文一般是类名.class或类名. ...

  7. vue 子页面,向父页面 传值...

    子组件 通过 事件 向父组件传值..... 父组件 方法: methods: { appendData: function (list) { console.log(list); for (var i ...

  8. P2257 YY的GCD (莫比乌斯反演)

    [题目链接] https://www.luogu.org/problemnew/show/P2257 // luogu-judger-enable-o2 /* -------------------- ...

  9. POJ_3126 Prime Path 【BFS+素数打表】

    一.题目 http://poj.org/problem?id=3126 二.分析 该题主要是要让我们找到一个$4$位素数到另一个$4$位素数的最少的变换次数,且要求保证每一次变换都满足 1.下一个数必 ...

  10. edX MITx: 6.00.1x Introduction to Computer Science and Programming Using Python 课程 Week 1: Python Basics Problem Set 1 Problem 3

    Assume s is a string of lower case characters. Write a program that prints the longest substring of  ...