公司代码整洁实践探索

38 阅读4分钟

1、童子军规则

”永远保持离开时的露营地比你发现它时更整洁“,让代码比发现时更好

我喜欢把童子军规则和打扫房间的情况进行类比。想象一下,你家里的每个人都把盘子放在水槽上,把所有垃圾都放在走廊上,把所有要洗的衣服都放在浴室里。但是每个星期天,你必须花费 4 个多小时清理整个房子。你会钟意吗?

所以如果每个人都立即清理房间的小部分,星期天的工作量会小一些。

无用的代码尽早删除,既然了不起的 git 可以检出旧代码,那么为什么还要把它留在注释中呢?

image.png 2、代码风格

这个可以使用Linter等做好这个事情,Husky 预提交钩子来做保证,大家不要依赖eslint插件,尽量能自己写出符合eslint校验的代码

只记住简单几点,统一的缩进,空格,换行,能让代码看的很漂亮

image.png 3、文件组织

本来大家在写代码时是不应该在这里花费太多心思的,但是合理的代码框架在后续查找代码的时候会带来意想不到的便利,比如vue-cli创建的目录,一目了然,各个文件夹的功能很清楚

合理的结构可以让同事之间合作保持紧密联系,比如components一看就知道里面存放的是业务公共组件,比如common一看就知道存放的是公共文件,utils,filters,mixins等等

如果文件夹下乱七八招,大家可能就根本不会想着去复用,重复造轮子,典型的管杀不管埋

image.png

这个是我们的目录,如果能按功能或者页面划分会不会更好

image.png

这些非公共组件存放各自页面下面会不会更合理

image.png

4、页面引用,哪些地方是引用方法(接口,配置,公共方法等等),哪些地方是引用组件是不是可以分开组织代码

image.png

像下面这样是不是看的更舒服

image.png

5、页面中的data,按功能分开,试想一下如果让你优化代码,某一块功能不要了,如果穿插的也逻辑还敢优化吗,这也是代码可维护性的一种

image.png

按功能分开

image.png

6、引用规则,这个大家一定要重视,有个规则是如果是你当前页面组织下的文件使用相对路径去引用,如果是组织外的文件使用@/xxx去引用

这样的目的也是明确代码的组织架构

image.png

image.png

7、不要写硬编码了实在是看不懂,简单的const文件就能把代码复用性,可维护性升级

image.png

image.png

8、代码逻辑要有一套自己的理论,比如就像语文课文讲究的一样,总分结构。单一入口,单一职责,逻辑解耦

分解代码之后才能更好的复用

image.png

9、if语句

像下面这样做,你创建了一段像是英语句子般的可读代码,而上面的pathNames集合,仅仅是配置

image.png

10、善于使用created,这个是有缓存的,而且还能使页面结构变得简单

image.png

优化后

image.png

image.png

11、解构析构语法要善于使用,还有拓展运算符(...)使用

let {

queryString, 

storeId,

cateId

storeCateId

} = options

image.png

赋值其实也一样

let data = {

   channel

   token

   platform

}

image.png

12、临时存储数据

像下面这种逻辑,可以

let data = res.data || {}

let hasBoughtNum = data .hasBoughtNum  || ''

image.png

13、一定要注意兼容,当然不止赋值方面的兼容,还有接口方面的兼容,前端代码执行是顺序的,一旦一个地方报错就会影响后续流程,所以一定要做好容灾

不管是mock还是靠经验,一定要把可能出错的地方兜住,容灾演练也要时常自查

image.png

14、组件拆分

image.png

合理拆分组件,理论上一个组件的逻辑代码不能超过500行,否则组件就不纯粹

image.png

15、逻辑复用,组件复用,要找到共性,理论上只要有重复出现的代码就可以做抽离

失效商品和正常商品逻辑一致,就可以抽离公共组件

image.png

16、注意高阶函数使用,善于使用闭包,函数柯里化等等,可以优化程序性能

image.png