孤尽训练营打卡日记day12--代码规范

前言

        软件质量,不仅依赖于良好的架构设计及项目管理,还和代码质量紧密相关。你是否也曾被糟糕的代码坑过,没有注释、和约定的不一致、方法和变量名称随意命名,调用起来不找到对面开发根本不知道调用哪个方法,使用哪个变量。今天我们跟着孤尽老师一起学习一下代码规范。

为什么需要代码规范

1、熵增定律:任何系统在没有外力的有序干预下,一定会往混乱无序的方向发展。代码如果没有一个有效的管理,最终也会变得混乱不堪。

2、破窗理论:窗户破损了的建筑让人觉得似乎无人照管。于是别人也不再关心,他们放入窗户继续破损,最终自己也加入了破坏。一扇破损的窗户开辟了大厦走向倾颓的道路。

由此可见,当代码处在一个无人看管的状态时,最终的结果也就是会导致系统崩溃。

3、现代软件是多人合作的产物;也就是说,在实现一个工程的时候,需要团队合作,团队人与人之间的协作至关重要。每个人的开发习惯都不同,如果没有一个统一的约定,会影响团队整体的工作效率

4、当代码的复杂度越来越高时,就会导致后续的维护越来越难,只是一个很小的改动,但是影响很大。需要大量的时间去读代码,理解原来的业务场景,小心翼翼的躲坑。

代码规范的作用:

  • 减少代码的维护成本
  • 改善可读性
  • 提高团队开发的合作效率
  • 锻炼出更严禁的思维
  • 身心愉快

命名规范

命名体现代码元素特征

  • 抽象类命名使用Abstract 或Base开头
  • 异常类命名使用Exception 结尾
  • 测试类名以要测试的类名开头,Test结尾
  • 类型与中括号紧挨相连来定义数组
  • 枚举类名带上Enum后缀,枚举成员名称需要全大写,单词间用下划线隔开

命名望名知意

  • 某些不规范的缩写会导致理解成本增加,比如 YSD 是应收单的意思还是预收单
  • 主流的编程语言以英语为基础,望文知意 的文是英文,不要使用拼音,和第一条是同样的问题,拼音存在多音

代码格式

        垂直格式

  • 细节往下渐次展开,可以想有一个流程思路,第一步、第二步等等,再分别展开细节实现
  • 概念间垂直方向上的区隔,不同概念的代码应该使用空行分割开,或者使用独立的方法封装紧密相关的代码
  • 长度,逻辑很长的代码需要划分成不同的方法

        横向格式

  • 水平方向上的区隔和靠近,比如运算符前后添加空格,、
  • 水平对齐,注意方法、循环的缩进

常量定义和设计规约

常量的复用层次有五层,跨应用共享变量、应用内共享变量、子工程共享变量、包内共享变量、类内共享变量

  • 跨应用共享变量:防止SDK
  • 应用内共享变量:放置在一方库中
  • 子工程内部共享变量:即在当前子工程的constant目录下
  • 包内共享变量:即在当前包下单独的constant目录下
  • 类内共享常量:直接在类内部定义 private static final 定义

常量命名应该全部大写,单词间用下划线隔开,力求语义表达完整清楚(见文知意)

注释规约

要求

  • 提高代码可读性
  • 是程序条理清晰
  • 方便后期代码维护
  • 方便程序员之间的交流沟通
  • 生成帮助文档
  • 警示作用,防止踩坑

前后端设计与规约

  • 前后端交互的API,需要明确协议、域名、路径、请求方法、请求内容、状态码、响应体,提供清晰的接口文档
  • Java 与 JS对数字类型变量处理方式不同,如果数字太大或者有精度要求,最好使用String类型

原因:

JS没有整型,只有double浮点数

Long类型64位,传给前端必须转成科学计数法,而Double只有16位有效数字,超过16位就会被截断,最大能精确表示的整型值:9007 1992 5474 0992 = 2 的53次方

 Java中的浮点数

  • 0.25 的二进制小数 0.01 
  • 而 0.1 的二进制小数是个无穷二进制

所以,当在使用double进行运算的时候,是个近似运算。double的问题是从小数点转换到二进制丢失精度,二进制丢失精度。

总结

        因为计算机采用二进制处理数据,但是很多小数,如0.1的二进制是一个无线循环小数,而这种数字在计算机中是无法精确表示的。所以,人们采用了一种通过近似值的方式在计算机中表示,于是就有了单精度浮点数和双精度浮点数等。

星光不问赶路人,时光不负有心人

参考文档:

孤尽老师PPT

《代码整洁之道》

猜你喜欢

转载自blog.csdn.net/qq_35056844/article/details/121185815