「灵感收集」从代码质量角度考虑,你会对哪些方面进行重构

2021-02-28 23:54:37 +08:00
 akasuv

目前在做一个基于 JS 语法树的 cli 工具,基本思路就是通过提前配置好的规则扫描目标代码文件,并在符合规则的代码区域自动激活相关注释。

现在只做好了一个规则,就是判断函数主体行数是否超过特定行数,如果超过,就会在指定区域激活一段可自定义的注释,示例如下:

之前

function func() {
/* 此处省略 60 行 */
}

之后

// TODO: 代码超过 50 行,需要重构 [Generated comment]
function func() {
/* 此处省略 60 行 */
}

目前我只想到函数行数限制这一个,从 Clean Code 里面估计还能找到一些,但是想先来问问大家,集思广益。

1378 次点击
所在节点    程序员
6 条回复
fucUup
2021-03-01 05:06:44 +08:00
搞笑,Linux 内核函数 3000 多行,linus 本人都没骂人直接合并,你 60 行,有没有理由,p9 总监同意没有
fucUup
2021-03-01 05:09:58 +08:00
先把 esLint 提示做完,再去想其他
legiorange
2021-03-01 09:52:44 +08:00
只有数据驱动这样做可以。
事件驱动和 tdd 就是吃饱了没事干。
uselessVisitor
2021-03-01 10:21:34 +08:00
还是太闲了
qinyusen
2021-03-01 14:01:30 +08:00
然后一个 300 行函数可以直接实现的功能封装成 4-5 层,每层 30 行就开心了?看一个实现跳 5 次?

一般人脑子,压栈 3 层就是不错的头脑了,考个 985 不成问题。

实现有实际业务意义的子功能,里面最多嵌套 3 层函数代码到原子函数(三方库接口、内部库接口),否则免谈。

我们重构过,看一个实际业务的算法实现要跳 11 次的长链调用。

为了减少单个函数的阅读代价增加读代码的人的大脑的压栈代价,怕不是你没 debug 过长逻辑业务吧。
jones2000
2021-03-01 15:24:28 +08:00
当你要往你框架里面加新功能时,发现加不了了, 或者要改很多逻辑的时候, 你需要重构了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/757074

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX