阿里巴巴 Java 开发手册
Alibaba-Java-Coding-Guidelines
中文版,英文版,谷歌翻译版,感觉英语言简意赅啊
序言Preface
《阿里巴巴 Java 开发手册》是阿里巴巴集团技术团队的集体智慧结晶和经验总结, 经历了多次大规模一线实战的检验及不断完善, 系统化地整理成册, 回馈给广大开发者。
We are pleased to present Alibaba Java Coding Guidelines, which consolidates the best programming practices from Alibaba Group’s technical teams.
我们很高兴推出阿里巴巴Java编码指南,该指南融合了阿里巴巴集团技术团队的最佳编程实践。
现代软件行业的高速发展对开发者的综合素质要求越来越高, 因为不仅是编程知识点,其它维度的知识点也会影响到软件的最终交付质量。
A vast number of Java programming teams impose demanding requirements on code quality across projects as we encourage reuse and better understanding of each other’s programs.
大量的Java编程团队对各个项目的代码质量提出了苛刻的要求,因为我们鼓励重用并更好地了解彼此的程序。
比如: 数据库的表结构和索引设计缺陷可能带来软件上的架构缺陷或性能风险; 工程结构混乱导致后续维
护艰难;没有鉴权的漏洞代码易被黑客攻击等等。
We have seen many programming problems in the past. For example, defective database table structures and index designs may cause software architecture flaws and performance risks. As another example, confusing code structures make it difficult to maintain.
过去我们已经看到很多编程问题。 例如,有缺陷的数据库表结构和索引设计可能会导致软件体系结构缺陷和性能风险。 作为另一个例子,混乱的代码结构使得难以维护。
Furthermore, vulnerable code without authentication is prone to hackers’ attacks. To address those kinds of problems, we developed this document for Java developers in Alibaba.
此外,没有身份验证的易受攻击的代码很容易受到黑客的攻击。 为了解决这些问题,我们为阿里巴巴的Java开发人员开发了这个文档。
所以本手册以 Java 开发者为中心视角,划分为编程规约、异常日志、 单元测试、 安全规约、 MySQL 数据库、 工程结构、 设计规约七个维度,再根据内容特征,细分成若干二级子目录。
根据约束力强弱及故障敏感性,规约依次分为强制、推荐、参考三大类。
This document consists of five parts: Programming Specification, Exception and Logs, MySQL Specification, Project Specification and Security Specification. Based on the severity of the concerns, each specification is classified into three levels: Mandatory, Recommended and Reference.
本文档由五部分组成:编程规范,异常和日志,MySQL规范,项目规范和安全规范。 根据问题的严重程度,每个规范分为三个级别:强制性,推荐性和参考。
对于规约条目的延伸信息中,“说明” 对规约做了适当扩展和解释; “正例” 提倡什么样的编码和实现方式; “反例”
说明需要提防的雷区, 以及真实的错误案例
Further clarification is expressed in:
(1) “Description”, which explains the content;
(2) “Positive examples”, which describe recommended coding and implementation approaches;
(3) “Counter examples”, which describe precautions and actual error cases.
进一步的澄清表述如下:
(1)“说明”,说明内容;
(2)“正面例子”,其中描述了推荐的编码和实施方法;
(3)“反例”,描述注意事项和实际错误情况。
本手册的旨在码出高效, 码出质量。 现代软件架构的复杂性需要协同开发完成,如何高效地协同呢? 无规矩不成方圆,无规范难以协同, 比如, 制订交通法规表面上是要限制行车权, 实际上是保障公众的人身安全, 试想如果没有限速,没有红绿灯,谁还敢上路行驶。对软件来说,适当的规范和标准绝不是消灭代码内容的创造性、优雅性,而是限制过度个性化,以一种普遍认可的统一方式一起做事,提升协作效率,降低沟通成本。 代码的字里行间流淌的是软件系统的血液, 质量的提升是尽可能少踩坑,杜绝踩重复的坑, 切实提升系统稳定性, 码出质量。
The main purpose of this document is to help developers improve code quality.
本文档的主要目的是帮助开发人员提高代码质量。
As a result, developers can minimize potential and repetitive code errors.
因此,开发人员可以最大限度地减少潜在的重复性代码错误。
In addition, specification is essential to modern software architectures, which enable effective collaborations.
此外,规范对于现代软件体系结构至关重要,因为它们实现了有效的协作。
As an analogy, traffic regulations are intended to protect public safety rather than to deprive the rights of driving.
作为比喻,交通法规旨在保护公共安全,而不是剥夺驾驶权。
It is easy to imagine the chaos of traffic without speed limits and traffic lights.
很容易想象没有速度限制和交通灯的交通混乱。
Instead of destroying the creativity and elegance of program, the purpose of developing appropriate specification and standards of software is to improve the efficiency of collaboration by limiting excessive personalization.
与其破坏程序的创造性和优雅性,制定适当的软件规范和标准的目的是通过限制过度的个性化来提高协作效率。
考虑到可以零距离地与众多开发同学进行互动,决定未来在线维护《手册》内容,此 1.4.0 的 PDF 版本, 是最为详尽的版本, 新增设计规约大章节, 并增加若干条目; 我们已经在 2017 杭州云栖大会上发布了阿里巴巴 Java 开发规约插件(点此下载), 阿里云效(一站式企业协同研发云) 也集成了代码规约扫描引擎。 最后, 《码出高效——阿里巴巴 Java 开发手册详解》 即将出版,敬请关注。
We will continue to collect feedback from the community to improve Alibaba Java Coding Guidelines.
我们将继续收集社区的反馈意见,以改进阿里巴巴Java编码指南。