### Java开发规范详解 #### 一、引言 在当今高度复杂的软件开发环境中,团队协作变得尤为重要。良好的编码规范不仅能提高开发效率,还能确保代码质量和维护性。阿里巴巴Java开发手册是一份重要的指南,旨在帮助开发者编写高质量的Java代码。这份手册不仅强调了代码的规范性和一致性,还特别关注于细节,确保开发者能够遵循最佳实践。 #### 二、命名规范 **1. 命名风格** - **【强制】** 代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束。 - **反例**:`_name`, `__name`, `$Object`, `name_`, `name$`, `Object$` - **说明**:这样的命名方式不符合Java的命名习惯,可能导致编译器错误或其他不可预见的问题。 - **【强制】** 代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。 - **说明**:这有助于保持代码的国际通用性,方便不同语言背景的开发者理解和维护代码。 - **正例**:使用`alibaba`、`taobao`、`youku`、`hangzhou`等国际通用的名称。 - **反例**:`DaZhePromotion[打折]`、`getPingfenByName()[评分]`、`int某变量=3` - **【强制】** 类名使用UpperCamelCase风格,必须遵从驼峰形式,但以下情形例外:DO/BO/DTO/VO/AO - **正例**:`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,一定要检查它的get/set方法要以get/set开头,否则部分框架解析会引起序列化错误。 - **正例**:属性为`Boolean isDelete`,生成的方法为`getIsDelete()`/`setIsDelete()` - **【强制】** 包名统一使用小写,点分隔符之间有且仅有一个自然语义的英语单词。包名统一使用单数形式,但是类名如果有复数含义,类名可以使用复数形式。 - **正例**:应用工具类包名为`com.alibaba.open.util`、类名为`MessageUtils` - **【强制】** 杜绝完全不规范的缩写,避免望文不知义。 - **反例**:`AbstractClass`“缩写”命名成`AbsClass`;`condition`“缩写”命名成`condi` - **【推荐】** 为了达到代码自解释的目标,任何自定义编程元素在命名时,使用尽量完整的单词组合来表达其意。 - **正例**:从远程仓库拉取代码的类命名为`PullCodeFromRemoteRepository` - **【推荐】** 如果模块、接口、类、方法使用了设计模式,在命名时体现出具体模式。 - **正例**:`OrderFactory`, `LoginProxy`, `ResourceObserver` #### 三、接口与实现类命名规则 **2. 接口与实现类的命名** - **【强制】** 对于服务接口和其实现类,有两种不同的命名策略: - 1) 服务接口通常使用`Service`后缀,而实现类则使用`ServiceImpl`后缀。 - **正例**:`UserService`接口,`UserServiceImpl`实现类。 - 2) 另一种命名方式是在接口和实现类之间添加一个共同的前缀或后缀,以表示它们之间的关系。 - **正例**:`AccountManager`接口,`AccountManagerImpl`实现类。 以上规范涵盖了Java开发中命名的基本要求,从这些基本的规范入手,可以帮助开发者构建更加健壮、易读且易于维护的代码库。遵循这些规范,不仅有助于提高个人编程能力,还能促进整个团队的协作和发展。
剩余38页未读,继续阅读
- 粉丝: 35
- 资源: 11
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于springboot的结合疫情情况的婚恋系统.zip
- 基于springboot的就业信息管理系统--论文.zip
- 直连设备(单片机)端token自动计算(micropython)
- Java AOP 用户请求拦截token校验实践
- 基于springboot的篮球论坛系统--论文.zip
- 基于springboot的篮球竞赛预约平台--论文.zip
- 基于springboot的乐校园二手书交易管理系统--论文.zip
- Python课程大作业-基于深度学习的垃圾分类系统(源码+部署指南+报告ppt+全部文档).zip
- 基于springboot的桥牌计分系统.zip
- 基于Springboot的漫画网站--论文.zip
- H3C H3CIE-RS+ Lab实验备考.zip
- 基于springboot的企业客户信息反馈平台--论文.zip
- 基于springboot的沁园健身房预约管理系统.zip
- 基于springboot的人事管理系统--论文.zip
- 基于springboot的社区疫情防控平台.zip
- 基于三有源桥的模型预测控制仿真,可以独立控制输出侧两个端口的电压或者电流,动态响应快,也可以扩展至四有源桥电路