阿里巴巴Java编程规范
茅坤宝骏氹
语言:Java、C/C++、C#、Python、Linux Shell。
框架:Spring、Spring MVC、Spring Boot、Spring Cloud、Hibernate、Mybatis、Freemarker、Velocity。
前端:HTML5、CSS3、JavaScript、Bootstrap、JQuery、Vue、React。
数据库:oracle、mysql、MongoDB、HBase。
缓存:Memcache、Redis。
消息队列:kafka。
大数据:Hadoop、Hive、Sqoop、Flume、Spark、Strom、OpenTSDB、Druid。
展开
-
阿里巴巴对Java编程【集合处理】的规约
转载自 阿里巴巴对Java编程【集合处理】的规约集合处理1. 【强制】关于 hashCode 和 equals 的处理,遵循如下规则:1) 只要重写 equals ,就必须重写 hashCode 。2) 因为 Set 存储的是不重复的对象,依据 hashCode 和 equals 进行判断,所以 Set 存储的对象必须重写这两个方法。3) 如果自定义对象做为 Map 的键,那么必须重写 hashC...转载 2018-04-28 09:51:13 · 336 阅读 · 0 评论 -
阿里巴巴对Java编程【OOP规约】的规约
转载自 阿里巴巴对Java编程【OOP规约】的规约OOP规约1. 【强制】避免通过一个类的对象引用访问此类的静态变量或静态方法,无谓增加编译器解析成本,直接用类名来访问即可。2. 【强制】所有的覆写方法,必须加@ Override 注解。说明: getObject() 与 get 0 bject() 的问题。一个是字母的 O ,一个是数字的 0,加@ Override可以准确判断是否覆盖成功。另外...转载 2018-04-27 14:28:18 · 297 阅读 · 0 评论 -
阿里巴巴对Java编程【常量定义】的规约
转载自 阿里巴巴对Java编程【常量定义】的规约常量定义1. 【强制】不允许任何魔法值 ( 即未经定义的常量 ) 直接出现在代码中。反例: String key = " Id # taobao _" + tradeId;cache . put(key , value);2. 【强制】 long 或者 Long 初始赋值时,使用大写的 L ,不能是小写的 l ,小写容易跟数字 1 混淆,造成误...转载 2018-04-27 14:27:51 · 303 阅读 · 0 评论 -
阿里巴巴对Java编程【代码格式】的规约
转载自 阿里巴巴对Java编程【代码格式】的规约代码格式1. 【强制】大括号的使用约定。如果是大括号内为空,则简洁地写成{}即可,不需要换行 ; 如果是非空代码块则:1 ) 左大括号前不换行。2 ) 左大括号后换行。3 ) 右大括号前换行。4 ) 右大括号后还有 else 等代码则不换行 ; 表示终止的右大括号后必须换行。2. 【强制】 左小括号和字符之间不出现空格 ; 同样,右小括号和字符之间也...转载 2018-04-27 14:27:20 · 307 阅读 · 0 评论 -
阿里巴巴对Java编程【命名风格】的规约
转载自 阿里巴巴对Java编程【命名风格】的规约命名风格1. 【强制】代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束。反例: _name / __name / $Object / name_ / name$ / Object$2. 【强制】代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。说明:正确的英文拼写和语法可以让阅读者易于理解,避免歧义。注意,即...转载 2018-04-27 14:27:11 · 260 阅读 · 0 评论 -
阿里巴巴对Java编程【应用结构】的规约
转载自 阿里巴巴对Java编程【应用结构】的规约应用分层1. 【推荐】图中默认上层依赖于下层,箭头关系表示可直接依赖,如:开放接口层可以依赖于Web 层,也可以直接依赖于 Service 层,依此类推: 开放接口层:可直接封装 Service 方法暴露成 RPC 接口 ; 通过 Web 封装成 http 接口 ;进行网关安全控制、流量控制等。 终端显示层:各个端的模板渲染并执行显示的层。...转载 2018-04-27 14:26:44 · 289 阅读 · 0 评论 -
阿里巴巴对Java编程【Mysql】的规约
转载自 阿里巴巴对Java编程【Mysql】的规约建表规约1. 【强制】表达是与否概念的字段,必须使用 is _ xxx 的方式命名,数据类型是 unsigned tinyint( 1 表示是,0 表示否 ) 。说明:任何字段如果为非负数,必须是 unsigned 。正例:表达逻辑删除的字段名 is_deleted ,1 表示删除,0 表示未删除。2. 【强制】表名、字段名必须使用小写字母或数字 ...转载 2018-04-27 14:26:34 · 238 阅读 · 0 评论 -
阿里巴巴对Java编程【安全规约】的规约
转载自 阿里巴巴对Java编程【安全规约】的规约安全规约1. 【强制】隶属于用户个人的页面或者功能必须进行权限控制校验。说明:防止没有做水平权限校验就可随意访问、修改、删除别人的数据,比如查看他人的私信内容、修改他人的订单。2. 【强制】用户敏感数据禁止直接展示,必须对展示数据进行脱敏。说明:查看个人手机号码会显示成:158****9119,隐藏中间 4 位,防止隐私泄露。3. 【强制】用户输入的...转载 2018-04-27 14:26:22 · 325 阅读 · 0 评论 -
阿里巴巴对Java编程【单元测试】的规约
转载自 阿里巴巴对Java编程【单元测试】的规约单元测试1. 【强制】好的单元测试必须遵守 AIR 原则。说明:单元测试在线上运行时,感觉像空气 (AIR) 一样并不存在,但在测试质量的保障上,却是非常关键的。好的单元测试宏观上来说,具有自动化、独立性、可重复执行的特点。 A: Automatic (自动化) I: Independent (独立性) R: Repeatable (可重...转载 2018-04-27 14:26:10 · 435 阅读 · 0 评论 -
阿里巴巴对Java编程【异常处理】的规约
转载自 阿里巴巴对Java编程【异常处理】的规约异常处理1. 【强制】 Java 类库中定义的一类 RuntimeException 可以通过预先检查进行规避,而不应该通过 catch 来处理,比如: IndexOutOfBoundsException , NullPointerException 等等。说明:无法通过预检查的异常除外,如在解析一个外部传来的字符串形式数字时,通过 catchNum...转载 2018-04-27 14:25:55 · 842 阅读 · 0 评论 -
阿里巴巴对Java编程【注释规约】的规约
转载自 阿里巴巴对Java编程【注释规约】的规约注释规约1. 【强制】类、类属性、类方法的注释必须使用 Javadoc 规范,使用/**内容*/格式,不得使用// xxx 方式。说明:在 IDE 编辑窗口中, Javadoc 方式会提示相关注释,生成 Javadoc 可以正确输出相应注释 ; 在 IDE 中,工程调用方法时,不进入方法即可悬浮提示方法、参数、返回值的意义,提高阅读效率。2. 【强...转载 2018-04-28 09:52:22 · 579 阅读 · 0 评论 -
阿里巴巴对Java编程【控制语句】的规约
转载自 阿里巴巴对Java编程【控制语句】的规约控制语句1. 【强制】在一个 switch 块内,每个 case 要么通过 break / return 等来终止,要么注释说明程序将继续执行到哪一个 case 为止 ; 在一个 switch 块内,都必须包含一个 default 语句并且放在最后,即使它什么代码也没有。 2.【强制】在 if / else / for / while / do 语句...转载 2018-04-28 09:51:54 · 188 阅读 · 0 评论 -
阿里巴巴对Java编程【并发处理】的规约
转载自 阿里巴巴对Java编程【并发处理】的规约并发处理1. 【强制】获取单例对象需要保证线程安全,其中的方法也要保证线程安全。说明:资源驱动类、工具类、单例工厂类都需要注意。2. 【强制】创建线程或线程池时请指定有意义的线程名称,方便出错时回溯。正例:public class TimerTaskThread extends Thread { public TimerTaskThread(...转载 2018-04-28 09:51:30 · 321 阅读 · 0 评论 -
阿里巴巴制定了这 16 条
转载自 阿里巴巴制定了这 16 条本文内容整理自《阿里巴巴Java开发手册 1.4.0》,获取完整版请在公众号后台回复关键字:手册。 1、【强制】存储方案和底层数据结构的设计获得评审一致通过,并沉淀成为文档。说明:有缺陷的底层数据结构容易导致系统风险上升,可扩展性下降,重构成本也会因历史数据迁移和系统平滑过渡而陡然增加,所以,存储方案和数据结构需要认真地进行设计和评审,生产环...转载 2018-10-03 11:28:44 · 234 阅读 · 0 评论