阿里巴巴Java开发规约扫描插件-Alibaba Java Coding Guidelines 在idea上安装使用教程
经过247天的持续研发,阿里巴巴于10月14日在杭州云栖大会上,正式发布众所期待的《阿里巴巴Java开发规约》扫描插件!该插件由阿里巴巴P3C项目组研发。P3C是世界知名的反潜机,专门对付水下潜水艇,寓意是扫描出所有潜在的代码隐患。这个项目组是阿里巴巴开发爱好者自发组织形成的虚拟项目组,把《阿里巴巴Java开发规约》强制条目转化成自动化插件,并实现部分的自动编程。 阿里技术公众号于今....

《Effective Java》让我们了解到Java的优势,再配置《阿里巴巴Java规约》,做有职业素养的程序员~
最近看了一本工具书,是 Effective Java 中文版(第2版)我用时两个多星期,分别在早起、晚上和周末的时候把这本书细细过了一遍。觉得很有意思。在我的感觉来看,这个是Java语言的《原则》的书。同样的这就说明我看的工具书很少哈哈哈。这本书不适合入门的时候看,而是使用了Java半年以上、较为熟悉Java生态了之后,去翻看比较合适。我觉得里面提到的很多原则在编程时都应该尽可能遵守。很多Jav....

阿里Java编程规约【一】命名风格
1. 【强制】所有编程相关的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束。反例:_name / __name / $Object / name_ / name$ / Object$2. 【强制】所有编程相关的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。说明:正确的英文拼写和语法可以让阅读者易于理解,避免歧义。注意,即使纯拼音命名方式也要避免采用。正例:ali ....
阿里Java编程规约【三】代码格式
1. 【强制】如果大括号内为空,简洁地写成{}即可,大括号中间无需换行和空格;如果是非空代码块,则:1)左大括号前不换行。2)左大括号后换行。3)右大括号前换行。4)右大括号后还有 else 等代码则不换行;表示终止的右大括号后必须换行。2. 【强制】左小括号和右边相邻字符之间不需要空格;右小括号和左边相邻字符之间也不需要空格;而左大 括号前需要加空格。详见第 5 条下方正例提示。反例:if(空....
阿里Java编程规约【四】OOP规约
1. 【强制】避免通过一个类的对象引用访问此类的静态变量或静态方法,无谓增加编译器解析成本,直接用 类名来访问即可。2. 【强制】所有的覆写方法,必须加 @Override 注解。说明:getObject() 与 get0bject() 的问题。一个是字母的 O,一个是数字的 0,加 @Override 可以准确判断是否覆盖 成功。另外,如果在抽象类中对方法签名进行修改,其实现类会马上编译报错。....
阿里Java编程规约【六】 集合处理
1. 【强制】关于 hashCode 和 equals 的处理,遵循如下规则:只要覆写 equals,就必须覆写 hashCode。因为 Set 存储的是不重复的对象,依据 hashCode 和 equals 进行判断,所以 Set 存储的对象必须覆写这两种方法。如果自定义对象作为 Map 的键,那么必须覆写 hashCode 和 equals。说明:String 因为覆写了 hashCode ....

阿里Java编程规约【七】 并发处理
1. 【强制】获取单例对象需要保证线程安全,其中的方法也要保证线程安全。说明:资源驱动类、工具类、单例工厂类都需要注意。2. 【强制】创建线程或线程池时请指定有意义的线程名称,方便出错时回溯。正例:自定义线程工厂,并且根据外部特征进行分组,比如,来自同一机房的调用,把机房编号赋值给whatFeatureOfGroup:public class UserThreadFactory implemen....
阿里Java编程规约【八】 控制语句
1.【强制】在一个 switch 块内,每个 case 要么通过 continue / break / return 等来终止,要么注释说明程序将继续执行到哪一个 case 为止;在一个 switch 块内,都必须包含一个 default 语句并且放在最后,即使它什么代码也没有。说明:注意 break 是退出 switch 语句块,而 return 是退出方法体。2.【强制】当 switch 括....
阿里Java编程规约【九】 注释规约
1.【强制】类、类属性、类方法的注释必须使用 Javadoc 规范,使用 /** 内容 */ 格式,不得使用 // xxx 方式。说明:在 IDE 编辑窗口中,Javadoc 方式会提示相关注释,生成 Javadoc 可以正确输出相应注释;在 IDE 中,工程调用方法时,不进入方法即可悬浮提示方法、参数、返回值的意义,提高阅读效率。2.【强制】所有的抽象方法(包括接口中的方法)必须要用 Java....
阿里Java编程规约【二】常量定义
1. 【强制】不允许任何魔法值(即未经预先定义的常量)直接出现在代码中。反例:// 开发者 A 定义了缓存的 key。 String key = "Id#taobao_" + tradeId; cache.put(key, value); // 开发者 B 使用缓存时直接复制少了下划线,即 key 是"Id#taobao" + tradeId,导致出现故障。 String key = "Id#t....
本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。
Java开发者
Java开发者成长课堂,课程资料学习,实战案例解析,Java工程师必备词汇等你来~
+关注