开发同学在团队协作过程中都踩过不少坑,其中不同的编码风格是很大的一种原因。
一个团队中,如果大家都不按照约定来编码,那么最终项目维护起来将会非常痛苦。你看别人的代码想摔鼠标,也许别人看你的代码也有同样的感觉,看着那随心所欲的变量名称、没有注释且异常复杂的逻辑,团队协作的过程就是一种煎熬。
所谓无规矩不成方圆,无规范不能协作,团队遵循同一套规范,可以大大降低协同成本,提升开发效率。在阿里巴巴内部,开发同学有一套共同遵守的规约,对外公开版本就是《阿里巴巴Java开发手册》,这是阿里技术团队的集体智慧结晶和经验总结,经历了多次大规模一线实战的检验及不断的完善,最终系统化地整理成册,给到广大开发者。
阿里巴巴也推出了Eclipse、IDEA插件,可以帮助开发者快速应用编码规范。
**《阿里巴巴Java开发手册》在线学习&IDE插件下载:https://edu.aliyun.com/course/417
编码规范认证考试:https://edu.aliyun.com/certification/cldt02**
上面的认证考试主要用于检测你对规范掌握程度如何,目前已有将近6000人次参与考试,不过只有不到1/4的开发者才能最终获得认证,如果你来考,你能考多少分呢?
随机选5道题感受一下(认证考试需要考50道题):
1.关于使用explain对数据库性能进行优化分析,下列哪些说法符合《阿里巴巴Java开发手册》:
- A. SQL性能优化的目标:至少要达到 range 级别,要求是ref级别,如果可以是consts最好。
- B. index级别走的是扫描索引,所以速度会比ref快。
- C. range级别是指对表进行范围索引。
- D. ref级别是指使用主键或者唯一索引。
2.关于类和方法,下列哪些符合《阿里巴巴Java开发手册》:
- A. 任何类、方法、严控访问范围。因为过宽泛的访问范围,不利于模块解耦。
- B. 对外暴露的接口签名,原则上不允许修改,宁可新增,避免对依赖端产生影响。
- C. 如果新增一个功能完全相同的新接口,过时接口必须加@deprecated注释。
- D. 所有过时的类与方法不得使用。
3.关于数据库索引的命名,下列哪些说法符合《阿里巴巴Java开发手册》:
- A. 主键索引(primary key),字段类型为unsigned bigint、单表时推荐自增、步长为1。
- B. 主键索引(primary key),字段类型为unsigned bigint、单表时推荐自增、步长为2。
- C. 唯一索引(unique key),命名规则为uk_字段名(如果多个字段继续下划线)。
- D. 普通索引(normal index),标记成idx_字段名(如果多个继续下划线)。
4.使用CountDownLatch进行异步转同步操作时,下列哪些说法是正确的:
- A. 每个线程退出前必须调用countDown()方法。
- B. 线程执行代码注意catch异常,确保 countDown()方法可以被执行。
- C. 子线程抛出异常堆栈,直接就可以在主线程catch到。
- D. 主线程必须在启动其他线程后调用await()方法,这样主线程的操作就会在这个方法上阻塞,直到其他线程完成各自的任务。
5.根据《阿里巴巴Java开发手册》,数据库的表设计允许适当冗余,以提升SQL查询的性能,避免表的关联查询,下列哪些字段不允许冗余:
- A. text类型的字段。
- B. 基本固定不变的类目名称。
- C. varchar(2500)的字段。
- D. 需要频繁修改的字段。