编写易读代码
编写易读代码,炫技不可取,不费力能看懂最佳
编写易读代码
态度
- 软件构建的核心就是管理复杂度
- 代码不仅写给自己看的
代码自解释
- 不要缩写
- 宁可名字很长,也要有意义
- 接口命名也需要自解释
|
|
命名
- 类型名或者变量名为名词
- 函数名一般为动词
- 形容词做限定
- 不允许拼音
|
|
命名规约
- 驼峰式命名:num_error -> errorNums
- 常量 ->首字母大写 驼峰式命名(Go):MaxSize
- 常量: 大写+下划线:MAX_SIZE
- 函数名:Get***/List**/Update***/Delete**/Create**
- 代码中不可出现数字常量&字符串常量
注释
- 复杂逻辑注释
- 函数注释,说明函数是做什么的
- 站在代码读者角度进行注释:what?why?
- 函数内部逻辑很复杂,可以输入输出的例子来说明
控制流
控制流最好不要超过三层(if、else)
语法糖
array.map(*3.14).filter(>1.00).reduce(+)
少用
代码拆分->单一原则
- 一个函数只处理一个事情:函数解耦->模块解耦->服务解耦->结构解耦
- 数字体现:单个函数最好不超过45行,尽量控制
- 函数复用:没有重复代码。
- 单个代码文件不能超过3000行
单元测试
- ⽂件名:albumService_test.go, albumServiceTest.java
- ⽅法名:testCreateAlbum, testUpdateAlbumById • ⽅法名和需要测试⽅法名保持⼀致 • 允许中⽂(考虑测试覆盖率的话,测试case⽐较多): • testCreateAlbum_插⼊影集 • testCreateAlbum_插⼊视频 • testCreateAlbum_重复插⼊ • testCreateAlbum_参数错误
炫技不可取,不费力能看懂最好
- Author: 3zair
- Link: https://3zair.github.io/posts/%E7%BC%96%E5%86%99%E6%98%93%E8%AF%BB%E4%BB%A3%E7%A0%81/
- License: This work is under a 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议. Kindly fulfill the requirements of the aforementioned License when adapting or creating a derivative of this work.