编码规约--笔记

111 阅读2分钟

编码规约

「这是我参与11月更文挑战的第5天,活动详情查看:2021最后一次更文挑战

1. 编码规约的缘起

增熵定律: 只要我们没有外力干预代码规范,我们的代码总有一天无可救药

image-20211106224212907.png

编码规约存在的意义

一个好的编码规约:

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

2. 代码风格与命名风格

命名风格与代码格式

命名体现代码元素特征:

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

命名最好望文知义

  • 某些不规范的缩写会导致理解成本增加,比如condition缩写成condi
  • 主流的编程语言基本上以英文为基础,此处望文知义的“文“指的是英文
  • 某业务代码中,曾经出现过DaZePromotion

3. 如何定义常量

常量定义设计与规约

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

image-20211106225847331.png

4. 注释的误区

image-20211106230006425.png

注释的作用

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

5.前后端设计与规约

image-20211106230243870.png

前后端联合开发的纠结点

  • 接口名称和风格
  • 如果空集合,返回null还是空集合
  • json组装格式
  • 后台异常的失败提示
  • 错误信息与用户提示透出

需要注意的点

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