2.1-代码编写
Create by fall on 03 Feb 2022
Recently revised in 27 Apr 2023
你觉得代码好看还是难看,那只是因为你熟悉或陌生。
好的代码
这是代码常见问题的一些思考
- 使用默认导出还是命名导出?
- 默认导出可以在使用的时候重命名
- 命名导出,在命名更改的时候,其它地方可以同步更改(不然报错)
- 文件命名
- 使用 index.tsx,可以保证你打开一个文件夹知道要找的文件是谁,报错的时候,搜索的时候,就会有成百上千个 index 文件
- 使用文件夹的名称,可以让搜索更容易,重构时给文件夹重命名也很重要
- Prop 命名
- 使用 Props 简单,但如果想要导出这个类型,就还需要再重命名,也很难保持一致,搜索也会有多个结果
- 使用文件夹的名称,可以让搜索更容易,重构时给文件夹重命名也很重要
- 普通函数还是箭头函数
- 普通函数(ES6 之前唯一支持的函数声明方式
- 箭头函数简洁,紧凑,可读性(一部分人来说)
- 三步运算符还是提前返回
- 在返回时使用三步运算符,条件不多,且返回内容简单时非常好,条件多后可读性非常差
- if 提前返回,多行的内容十分友好,注意使用提前返回可以避免多级嵌套(也不建议 if 中的内容过多,影响理解
软件设计原则
- 不要重复
- 让方法保持简单,甚至简单到小白都能懂
- 面向接口编程,而不是实现
- 别因为下次需要在这次编程中实现
- 顶层询问原则,在模块的最顶层询问内容,而不是其中的一部分
组件开发推荐使用强类型语言,因为需要调用对应的 API 实现功能,强类型独有语法提示,类型提示。
只有当同一份代码使用过多次之后,再提取到工具中,视图上同理
命名规则
尽可能使用方法命名代替注释
/**
* 求和函数
* @param {number} a 加数
* @param {number} b 加数
* @return {number} sum 和
*/
function getAB(a,b){
return parseInt(a)+parseInt(b)
}
// 尽可能不使用注释
function sumString(a,b){
return parseInt(a)+parseInt(b)
}