2020-12-23 , 1506 , 104 , 213
[編按: 轉載于 github.com/aliaba/p3c, 2020-08-01.]
前言
《Java开发手册》是阿里巴巴集团技术团队的集体智慧结晶和经验总结,经历了多次大规模一线实战的检验及不断完善,公开到业界后,众多社区开发者踊跃参与,共同打磨完善,系统化地整理成册,当前的版本是嵩山版。
现代软件行业的高速发展对开发者的综合素质要求越来越高,因为不仅是编程知识点,其它维度的知识点也会影响到软件的最终交付质量。
比如:五花八门的错误码人为地增加排查问题的难度;
数据库的表结构和索引设计缺陷带来的系统架构缺陷或性能风险;
工程结构混乱导致后续项目维护艰难;
没有鉴权的漏洞代码易被黑客攻击等等。
所以本手册以Java开发者为中心视角,划分为编程规约、异常日志、单元测试、安全规约、MySQL数据库、工程结构、设计规约七个维度,再根据内容特征,细分成若干二级子目录。
另外,依据约束力强弱及故障敏感性,规约依次分为【强制】、【推荐】、【参考】三大类。在延伸信息中,“说明”对规约做了适当扩展和解释;“正例”提倡什么样的编码和实现方式;“反例”说明需要提防的雷区,以及真实的错误案例。
手册的愿景是码出高效,码出质量。现代软件架构的复杂性需要协同开发完成,如何高效地协同呢?无规矩不成方圆,无规范难以协同,比如,制订交通法规表面上是要限制行车权,实际上是保障公众的人身安全,试想如果没有限速,没有红绿灯,谁还敢上路行驶?
对软件来说,适当的规范和标准绝不是消灭代码内容的创造性、优雅性,而是限制过度个性化,以一种普遍认可的统一方式一起做事,提升协作效率,降低沟通成本。
代码的字里行间流淌的是软件系统的血液,质量的提升是尽可能少踩坑,杜绝踩重复的坑,切实提升系统稳定性,码出质量。
我们已经在2017杭州云栖大会上发布了配套的Java开发规约IDE插件,下载量达到162万人次,阿里云效也集成了代码规约扫描引擎。
次年,发布36万字的配套详解图书《码出高效》,本书秉持“图胜于表,表胜于言”的理念,深入浅出地将计算机基础、面向对象思想、JVM探源、数据结构与集合、并发与多线程、单元测试等知识客观、立体地呈现出来。紧扣学以致用、学以精进的目标,结合阿里巴巴实践经验和故障案例,与底层源码解析融会贯通,娓娓道来。《码出高效》和《Java开发手册》稿费所得收入均捐赠公益事情,希望用技术情怀帮助更多的人。
----
目录
一、编程规约 ................................................................................................................................................... 1
(一) 命名风格 .......................................................................................................................................... 1
(二) 常量定义 .......................................................................................................................................... 4
(三) 代码格式 .......................................................................................................................................... 5
(四) OOP规约 ........................................................................................................................................ 7
(五) 日期时间 ........................................................................................................................................11
(六) 集合处理 ........................................................................................................................................12
(七) 并发处理 ........................................................................................................................................17
(八) 控制语句 ........................................................................................................................................20
(九) 注释规约 ........................................................................................................................................24
(十) 前后端规约 ....................................................................................................................................25
(十一) 其他 .............................................................................................................................................27
二、异常日志 .................................................................................................................................................29
(一) 错误码 ............................................................................................................................................29
(二) 异常处理 ........................................................................................................................................30
UfqiLong
(三) 日志规约 ........................................................................................................................................32
三、单元测试 .................................................................................................................................................35
四、安全规约 .................................................................................................................................................37
五、MySQL数据库 .......................................................................................................................................38
(一) 建表规约 ........................................................................................................................................38
(二) 索引规约 ........................................................................................................................................39
(三) SQL语句 .......................................................................................................................................41
(四) ORM映射 .....................................................................................................................................42
六、工程结构 .................................................................................................................................................44
(一) 应用分层 ........................................................................................................................................44
(二) 二方库依赖 ....................................................................................................................................45
(三) 服务器 ............................................................................................................................................46
七、设计规约 .................................................................................................................................................48
附1:版本历史 ..............................................................................................................................................51
附2:专有名词解释 ......................................................................................................................................53
附3:错误码列表 ..........................................................................................................................................54
🔗 连载目录
🤖 智能推荐