1、童子军规则
”永远保持离开时的露营地比你发现它时更整洁“,让代码比发现时更好
我喜欢把童子军规则和打扫房间的情况进行类比。想象一下,你家里的每个人都把盘子放在水槽上,把所有垃圾都放在走廊上,把所有要洗的衣服都放在浴室里。但是每个星期天,你必须花费 4 个多小时清理整个房子。你会钟意吗?
所以如果每个人都立即清理房间的小部分,星期天的工作量会小一些。
无用的代码尽早删除,既然了不起的 git 可以检出旧代码,那么为什么还要把它留在注释中呢?
2、代码风格
这个可以使用Linter等做好这个事情,Husky 预提交钩子来做保证,大家不要依赖eslint插件,尽量能自己写出符合eslint校验的代码
只记住简单几点,统一的缩进,空格,换行,能让代码看的很漂亮
3、文件组织
本来大家在写代码时是不应该在这里花费太多心思的,但是合理的代码框架在后续查找代码的时候会带来意想不到的便利,比如vue-cli创建的目录,一目了然,各个文件夹的功能很清楚
合理的结构可以让同事之间合作保持紧密联系,比如components一看就知道里面存放的是业务公共组件,比如common一看就知道存放的是公共文件,utils,filters,mixins等等
如果文件夹下乱七八招,大家可能就根本不会想着去复用,重复造轮子,典型的管杀不管埋
这个是我们的目录,如果能按功能或者页面划分会不会更好
这些非公共组件存放各自页面下面会不会更合理
4、页面引用,哪些地方是引用方法(接口,配置,公共方法等等),哪些地方是引用组件是不是可以分开组织代码
像下面这样是不是看的更舒服
5、页面中的data,按功能分开,试想一下如果让你优化代码,某一块功能不要了,如果穿插的也逻辑还敢优化吗,这也是代码可维护性的一种
按功能分开
6、引用规则,这个大家一定要重视,有个规则是如果是你当前页面组织下的文件使用相对路径去引用,如果是组织外的文件使用@/xxx去引用
这样的目的也是明确代码的组织架构
7、不要写硬编码了实在是看不懂,简单的const文件就能把代码复用性,可维护性升级
8、代码逻辑要有一套自己的理论,比如就像语文课文讲究的一样,总分结构。单一入口,单一职责,逻辑解耦
分解代码之后才能更好的复用
9、if语句
像下面这样做,你创建了一段像是英语句子般的可读代码,而上面的pathNames集合,仅仅是配置
10、善于使用created,这个是有缓存的,而且还能使页面结构变得简单
优化后
11、解构析构语法要善于使用,还有拓展运算符(...)使用
let {
queryString,
storeId,
cateId
storeCateId
} = options
赋值其实也一样
let data = {
channel
token
platform
}
12、临时存储数据
像下面这种逻辑,可以
let data = res.data || {}
let hasBoughtNum = data .hasBoughtNum || ''
13、一定要注意兼容,当然不止赋值方面的兼容,还有接口方面的兼容,前端代码执行是顺序的,一旦一个地方报错就会影响后续流程,所以一定要做好容灾
不管是mock还是靠经验,一定要把可能出错的地方兜住,容灾演练也要时常自查
14、组件拆分
合理拆分组件,理论上一个组件的逻辑代码不能超过500行,否则组件就不纯粹
15、逻辑复用,组件复用,要找到共性,理论上只要有重复出现的代码就可以做抽离
失效商品和正常商品逻辑一致,就可以抽离公共组件
16、注意高阶函数使用,善于使用闭包,函数柯里化等等,可以优化程序性能