好的编码规约的意义:
1、减少代码的维护成本
2、改善可读性
3、提高团队开发的合作效率
4、锻炼出更加严谨的思维
5、身心愉悦
命名风格与代码格式——两个要求
1、命名体现代码元素特征
(1)抽象类命名使用Abstract或Base开头
(2)异常类命名使用Exception结尾
(3)测试类命名以它要测试的类名开始,以Test结尾
(4)类型或中括号紧挨相邻来定义数组
(5)枚举类名带上Enum后缀,枚举成员名称需要全大写,单词间用下划线隔开
2、命名最好望文知义
(1)某些不规范的缩写会导致理解成本增加
(2)主流的编程语言基本上以英语为基础,这里的“文”指英文
常量定义规约
1、不允许任何魔法值(即未经预先定义的常量)直接出现在代码中
2、统一常量一定需要统一的管理,统一的维护,统一的使用。
3、【推荐】常量的复用层次有五层:跨应用共享常量、应用内共享常量、子工程内共享常量、包内共享常量、类内共享常量。
(1)跨应用共享常量:放置在SDK中
(2)应用内共享常量:放置在一方库中
(3)子工程内部共享常量:在当前子工程的constant目录下
(4)包内共享常量:值当前包下单独的constant目录下
(5)类内共享常量:直接在类内部private static final定义
4、常量命名应该全部大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字长。
注释规约
注释的作用:
1、提高代码可读性
2、使程序条理清晰
3、方便后期代码维护
4、方便程序员间的交流沟通
5、生成帮助文档
6、警示作用,防止踩坑
前后端设计与规约
前后端联合开发纠结点:
(1)接口名称和风格
(2)如果空集合,返回null还是空集合
(3)json组装格式
(4)后台异常的失败提示
(5)错误信息与用户提示
1、前后端交互的API,需要明确协议、域名、路径、请求方法、请求内容、状态码、响应体。
2、Java与JS对数字类型变量处理方式不同,如果数字太大或者有精度要求,最好使用String类型
结果的产生:是因为尾数的截断导致的。
【强制】对于需要使用超大整数的场景,服务端一律使用String字符串类型返回,禁止使用Long类型。
说明: Java服务端如果直接返回Long整型数据给前端,JS会自动转换为Number类型(注:此类型为双精度浮点数,表示原理与取值范围等同于Java中的Double)。 Long类型能表示的最大值是2的63次方-1 ,在取值范围之内,超过2的53次方(9007199254740992)的数值转化为JS的Number时,有些数值会有精度损失。扩展说明,在Long取值范围内,任何2的指数次整数都是绝对不会存在精度损失的,所以说精度损失是一个概率问题。若浮点数尾数位与指数位空间不限,则可以精确表示任何整数,但很不幸,双精度浮点数的尾数位只有52位。
为什么要有科学计数法?
答:表示极大数、极小数。
3、HTTP请求通过URL传递参数时,不能超过2048字节。
其他
Float >> int >> StringBit
userTips在后端做好映射给前端
1、f(String s); f(Integer i) >>>> f(null)
编译不通过
(因为,从继承簇的底端开始寻找,先找到就调用哪个方法,String、Integer没有继承关系,所以不知道找哪个。)
2、f(String s); f(Object o) >>>> f(null)
f(String s)