《阿里巴巴Java开发手册》(第二版)读书笔记二

今天六六给大家带来的是《阿里巴巴Java开发手册》(第二版)的第二部分读书笔记:

OOP规约

1.避免通过一个雷得对象引用访问此类的静态变量或静态方法,造成编译器解析成本无谓增加,直接用类名访问即可。
2.强制通过一个类的对象引用访问此类的静态变量或静态方法。
3.所有的覆写方法都必须加@Override注解。
4.对外部正在调用或者二方库依赖的接口,不允许修改方法签名,避免对接口调用方产生影响。若接口过时,则必须加@Deprecated注解,并清晰地说明采用地新接口或者新服务是什么。
5.不能使用过时的类或方法。
6.Object的equals方法容易抛空指针异常,应使用常量或确定有值的对象调用equals。
7.所有整形包装类对象之间值的比较,全部使用equals方法。
8.对于任何货币金额,均以最小货币单位且整形类型存储。
9.浮点数之间的等值判断,基本数据类型不能用==进行比较,包装数据类型不能用equals方法判断。
10.构造方法里面禁止加入任何业务逻辑,如果有初始化逻辑,那么请放在init中。
11.POJO类必须写toString方法。
12.禁止在POJO类中同时存在对应属性xxx的isXxx()和getXxx()方法。
13.当一个类有多个构造方法,或者多个同名方法时,这些方法应该按照顺序放置在一起,便于阅读。
14.类内方法定义的顺序依次时:公有方法或者保护方法>私有方法>getter/setter方法。
15.在setter方法中,参数名称与类成员变量名称一致,this.成员名=参数名。在getter、setter方法中不要增加业务逻辑,否则会增加排查问题的难度。
16.在循环体内,字符串的连接方式使用StringBuilder的append方法扩展。
17.类成员与方法访问控制从严:
1)如果不允许外部直接通过new创建对象,则构造方法限制为private。
2)工具类不允许有public或default构造方法。
3)类非static成员变量并且与子类共享,必须限制为protected。
4)类非static成员变量并且仅在本类使用,必须限制为private。
5)类static成员变量如果仅在本类使用,必须限制为private。
6)若是static成员变量,则考虑是否为final。
7)类成员方法只供类内部调用,必须限制为private。
8)类成员方法只对继承类公开,限制为protected。

建表规约:

1.表达是否概念的字段,必须使用is_xxx的方式命名,数据类型时unsigned tinyint。
2.表名、字段名必须使用小写字母或数字,禁止出现数字开头,禁止两个下划线中间只出现数字。
3.表名不使用复数名词。
4.禁用保留字,如desc、range、match、delayed等
5.主键索引名为pk_字段名,唯一索引名为uk_字段名,普通索引名则为idx_字段名。
6.小数类型为decimal,禁止使用float和double类型。
7.如果存储的字符串长度几乎相等,则使用char定长字符串类型。
8.varchar是可变长字符串,不预定分配存储空间,长度不要超过5000个字符。
9.表必备三字段:id、create_time、update_time.
10.表的命名最好遵循“业务名称_表的作用”原则。
11.库名与应用名称尽量一致。
12.当修改字段含义或追加字段表示的状态时,需要及时更新字段注释。
13.当单表行数超过500万或者单表超过2GB,才推荐分库分表。

14.字段允许适当冗余,以提高查询性能,但必须考虑数据一致性。冗余字段应遵循以下原则:
1)不是频繁修改的字段。
2)不是唯一索引的字段。
3)不是varchar超长字段,更不是text字段。

索引规约:

1.业务上具有唯一特性的字段,即使时多个字段的组合,也必须建成唯一索引。
2.超过三个表禁止join。需要join字段,数据类型必须绝对一致;当多表关联查询时,保证被关联的字段需要有索引。在varchar字段上简历索引时,必须指定索引长度,没必要对全字段建立索引,根据实际文本区分度决定索引长度即可。
3.页面搜索严禁左模糊或者全模糊,如果需要,那么请通过搜索引擎来解决。
4.如果有order by的场景,请注意利用索引的有序性,order by最后的字段是组合索引的一部分,并且放在索引组合顺序的最后,避免出现file_sort的情况,影响查询性能。
5.利用覆盖索引进行查询操作,避免回表。
6.利用延迟关联或者子查询优化超多分页场景。
7.SQL性能优化的目标:至少达到range级别,要求是ref级别,最好是consts级别。
8.当建组合索引时,区分度最高的在最左边。
9.防止因字段类型不同造成隐式转换,导致索引失效。
以上就是《阿里巴巴Java开发手册》(第二版)第二部分笔记总结,希望小伙伴收获满满

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值