序
明显不记录,只记录个人感觉关键的
单个方法总行数不超过80,分清楚红花和绿叶
基本数据类型和包装数据类型使用:
包装:proto,RPC返回
基本:局部变量
尽量少使用object的clone函数 ,因为是浅拷贝
。
自定义对象作为map的key,应该重写hashcode和equals
Arrays.asList 返回的Arrays内部类,没有实现集合的修改方法,后台数据仍然是数组。
泛型使用规律
集合初始化时指定相应大小
推荐entryset和foreach遍历 map的kv。
推荐使用线程池,并且进行命名
双重检查锁和volatitle
ThreadLocal
高并发场景应该禁止使用等于判断进行中断和退出。
超高三层的ifelse可以用卫语句,策略模式,状态模式来实现
参数校验
需要:
1:调用频次低
2:执行开销大
3:需要极高稳定性和可用性
4:对外提供的(RPC/API/HTTP)
5:敏感权限入口
不需要:
1:极有可能循环调用的方法
2:底层调用频度较高的方法
3:private
trace/debug/info基本日志输出,必须使用条件输出形式或者占位符形式。
单元测试
符合AIR原则
使用assert来验证
遵守BCDE原则