没有合适的资源?快使用搜索试试~ 我知道了~
首页阿里巴巴Java开发手册:华山版1.5.0,提升软件质量和协同效率
《阿里巴巴开发者规范-Java开发手册华山版v1.5.0》是由阿里巴巴集团技术团队精心编撰的一份全面的Java开发者指南,它汇集了团队多年的实战经验和集体智慧。这份手册旨在提升开发者的综合素质,确保软件的质量和效率,适应现代软件行业快速发展的需求。 手册的核心内容涵盖了七大主要维度:编程规约、异常日志、单元测试、安全规约、MySQL数据库管理、工程结构组织和设计规约。每个维度下又有详细的二级子目录,如命名风格、常量定义、代码格式等,以确保代码的可读性和一致性。规约按照约束力和故障敏感性分为强制、推荐和参考三大类,提供明确的指导和最佳实践。 手册强调了规范化在协作中的重要性,认为良好的规范不仅能提升协作效率,减少沟通成本,还能避免重复踩坑,从而提升系统稳定性。为了辅助开发人员遵循这些规范,阿里巴巴在云栖大会发布了配套的Java开发规约IDE插件和集成代码规约扫描引擎,使得代码审查更加便捷。 此外,手册还深入浅出地讲解了计算机基础知识、面向对象编程、JVM原理、数据结构与集合、并发与多线程、单元测试等内容,并结合阿里巴巴的实际经验和故障案例,让读者能够将理论知识应用于实践,实现技术的精进。值得一提的是,所有书籍销售收入都用于公益事业,体现了阿里巴巴团队的技术情怀。 《码出高效》这本书是手册的详细解读,通过实例和解析,帮助开发者理解和掌握高质量编程的关键要素,旨在培养出既懂技术又注重代码质量的开发者。这是一份实用且富有深度的Java开发者指南,对于提高个人和团队的开发能力具有极高的价值。
资源详情
资源推荐
Java
开发手
册
6/44
7. 【强制】在进行类型强制转换时,右括号与强制转换值之间不需要任何空格隔开。
正例:
long first = 1000000000000L;
int second = (int)first + 2;
8. 【强制】单行字符数限制不超过 120 个,超出需要换行,换行时遵循如下原则:
1) 第二行相对第一行缩进 4 个空格,从第三行开始,不再继续缩进,参考示例。
2) 运算符与下文一起换行。
3) 方法调用的点符号与下文一起换行。
4) 方法调用中的多个参数需要换行时,在逗号后进行。
5) 在括号前不要换行,见反例。
正例:
StringBuilder sb = new StringBuilder();
// 超过 120 个字符的情况下,换行缩进 4 个空格,点号和方法名称一起换行
sb.append("Jack").append("Ma")...
.append("alibaba")...
.append("alibaba")...
.append("alibaba");
反例:
StringBuilder sb = new StringBuilder();
// 超过 120 个字符的情况下,不要在括号前换行
sb.append("Jack").append("Ma")...appen
d("alibaba");
// 参数很多的方法调用可能超过 120 个字符,不要在逗号前换行
method(args1, args2, args3, ...
, argsX);
9. 【强制】方法参数在定义和传入时,多个参数逗号后边必须加空格。
正例:下例中实参的 args1,后边必须要有一个空格。
method(args1, args2, args3);
10.【强制】IDE 的 text file encoding 设置为 UTF-8; IDE 中文件的换行符使用 Unix 格式,
不要使用 Windows 格式。
11.【推荐】单个方法的总行数不超过 80 行。
说明:除注释之外的方法签名、左右大括号、方法内代码、空行、回车及任何不可见字符的总行数不超过
80 行。
正例:代码逻辑分清红花和绿叶,个性和共性,绿叶逻辑单独出来成为额外方法,使主干代码更加清晰;
共性逻辑抽取成为共性方法,便于复用和维护。
12.【推荐】没有必要增加若干空格来使变量的赋值等号与上一行对应位置的等号对齐。
正例:
int one = 1;
long two = 2L;
float three = 3F;
StringBuilder sb = new StringBuilder();
Java
开发手
册
7/44
说明:增加 sb 这个变量,如果需要对齐,则给one、two、three 都要增加几个空格,在变量比较多的情
况下,是非常累赘的事情。
13.【推荐】不同逻辑、不同语义、不同业务的代码之间插入一个空行分隔开来以提升可读性。
说明:任何情形,没有必要插入多个空行进行隔开。
(四) OOP 规约
1. 【强制】避免通过一个类的对象引用访问此类的静态变量或静态方法,无谓增加编译器解析
成本,直接用类名来访问即可。
2. 【强制】所有的覆写方法,必须加@Override 注解。
说明:getObject()与 get0bject()的问题。一个是字母的 O,一个是数字的 0,加@Override 可以准确判
断是否覆盖成功。另外,如果在抽象类中对方法签名进行修改,其实现类会马上编译报错。
3. 【强制】相同参数类型,相同业务含义,才可以使用 Java 的可变参数,避免使用 Object。
说明:可变参数必须放置在参数列表的最后。(提倡同学们尽量不用可变参数编程)
正例:public List<User> listUsers(String type, Long... ids) {...}
4. 【强制】外部正在调用或者二方库依赖的接口,不允许修改方法签名,避免对接口调用方产
生影响。接口过时必须加@Deprecated 注解,并清晰地说明采用的新接口或者新服务是什么。
5. 【强制】不能使用过时的类或方法。
说明:java.net.URLDecoder 中的方法 decode(String encodeStr) 这个方法已经过时,应该使用双参数
decode(String source, String encode)。接口提供方既然明确是过时接口,那么有义务同时提供新的接
口;作为调用方来说,有义务去考证过时方法的新实现是什么。
6. 【强制】Object 的 equals 方法容易抛空指针异常,应使用常量或确定有值的对象来调用
equals。
正例:"test".equals(object);
反例:object.equals("test");
说明:推荐使用 java.util.Objects#equals(JDK7 引入的工具类)。
7. 【强制】所有整型包装类对象之间值的比较,全部使用 equals 方法比较。
说明:对于 Integer var = ? 在-128 至 127 范围内的赋值,Integer 对象是在 IntegerCache.cache
产生,会复用已有对象,这个区间内的 Integer 值可以直接使用==进行判断,但是这个区间之外的所有
数据,都会在堆上产生,并不会复用已有对象,这是一个大坑,推荐使用 equals 方法进行判断。
8. 【强制】浮点数之间的等值判断,基本数据类型不能用==来比较,包装数据类型不能用
equals 来判断。
说明:浮点数采用“尾数+阶码”的编码方式,类似于科学计数法的“有效数字+指数”的表示方式。二进
剩余48页未读,继续阅读
52it.club
- 粉丝: 271
- 资源: 24
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 计算机人脸表情动画技术发展综述
- 关系数据库的关键字搜索技术综述:模型、架构与未来趋势
- 迭代自适应逆滤波在语音情感识别中的应用
- 概念知识树在旅游领域智能分析中的应用
- 构建is-a层次与OWL本体集成:理论与算法
- 基于语义元的相似度计算方法研究:改进与有效性验证
- 网格梯度多密度聚类算法:去噪与高效聚类
- 网格服务工作流动态调度算法PGSWA研究
- 突发事件连锁反应网络模型与应急预警分析
- BA网络上的病毒营销与网站推广仿真研究
- 离散HSMM故障预测模型:有效提升系统状态预测
- 煤矿安全评价:信息融合与可拓理论的应用
- 多维度Petri网工作流模型MD_WFN:统一建模与应用研究
- 面向过程追踪的知识安全描述方法
- 基于收益的软件过程资源调度优化策略
- 多核环境下基于数据流Java的Web服务器优化实现提升性能
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功