T31项目第12天

T31项目第12天,第1张

T31项目第12天

T31项目第12天
  • 项目编码规约
    • 1.编码规约
      • 1.1 熵增定律
      • 1.2编码规约的作用
      • 1.3编码的规约要求
      • 1.4 java常量规约
    • 2.注释规约
      • 2.1注释的作用
      • 2.2注释的内容分类
    • 3.前后端的设计规约
      • 3.1前后端设计要素
    • 4.前后端对数值类型处理
      • 4.1 java和js对数字类型的处理方式
    • #4.2 科学计数法
      • 4.3 浮点数值表示
      • 4.4浮点数的计算
      • 4.5 java 和 js之间精度问题处理(Long)

今天是孤尽班第12天学习,跟着孤尽老师学习了编码规约,注释规约,前后端设计规约,前后端的数值精度处理,受益匪浅,还需要继续补充学习!

项目编码规约 1.编码规约 1.1 熵增定律

每件事物如果不维护都是朝着更坏的方向进展,就好比一间房间,如果不定期清扫和维护,过一段时间房间会变得脏乱不堪。

1.2编码规约的作用

代码更加简约
代码维护工作量减轻
代码管理更方便

1.3编码的规约要求

命名风格和业务描述
主要体现在以下6点方面:
1.望文知意:
例如:service 和 controller 和 dao,pojo 层的类命名应该以业务名称(实体类)+层级名称来命名,每个层级文件存在在固定的目录下
2.抽象类命名 前缀带有 Abstract 或base开头
**例如:**AbstractAddress
3.异常类使用Exception结尾(NullpointException)
4.测试类名以测试类名+Test(UserTest)
4.枚举类名以Enum后缀,枚举成员名称需要全大写,单词间使用下划线连接
6.类名命名应该以业务对应的英文来命名,如果是组合的英文,每个英文之间使用下划线隔开
例如:User_Adress

1.4 java常量规约

常量复用层级:
跨应用共享常量:放置在SDK中
应用内共享常量:放置在一方库中
子工程内部共享常量:当前子工程的constant目录中
包内共享常量:当前包下单独的constant目录下
类内共享常量:直接在类内部private static final 定义
补充:常量的命名字母应该全部大写,单词间使用下划线隔开,保证语义表达清楚;
举例:
例如:
MAX_ConNECTION 最大连接数
TreeMap类中常量

2.注释规约 2.1注释的作用

1.提高代码的可读性
2.使程序条理清晰
3.后期维护方便
4.减少程序的沟通障碍(沟通效率)
5.生成帮助文档(协作效率)
6.警示作用,防止出错

2.2注释的内容分类

注释根据说明内容分为以下3类:
1.附加说明:说明此段代码为什么这么写,用途是什么
2.部分与整体:此段代码与整体业务之间的关联关系
2.风险提示:此段代码可能存在一些问题,未测试,提示其他协作人员

3.前后端的设计规约 3.1前后端设计要素

1.接口名称和风格统一
2.前后端交互的对象属性值统一
3.json组装格式(阿里巴巴开发手册-嵩山版)

//Javabean对象转换成String类型的JSON字符串
JSONObject.toJSONString(Javabean对象)
 
//String类型的JSON字符串转换成Javabean对象
JSONObject.toJavaObject(JSON字符串,Javabean.class)
 
//Json字符串转换成JSONObject对象
JSONObject.parseObject(JSON字符串)
 
//JSON字符串转换成Javabean对象
JSONObject.parseObject(JSON字符串,Javabean.class)

//获取jsonObject中某个字段
jsonObject.getString("字段名字");
 
Refund r = new Refund();
String jsonStr = JSONObject.toJSONString(r);
 
 
String jsonStr = "{"msg":"ZhangSan"}";
Refund r = JSONObject.toJavaObject(jsonStr,Refund.class);
 
 
JSONObject jsonObject = JSONObject.parseObject(jsonStr);
 
Stirng msg= jsonObject.getString("msg");

Refund r = JSONObject.parseObject(jsonStr,Refund.class)

4.后台异常的失败提示(后端和前端统一异常处理方式)
5.错误信息和用户提示透出
例如:后端返回前端的信息中包含后端处理的状态值,前端根据状态值抛出不同的信息 ,status 200 成功,400 失败等
6.前后端交互的API:协议,域名,请求方式,请求方法,请求内容,状态码,响应体

4.前后端对数值类型处理 4.1 java和js对数字类型的处理方式

1.java的可用于设计数字比较大数值和极小值 类型 Long Float Double
2.JS中处理数值类型的类型 Numbr,等同与java中double,属于双精度类型

#4.2 科学计数法

double 和 float使用科学计数法来保存数据


4代表 410^11的数值
8代表 8
10^10的数值
6代表6*10^9

4.3 浮点数值表示

第一位数:表示数字符号,正负,+ -
指数位数:当前指数的整数部分,例如 2.12 *2^1 中的2
有效数值:当前指数的小数部分,例如 2.12 *2^1 中的0.12
float数值的科学计数法的转换方法:Float > int > StringBit

4.4浮点数的计算

计算题:1F-0.9F=0.100000024F,为什么不等于0.1F
解题思路:

总结:只要存在有效数值部分,都有可能存在精度问题,因为每种数值类型保存的有效数值部分的精度不同,当出现转换的数值精度超过了当前数值类型的有效数值的精度范围时,系统会自动舍弃精度范围之外额数字,保留精度范围之内的数值,就会出现精度问题。

4.5 java 和 js之间精度问题处理(Long)

JAVA中对于数值比较大的类型禁止使用Long类型
解决思路:后端传给前端的类型中Long,为64位,要保证数据一致,必须转为二进制传输,因为前端会将后端的数值类型转换为Number类型,等同于java双精度类型Double,最大支持 253次方数据,超过 253的数值保留精确度,java中定义该数值类型应该使用String来表示

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5118984.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-17
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存