上司不允许使用 es6 新特性理由是他看不懂

2021-06-04 08:31:32 +08:00
 kensoz

请问是我道行不够还是上司跟不上潮流?

入职不久的前端开发,最近参与一个模块的调整作业,模块本身多人接手过所以 es5 es6 都有。 用 es6 的 filter 方法处理了几个 api 接收的数据, 完后 codereview,上司说不行非让我用 for 循环写,理由如下

1.他看不懂,原因是他虽然也懂前端但是主要负责后端,原话:java 里没有 filter 2.他看不懂就没法排错,万一写错他不知道哪错了 3.新特性不够稳定,兼容性有问题,显然他不懂 bable 4.万一我休息遇到 bug,for 他会改 5.for 也罢 filter 也罢最后都能用,为什么不用大家都懂的

虽然我给他普及了相关知识,可还是被无情拒绝。 当时我是很生气的,这明明就是 js 基础了,2021 年还有这种人? 不过事后一想,上司的做法不能说全错,毕竟他是要对项目负责的,稳是第一位。

公司还行,但是没有干长的打算 如此别说是参与内卷了,不仅啥都学不到,技术退步肯定是必然的。 请问各位遇到这种事情会怎么办?

28577 次点击
所在节点    程序员
308 条回复
mxT52CRuqR6o5
2021-06-05 11:38:31 +08:00
@seakingii 楼主就在说 filter,为啥不让纠结 filter,倒是你在滑坡谬论
mxT52CRuqR6o5
2021-06-05 11:42:15 +08:00
而且一个团队的组成是团队里的所有人,而不是技术 leader 一个人,代码规范应该遵循大多数人的习惯而非 leader 一个人,更何况这个 leader 并不会来这个前端项目写代码
chemzqm
2021-06-05 12:20:34 +08:00
我感觉你可以走人了
rainboat
2021-06-05 12:27:44 +08:00
leader 连个 fliter 都看不懂,可以跑路了
seakingii
2021-06-05 14:16:05 +08:00
@mxT52CRuqR6o5 楼主想用的会只有一个 filter 么?目前只是用 filter,如果没有约束随便用,按楼主的想法,不会想用 map,flatMap,reduce,class,const,let,fetch,promise,Symbol,getter,setter,proxy...所有这些更先进的内容么?看事情要看本质,楼主的问题就是想用最新的语言功能达到更好的效果,楼主的"领导"就是只想用他掌握老的语法,能完成功能就行.矛盾在这里.我发的论点就是楼主作为新人在技术方案上没有权威.

"领导"的要求,总有一个边界,如果没有边界,那就甚至会前进到所有语言都可以用,只要这个语言能编译成 JS,运行在 WEB 上;如果有对语言的限制边界,那么这个边界会在哪?一般情况可能会是 ES5,ES6 随便用,只要用 BABEL 翻译一下就行,显然在这个案例里,边界更后退在甚至不能用 filter
seakingii
2021-06-05 14:25:33 +08:00
语言的技术是学不完的,楼主没必要强求一定要在公司学.公司不是学技术的地方,公司是做项目赚钱的地方.想学技术,现在这个世界,道路多的是,最简单就是做个自己感兴趣的项目,有什么新的技术都用上.什么 ES5,ES6,ES1000000 你想用就用,什么 VUE,REACT,angular 随便选.甚至你可以学学 typescript,flutter,kotlin 再翻译成 JS,学学 golang ,rust 做 wasm 开发...前端领域太大了,学不完的技术,只用 jquery 的人还大把在做项目.不要强求别人能掌握什么前端技术,做好自己吧.
mxT52CRuqR6o5
2021-06-05 15:06:06 +08:00
@seakingii
filter 、map 、reduce 这三个都是旧时代的东西,和你举的其他例子完全不一样
还有你现在的行为就是我所说的滑坡谬论的现场演示
shyling
2021-06-05 15:20:25 +08:00
1. filter 是 es5 的( chrome 1, ie 9 就原生支持的函数:你不会我会告诉你,你可能不适合 review 代码)
2. 我不用可以,但理由不能是你不会。你今天说你不会,因为 java 里没有,那我明天写个 splice ( ie5.5 就有) java 里也没有,你难道再说你不会?
3. 用什么,不该用什么,应该明确有个标准,说只用 es5,那我不用 es6,说用 es3,那我就不用 filter 。而这个标准应该由所有前端同学根据标准的发展,公司业务去决定,而不是给一个不写前端的后端做一言堂。客户的情况如果支持我们直接用 es6,那为什么还要去写冗余的代码,去加载没必要的 polyfill,这对性能和用户体验都有好处。
seakingii
2021-06-05 15:21:32 +08:00
@mxT52CRuqR6o5 "filter 、map 、reduce 这三个都是旧时代的东西"?这个"旧时代"是你定义的么?什么是"旧时代"?哪些是属于"旧时代"? 显然在这个案例里,"领导"定义了哪些能用哪些不能用,而不是你定义的"旧时代"
seakingii
2021-06-05 15:28:10 +08:00
@shyling 同意你的看法,这个案例就是缺少标准,或者说规范,或者说边界. 其实也不是没有标准,只这个标准不是明文的编程规范,而是"领导"的 Javascript 认知水平.

大公司为了解决这种情况,会出编程规范来约束团队的行为,比如《阿里巴巴 Java 开发手册》,小公司小团队因为各种原因,很多是不会有这样的规范的.
mxT52CRuqR6o5
2021-06-05 15:29:52 +08:00
@seakingii 所以我的观点领导的规定>时代的规定这个事实是有问题的,你在反驳些什么
xcstream
2021-06-05 15:33:29 +08:00
挺好, 越是技术上没追求的公司,越是其他地方有优势。
只有其他地方没什么优势了,才最有技术上形而上学的东西。
Lemeng
2021-06-05 15:45:11 +08:00
有点意思。只能这样说了
mxT52CRuqR6o5
2021-06-05 15:58:54 +08:00
@xcstream 所以谷歌微软一定是其他地方没什么优势的公司了
learningman
2021-06-05 16:07:04 +08:00
@dfkjgklfdjg 可是 babel 的实现是 polyfill 啊。。。
seakingii
2021-06-05 16:13:33 +08:00
@mxT52CRuqR6o5 你认为"领导的规定>时代的规定这个事实是有问题的" , 相反,我认为"领导的规定>时代的规定这个事实"是可以接受的, 只要这个"领导"带领的团队能完成公司的项目,并且能正常上线运营,给公司带来效益,使用老旧的技术也是可以接受的.

不管是"使用新技术",还是"使用老技术",项目成功与否,责任肯定是"领导"更大,他更有权决定技术方案.
mxT52CRuqR6o5
2021-06-05 16:35:36 +08:00
@seakingii 你只是证明了 leader 有权利决定用什么技术,但你没有证明 leader 决定到底是好是坏
tealerK
2021-06-05 16:54:25 +08:00
@yeqiu 同感 后端表示初看这些人把 filter 吹的天花乱坠,结果就这?!果然都说前端喜欢卖弄框架和概念不是没有道理的
DOLLOR
2021-06-05 17:04:07 +08:00
@tealerK
那么,连这么简单的一个 filter 都不愿学,因为自己看不懂就不让用,这水平还有什么资格说别人?
auh
2021-06-05 17:27:04 +08:00
上司的话是对的。不要光想着当程序员。纯粹意味着傻吊

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

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

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

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

© 2021 V2EX