前端是否有点卷?

2021-11-04 16:25:49 +08:00
 Features
应届生,入职某小厂,前端大概 15 人团队,lint 规则令人发指

1.比如禁止使用 for 遍历一个数组

2.缩进必须要两个空格,不能使用 tab

3.禁止使用字符串与变量进行 + 操作,必须使用``

4.禁止使用三目运算符

......

我觉得程序员也是一种创意工作吧?

现在搞得有点像写八股文

本来有些功能写起来就很费劲,好不容易想到一个办法

或者从 stackoverflow 找到答案,复制下来还不能直接用😂

搞得挺难受的

不知道大家怎么看严苛的 lint 规则的?
6737 次点击
所在节点    问与答
103 条回复
daliusu
2021-11-05 13:34:34 +08:00
@daliusu #60 那个时候找工作基本会个 jquery 都能找到的都要搞这些,充分说明了这跟卷不卷没有半毛钱关系
Features
2021-11-05 13:38:28 +08:00
@wangyzj 还有更难受的,不过看大家都这么说,只能改下自己的习惯吧。
Features
2021-11-05 13:40:41 +08:00
@daliusu
以前写了个组件不能直接用比较难受有办法吗?
GiftedJarvis
2021-11-05 13:55:11 +08:00
@ztc @AoEiuV020 有人会三元运算套三元运算, 我在屎山里见过
Perry
2021-11-05 13:58:41 +08:00
能看出应届生的年轻无知
fox2081
2021-11-05 13:59:36 +08:00
这个确实有些严格了,tab 这个,一般编辑器也支持 tab 转空格的,1 和 3 无法理解,各有各的使用场景,4 的话,虽然我们没限制,但自己年轻时特别喜欢写一些很复杂的表达式,自己看着很爽,同事看着很难受,确实不是啥好习惯。

eslint+editorconfig+prettier 还是要搞的,最好有 git hooks 检查,要不然团队里有人用 vsc ,有人用 webstorm ,有人 win ,有人 mac ,加一个分号导致十几处修改,提交一下对方全蓝,工作还怎么搞,这些东西又不会限制你的创意。
maichael
2021-11-05 14:05:11 +08:00
@cyrbuzz #54
通常来说,要 break 的场景只有 find ,可以使用 every 和 some 来替代( https://stackoverflow.com/questions/6260756/how-to-stop-javascript-foreach ),当然,这不符合语义化的要求。
其实在某些场景下(不确定有多少),find 的性能要比 for-loop-break 的要高( https://www.measurethat.net/Benchmarks/Show/4261/0/find-vs-forof-vs-for-loop ),你可以测下自己的场景试试。
maichael
2021-11-05 14:09:01 +08:00
不觉得这是啥内卷,Lint 和 Prettier 都是为了减少无意义的内耗。
johnnyNg
2021-11-05 14:18:18 +08:00
我觉得没啥毛病
rongchuan
2021-11-05 14:27:12 +08:00
还好吧,如果配置好规则和 git husky,自己还是按自己的写,提交前自动 lint ,没啥感觉。
zhea55
2021-11-05 14:38:00 +08:00
@cyrbuzz

break 可以用 some 。

for 是命令式编程。

现在前端全部换声明式了。

只能实现功能的代码,早删除了好,不然都是坑。


这还只是 eslint 呢,建议把 stylelint 也加上。


不然产出的代码,都不想看。
0xZhangKe
2021-11-05 14:38:53 +08:00
连三目运算符都觉得不直观那还是不要做程序员了吧。
cyrbuzz
2021-11-05 14:48:10 +08:00
@maichael

有意思的代替,单条件用 find 确实是个不错的代替,新技能 Get 。

思考了一下,在与 continue 结合就有点力不从心了,还要做点啥的话也得给变量起个过得去的名字了= =,这样可能没人喷我`for (let i of arrays)`,这样可能会被吊起来锤`let i = arrays.find()`= =。
garlics
2021-11-05 14:51:49 +08:00
eslint 的官网每一条规则都会解释为什么怎么做,刚开始写的时候遇到不理解的规则都会去看下,也学到了很多。http://eslint.cn/docs/rules/
https://eslint.org/docs/rules/
Felldeadbird
2021-11-05 14:51:58 +08:00
后端来回答:禁用 for 我是无法理解的。 全用 map ,foreach 这些?
cyrbuzz
2021-11-05 15:01:32 +08:00
@zhea55

some 有点不是绝对代替,用到 break 的地方往往会出现调用其他函数,赋值等操作。用 some 只拿到了状态,我想取那个值还得在迭代一次。要是在 some 的判断函数里加点赋值调用的私货,那这个 some 很不 some ,至少我个人是排斥的= =。
Features
2021-11-05 15:04:42 +08:00
@Felldeadbird 是的,因为 ES6 以后提供了很多新语法来替代。
强迫程序员使用新的语法糖呗
wanguorui123
2021-11-05 15:15:39 +08:00
前端后端都一样卷,加上每个人的代码风格,更加混沌
EvilDevilJin
2021-11-05 15:28:14 +08:00
这跟卷没啥关系。
这不就是明确规范的编码风格吗。
banricho
2021-11-05 15:32:57 +08:00
除了 4 感觉都挺正常的。。。

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

https://tanronggui.xyz/t/813069

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

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

© 2021 V2EX