### 阿里巴巴Java开发手册关键知识点概览 #### 一、编程规约 **1.1 命名规约** - **【强制】** **命名规则**:命名时不能以下划线`_`或美元符号`$`开始或结束。 - **反例**:_name、__name、$Object、name_、name$、Object$。 - **说明**:这类命名容易引起混淆,不符合常规的命名习惯。 - **【强制】** **禁用拼音与中文命名**:代码中应避免使用拼音或中文进行命名。 - **反例**:DaZhePromotion[打折]、getPingfenByName()[评分]、int某变量=3。 - **正例**:alibaba、taobao、youku、hangzhou等国际通用名称可接受。 - **【强制】** **类名风格**:采用UpperCamelCase风格,即首字母大写,其余单词首字母也大写的风格。 - **正例**:MarcoPolo、UserDO、XmlService、TcpUdpDeal、TaPromotion。 - **反例**:macroPolo、UserDo、XMLService、TCPUDPDeal、TAPromotion。 - **【强制】** **变量及方法命名**:使用lowerCamelCase风格,即首字母小写,其余单词首字母大写。 - **正例**:localValue、getHttpMessage()、inputUserId。 - **【强制】** **常量命名**:全大写,单词间用下划线分隔。 - **正例**:MAX_STOCK_COUNT。 - **反例**:MAX_COUNT。 - **【强制】** **特殊类命名**:抽象类以`Abstract`或`Base`开头,异常类以`Exception`结尾,测试类以被测类名称开始,以`Test`结尾。 - **【强制】** **数组定义**:使用标准数组定义方式。 - **正例**:String[] args。 - **反例**:String args[]。 - **【强制】** **POJO类布尔型变量命名**:不带`is`前缀。 - **反例**:boolean isSuccess。 - **说明**:这种方式可能引发序列化问题。 - **【强制】** **包名小写**:包名统一使用小写,每个词间只用一个单词。 - **正例**:com.alibaba.open.util、MessageUtils。 - **【强制】** **避免不规范缩写**:如`AbsClass`(代替`AbstractClass`)、`condi`(代替`condition`)。 - **【推荐】** **体现设计模式**:类名中反映所使用的具体设计模式。 - **正例**:OrderFactory、LoginProxy、ResourceObserver。 - **【推荐】** **接口方法简洁**:接口中的方法和属性不加任何修饰符,并附带有效的Javadoc注释。 - **正例**:接口方法签名:`void f()`;接口基础常量表示:`String COMPANY = "alibaba"`。 - **反例**:接口方法定义:`public abstract void f()`。 - **说明**:在JDK8中,接口允许默认实现,这种`default`方法对于所有实现类都是有价值的默认实现。 #### 二、异常日志 - **【异常处理】**:确保异常能够被妥善处理,避免程序崩溃或数据丢失。 - **【日志规约】**:日志记录需遵循统一的规范,便于维护和问题定位。 #### 三、MySQL规约 - **【建表规约】**:包括表结构设计原则、字段命名规则等。 - **【索引规约】**:合理创建索引提高查询效率。 - **【SQL规约】**:编写高效、安全的SQL语句。 - **【ORM规约】**:对象关系映射的最佳实践。 #### 四、工程规约 - **【应用分层】**:清晰地划分应用的各个层次,如表现层、业务逻辑层、数据访问层等。 - **【二方库规约】**:选择合适的第三方库并遵循一定的使用规范。 - **【服务器规约】**:服务器配置和部署相关的规范。 #### 五、安全规约 - **【数据安全】**:保护数据不被非法访问或篡改。 - **【网络安全】**:确保网络通信的安全性。 - **【代码审计】**:定期对代码进行安全审计,防止漏洞的存在。 ### 总结 阿里巴巴Java开发手册旨在规范Java开发流程,提升代码质量和项目维护性。通过详细的命名规约、编程规约、数据库规约等多方面规定,帮助开发者遵循最佳实践,构建高质量的软件系统。其中特别强调了命名的一致性和规范性,以提高代码的可读性和可维护性。同时,对于异常处理、日志记录、数据库操作等方面也提出了明确的要求,确保系统的稳定性和安全性。此外,还涉及到了应用架构的设计、第三方库的选择以及服务器部署等方面的内容,全方位覆盖了Java项目的开发流程。
- 粉丝: 2
- 资源: 9
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- com.tencent.karaoke.apk
- (1)Python注释的jupyter笔记
- js-leetcode题解之133-clone-graph.js
- js-leetcode题解之132-palindrome-partitioning-ii.js
- js-leetcode题解之131-palindrome-partitioning.js
- js-leetcode题解之129-sum-root-to-leaf-numbers.js
- js-leetcode题解之128-longest-consecutive-sequence.js
- js-leetcode题解之127-word-ladder.js
- js-leetcode题解之126-word-ladder-ii.js
- js-leetcode题解之125-valid-palindrome.js