前言
在最近整理项目结构,并使用
在开始之前我们将粗略探讨一我做这项工作的意义。
为什么我们需要 lint
总所周知在一个项目开发中,一套约定俗成的规范是极度有必要的,没有统一的开发风格我们在维护或者开发代码时的差异将导致维护困难性的指数型上升,扎根于业务的我等业务仔将苦不堪言 ??。
在刀耕火种的年代,这种规范全靠
该在哪里进行检测
接入 lint 工具其实是相对比较简单的事情,只需要团队安装好依赖,引入需要的
对于这一点,当前常用的有两种方式:
- loader
- git hooks
loader 编译流程图
1 2 3 4 5 6 7 | graph TB start(更改) --> compile(编译) compile -- loader检测成功 --> nextCompile(继续编译) compile -- loader检测失败 --> error(报错) nextCompile -- compile成功 --> result(编译结果) nextCompile -- compile失败 --> error(报错) result --> commit(提交) |
而
git hooks 编译流程图
1 2 3 4 5 6 7 | graph TB start(更改) --> compile(编译) compile -- compile成功 --> result(编译结果) compile -- compile失败 --> error(报错) result --> commit(提交) commit -- pre-commit检测成功 --> 提交成功 commit -- pre-commit检测失败 --> 提交失败 |
通过一些权衡,我放弃了频繁的检测而选择了一劳永逸的
该检测哪些内容
不管是使用
我们需要检测我们需要关注的内容,简单而言就是我们提交的内容。
冲突
为了解决上面的问题,我们引入了
但是这时候我和同事的冲突就出现了,我们对
lint
受一个之前的同事影响,在我的看来,
规范
而我的同事认为,我们使用工具的作用就是让代码的格式和风格统一,我们应该更关注于业务,如果工具能够帮助我们修正风格,那我们就应该把这些工作完全交由工具去做,开发人员做好开发工作就好(顺道一提,最开始的我也是这种想法 ??)。
结局
综合考量之后,我决定还是同意了同事的观点,不光是因为项目工期紧,时间段,还有整个流程长度问题(完全不是因为我个人最开始是坚定的偷懒党),可是这个问题还是值得我们沉思:在项目规范流程的推进中,我们到底是该选择人适应规则,还是让代码适应规则呢?
不知诸君何解。