请问是我道行不够还是上司跟不上潮流?
入职不久的前端开发,最近参与一个模块的调整作业,模块本身多人接手过所以 es5 es6 都有。 用 es6 的 filter 方法处理了几个 api 接收的数据, 完后 codereview,上司说不行非让我用 for 循环写,理由如下
1.他看不懂,原因是他虽然也懂前端但是主要负责后端,原话:java 里没有 filter 2.他看不懂就没法排错,万一写错他不知道哪错了 3.新特性不够稳定,兼容性有问题,显然他不懂 bable 4.万一我休息遇到 bug,for 他会改 5.for 也罢 filter 也罢最后都能用,为什么不用大家都懂的
虽然我给他普及了相关知识,可还是被无情拒绝。 当时我是很生气的,这明明就是 js 基础了,2021 年还有这种人? 不过事后一想,上司的做法不能说全错,毕竟他是要对项目负责的,稳是第一位。
公司还行,但是没有干长的打算 如此别说是参与内卷了,不仅啥都学不到,技术退步肯定是必然的。 请问各位遇到这种事情会怎么办?
1
ericls 2021-06-04 08:32:39 +08:00 via iPhone
开源项目的 lead 都比这个专业
|
2
xiadd 2021-06-04 08:32:42 +08:00 20
filter 是 es5 的数组方法
|
3
cominghome 2021-06-04 08:33:56 +08:00 3
听他的,然后准备跑路
|
4
ericls 2021-06-04 08:34:42 +08:00 via iPhone
老板想做什么都可以 但是你得考虑自己发展和公司的发展能不能契合
|
5
murmur 2021-06-04 08:36:25 +08:00 6
听上司的,我也赞同,js 那么多库可以替代 es6 的语法,甚至有的库跑的比 es6 标准都快,为啥非得用 es6
还有谁跟你说 es6 是 js 基础的 |
6
des 2021-06-04 08:37:53 +08:00 via iPhone
那就本地留一份,转译玩再提交(
|
7
murmur 2021-06-04 08:38:38 +08:00 33
前端就是这样,浮躁,功能生态不考虑,语法这个必须得拉满,你看写 java 的什么时候纠结语法了,因为 java 早就超越了造轮子的年代,别人是开箱即用的立体化停车场
你写个语句,语法拉满,觉得很牛逼,别人一个 import 一个停车场起来了 |
8
ccde8259 2021-06-04 08:41:26 +08:00 via iPhone 2
Stream API 里有 filter……
|
9
play78 2021-06-04 08:42:17 +08:00
小项目你可以为所欲为,es2021 都可以。 如果是大型项目,那领导说的对。他要对项目负责。
你也可以说是老古董,你知道很多公司的核心项目,还在用 jdk6,7,8 其实 filter 这个在 jdk 高版本是已经有了。还是很少用。 |
10
zjsxwc 2021-06-04 08:42:39 +08:00
我不信 java 没有,
java 有甚至很丰富,看看 java 的相应式编程中 Reactive Streams |
12
suzic 2021-06-04 08:44:17 +08:00 via Android
filter 是 es5
|
13
christin 2021-06-04 08:45:30 +08:00 via iPhone
百度不让他用吗
|
14
ynohoahc 2021-06-04 08:46:44 +08:00
抖个机灵~~楼主对 es6 掌握得也不深呀
|
15
Cbdy 2021-06-04 08:47:19 +08:00 via Android
不跑路留着过国庆节?
|
16
wenjun19931112 2021-06-04 08:49:52 +08:00 26
就凭他说“java 里没有 filter”,可以断定他后端也不怎么样
|
17
tairan2006 2021-06-04 08:52:40 +08:00
你上司为啥是个后端啊……
java stream 里面显然有 filter 啊 |
18
qwerthhusn 2021-06-04 08:58:16 +08:00
List.of(1, 2, 3).stream().filter(i -> i & 1 == 0).collect(Collectors.toList());
|
19
Mutoo 2021-06-04 08:58:45 +08:00
赶紧跑
|
21
touchwithe 2021-06-04 08:59:41 +08:00 via iPhone 1
在前前司的时候,本来就干的不爽,上司还指着我 py 代码中的关键词参数问:为什么总指针的指针? 我当场黑人问号,不到一周就溜了。这种地方早点离开。
|
22
ChefIsAwesome 2021-06-04 09:00:47 +08:00
filter 你应该当作是递归,跟 for 压根不是一回事。特别是你写前端,后面会越来越倾向函数式编程,不应该去用 for 的。
|
23
Shook 2021-06-04 09:01:46 +08:00
既然你上司是个后端,你也不能要求人家经常更新前端知识了。
|
24
66beta 2021-06-04 09:02:59 +08:00 2
为什么让一个外行来 review ?如果公司小人手不够,那就别 review 了。
但重点还是这个人情商太低,不适合做领导 |
25
finian 2021-06-04 09:03:00 +08:00 2
学个 filter 需要一分钟不?这都不让用,只能说明在技术上没有追求,其他什么理由都是扯淡。
|
26
Leonard 2021-06-04 09:03:27 +08:00
上司是后端不熟悉前端为啥给前端排错?
|
27
blessyou 2021-06-04 09:04:59 +08:00 via Android
真不错 一看就是老前端开发了
|
28
siweipancc 2021-06-04 09:07:08 +08:00 via iPhone
上个世纪的后端水平,现在都标配 filter 了。(你们招会 rxjs redux 的异类后端吗)
|
30
Leviathann 2021-06-04 09:07:25 +08:00 via iPhone
很难想象 Java 不让我写 stream 会是什么样
那代码得膨胀多少 |
31
jonathanchoo 2021-06-04 09:07:25 +08:00
从老板角度来说,你可以随时拍拍屁股走人,留下的代码怎么办,可以让你现在改成 debug 成本低的方式我觉得没毛病。
但是从程序员的角度来说,在场景中没有人支持你尝试新特性,对自身成长的确难以接受。 |
32
play78 2021-06-04 09:07:39 +08:00
---
List.of(1, 2, 3).stream().filter(i -> i & 1 == 0).collect(Collectors.toList()); --- List<Integer> list = Arrays.asList(1, 2, 3); List<Integer> ids = new ArrayList<>(); for(int i=0; i<list.size(); i++) { if((list.get(i) & 1) == 0) { ids.add(list.get(i)); } } ---- 下面那个看起来顺眼一点 [doge] |
33
hronro 2021-06-04 09:09:37 +08:00 via iPhone
兄弟,filter 是 ES5 里面的,ES5 是 2009 年发布的,都发布十多年了,不是什么新标准
|
34
darknoll 2021-06-04 09:09:49 +08:00
es6 都不用,那索性用 jquery 算了
|
35
CodeCodeStudy 2021-06-04 09:12:41 +08:00
这不是技术问题,这是背锅问题,改动不麻烦的话就听他的吧,如果很多地方都限制你却不明确告知,那么还是跑路吧
|
36
lagoon 2021-06-04 09:13:55 +08:00
那些说 Java 还在用 jdk6 、7 、8 的,就别秀了。
不同语言,不同生态,能这么对比吗?你咋不说汉语用了几千年,几百年才升级一次,摇头晃脑,表示编程语言太急功近利。Java 之类的根本没必要产生,C 语言才诞生几年?更别说 COBOL 以及更早的前辈。 这种例子比比皆是,不懂还要管的宽。比如兵乓球打的好,可能去管足球。 技术早就分化,一些人为了不失去权柄,用尽各种方法。 |
37
ryougifujino 2021-06-04 09:14:04 +08:00
上司太菜是原罪。
|
38
Navee 2021-06-04 09:14:59 +08:00
我上家不允许使用 jdk8 的 lamada 表达式,原因是很多人看不懂
|
39
kiritoxf 2021-06-04 09:15:06 +08:00
我以前也是像你这样
但是换个角度想想,项目是公司的,不是个人的,不要这么较真 |
40
ooxiaoming 2021-06-04 09:15:09 +08:00
很明显你们公司前端没啥需求量,趁早跑路吧
|
42
lusi1990 2021-06-04 09:17:55 +08:00 1
从领导为你考虑,不让你加班,你还不满意
|
43
antiquezzz 2021-06-04 09:20:03 +08:00 20
其实就是觉得你不靠谱,觉得你哪天就不在了(被踢了或自己跑了),前端衔接不到位,工作交接给他那就是添麻烦。入职不久就先按照原有模式搞一版,搞完稳定了,信任建立起来就好办了。目前他不可能信任你,如果老版本你搞不定或者中途跑路了或者和你配合不顺利想让你被跑路了,还放任你折腾,那不就是给自己挖坑
|
44
liyang5945 2021-06-04 09:22:03 +08:00
跟我前同事很像,也是前端,代码里不是 for 循环就是 if else,不久前他一拍屁股跑了,现在接手他的代码快给我整吐了
|
45
3dwelcome 2021-06-04 09:24:09 +08:00 3
"公司还行,但是没有干长的打算"
过几个月你走了,留下了一堆无法看懂,有 BUG 的代码,那么同事才是最惨的好吧。 我写代码一直是为了给人看懂,合理减少心智负担。 |
46
manami 2021-06-04 09:24:44 +08:00
啊这……
|
47
luqingliang 2021-06-04 09:26:05 +08:00
开团开团
|
48
akakidz 2021-06-04 09:26:09 +08:00
你这领导自己不了解还怀疑别人, 不会有人还不用 es6 吧(狗头
|
49
sagaxu 2021-06-04 09:27:17 +08:00 via Android
java8 有 filter,java8 以上使用率超过 3/4,很多项目 /框架 /lib 不支持 java6/7
|
50
z740713651 2021-06-04 09:28:02 +08:00
选 leader 比选公司重要啊
leader 的性格很大决定了团队的氛围 也决定了你的能力与经济还有职位上的收获 |
51
love 2021-06-04 09:29:34 +08:00
太菜就算了,还不肯学哪怕这点新东西(其实也不新)是要命,这种公司趁早走
|
52
TomVista 2021-06-04 09:30:26 +08:00
我最近在把项目中的 flex 布局全部替换掉,因为在有些设备上表现不可控,也没人能解决。sass 预处理过兼容了,但是还是在一小撮不同的环境下,表现的不一致。
从这个角度来看,新特性 还是要根据项目实际情况来采用,况且 flex 也不那么新,这边全是移动端,也搞过兼容,但是还是出现了各种各样的问题,这出了问题只能由开发团队担着,绩效什么的就不要想了,不加班加点 007 解决问题就烧香了。 |
53
rapperx2 2021-06-04 09:34:19 +08:00
公司不是你说了算,那你多想什么。叫你怎么做你就怎么做,工资正常发你就行了,觉得公司不行走人就行了。简单明了
|
54
sewer 2021-06-04 09:35:55 +08:00
@TomVista https://caniuse.com/?search=flex 你们打算兼容 2.x - 4.3 ??
|
55
lneoi 2021-06-04 09:36:29 +08:00
他重点是排错和能够完成修 bug 吧, 还挺合理的, 有人能够为你抗锅
不合理的是为什么要让不熟悉前端的人来做这件事情 |
56
windyCity1 2021-06-04 09:38:11 +08:00
@kiritoxf #39 是的,从项目和公司的层面来说这么说没问题。
个人发展角度,建议跑路,同事不会这个语法不能学?作为 leader 不能学?不能约束团队进行学习? 对公司来说项目能跑就行,完全没问题的。 对个人不行,影响个人职场竞争力。 |
57
lightjiao 2021-06-04 09:38:21 +08:00
map reduce filter 几乎是每个语言都必备的库,Java 会没有?
|
58
wangxin13g 2021-06-04 09:38:49 +08:00
告诉他 java 有个东西叫 streamAPI
|
59
kop1989 2021-06-04 09:39:16 +08:00
这件事有两个角度。
一个是从管理,软件工程角度看。一个是从技术上看。 技术上看鄙视他没问题。 但从软件工程角度看,你上司没什么问题。 |
60
hhjswf 2021-06-04 09:39:16 +08:00
大部分小作坊都这样吧,我现在就是,总监不懂的东西他不让我用,跑路没人维护
|
61
3dwelcome 2021-06-04 09:39:59 +08:00
@TomVista "我最近在把项目中的 flex 布局全部替换掉"
不用怀疑浏览器的实现。90%可能性,是你们 flex 代码里有 BUG 。 你可以找个很古老的 chrome 内核作为开发平台,新浏览器对代码的容错率,实在是太高了。 |
62
zhangbaoliang 2021-06-04 09:40:02 +08:00 2
你上司说的是放屁。但是我认为 for 比 filter 维护性好很多,代码也简单。很多语法糖其实没啥用还增加了系统的复杂度。
|
63
wangwei1025 2021-06-04 09:41:06 +08:00 1
我要用这个,我要用那个,这样提升自己技术 ,以后跳槽方便。
|
64
Obrigado0815 2021-06-04 09:42:22 +08:00
跑路吧
|
65
mastcer 2021-06-04 09:42:24 +08:00
告诉他 java 有个东西叫 streamAPI
|
66
ian19znj 2021-06-04 09:42:27 +08:00 20
我来拉仇恨了,前端就是最没技术含量的,正因为这样,所以他们才需要折腾新框架新语法来显得自己多牛逼。
程序员重要的是抽象逻辑思维,而不是你用 for 还是 filter,为了这点破事吵,只能说明你太闲了,或者说你就真的只是个美工。 |
67
nasmatic 2021-06-04 09:47:20 +08:00 1
上司说的一点问题都没有,你都准备跑路了,留下一堆他不懂的 es6 。要是听了你的,你跑路了,下次在招个说要全改成 wasm 再干到一半跑路,那还玩个屁
|
68
hewelzei 2021-06-04 09:47:39 +08:00 2
@ian19znj 好笑,filter 严格意义来说不是循环,是递归。为什么前端不推荐 for,因为现在前端流行函数式编程,函数式编程要尽量避免副作用,所以函数式编程里没有 for 循环而用递归替代。你说的抽象逻辑思维,难道函数式不够抽象吗?
|
69
lei2j 2021-06-04 09:48:34 +08:00
Java 里没有 filter?领导连 Stream 都没用过吗
|
70
meteor957 2021-06-04 09:48:35 +08:00 1
lz 小心了,可能要得罪一些人,他们听这话心理不舒服。
|
71
xinyu0 2021-06-04 09:49:06 +08:00 via iPhone
兄弟,filter 是 es5 的数组方法,已经好多年了,,,,
|
72
duan602728596 2021-06-04 09:49:38 +08:00 1
我其实不太喜欢用 es5 、es6 这个说法来区分新 js 语法和旧 js 语法,js 就是 js,所谓的 es6 、es2018 、es2020 都已经进入标准了,那么它就是白纸黑字清清楚楚写着的 ECMAScript 标准。也就是说写 var a = 5; 也是 js ; for await (const item of list) {} 也是 js 。
前端不纠结语法是因为有 babel 、core-js 这两个利器,它极大大大大大的减少了开发的负担,不用关心语法的兼容问题。下能兼容 ie7,上能跑到 chrome91,跨越几十个版本。 |
73
haaro 2021-06-04 09:49:48 +08:00
Java Stream:???
|
74
feeeff 2021-06-04 09:49:57 +08:00
@antiquezzz 是正解 与技术无关
|
75
zw1one 2021-06-04 09:50:40 +08:00
对上司来说,实现的功能都一样,为什么不用更稳妥的办法。用新特性除了方便你跑路以外对他只有坏处没有好处。
所以,快准备跑路,业务导向的公司都是这样的。 |
76
TomVista 2021-06-04 09:51:23 +08:00
@3dwelcome 额,是全平台一套样式,全部的小程序,web,以及不知道要不要上的 rn 和快应用,潜在的 web 套壳 app,所以我认为上帝来了也搞不清楚 flex 到底哪里出了问题 ,
|
77
undefine2020 2021-06-04 09:51:31 +08:00
我还碰到过不让用 redis 的,理由是 mysql 也可以实现队列为什么要用 redis
|
78
fulvaz 2021-06-04 09:51:36 +08:00
@murmur 这就很偏见了~
有一说一, filter 写出来的是无副作用代码, 读起来比 for 舒服多了. 现在看到 for 就皱眉. 意味着要理解对外部状态的处理, 还要考虑这几个状态还会被谁给改了. |
79
ayang11 2021-06-04 09:52:06 +08:00
java 里有 filter 方法!!!
|
80
yunyuyuan 2021-06-04 09:52:17 +08:00
我一般单行简单操作用 filter,别的还是用 for,看起来易懂些
|
81
ada87 2021-06-04 09:52:23 +08:00
如果公司比较闲,你可以就听你领导的,在项目上敷衍了事,划水就行了,多用点时间学习,干自己的事,提升自己。
如果这个时间没有,果断换就是了,一般公司都不要指望在工作的项目上能有多大成长。 |
82
wangxin13g 2021-06-04 09:52:32 +08:00
@ian19znj 函数式编程不够抽象?
|
83
bingyiyu 2021-06-04 09:52:47 +08:00
如果是我会高血压上来~刚从 node 转 java,之前 node lodash 耍的飞起~后面发现 java 也有 stream 一本满足。
倒是也有个同事说 lamada 表达式可读性差 但是写起来真的是爽啊,没这些玩意不知道写出来的代码多拧巴了 |
85
ryd994 2021-06-04 09:53:29 +08:00 via Android 6
上司这个理由是没错。但是解决方法错了。他说的问题是确实存在的。但是直接说不准用,这其实是在解决提出问题的人。
应该要让全组人都会用。哪怕现在不用,作为内部培训,知识储备,也是有益无害。到时候再和技术骨干一起讨论是否使用新特性。 更好的办法是: 1. 现在还不可以用,写的代码先放在其他 branch 上。将来可以 cherry pick 回来。 2. 你准备一下,开堂课,把全组大部分人都教会。 3. 先在不太重要的功能上使用。所有新特性必须提供禁用的开关。出问题了先用回老代码再 debug 。 |
86
murmur 2021-06-04 09:53:57 +08:00
@fulvaz js 因为很早参数就支持传函数所以可以尽情的玩语法糖
我这个人看的很开,对于框架、库,应该积极的接受,不用语法可以用库,反正最后都是要降到 es5 在浏览器里跑,库和语法谁更高贵 至于语法,公司说了算,我们公司用了 react 、vue,但是还是 es5 语法,我希望拉一个写 jquery 的人都可以来打下手,而不是缺人的时候必须火急火燎的招专职前端。 |
87
Vegetable 2021-06-04 09:55:10 +08:00 7
这件事情,你上司是对的,他的理由都很正当。
不然你觉得为什么这么多公司用 JAVA8 ? 你当然可以鄙视他,觉得团队水平低。但是你要小心——编码能力只是个人能力的一小部分,他是你的上司,可能在某些方便比你强很多,比如这件事情体现出来对项目管理的理解上,你远不如他。也许在系统设计上,甚至在前端工程化这件事上他都有更深入的理解。 最好还是调整一下心态 |
88
ymcz852 2021-06-04 09:55:29 +08:00 2
这帖子里转移话题抨击前端的人真的有够让人无语的..
|
91
qiuhang 2021-06-04 09:56:33 +08:00
"java 里面没有 filter",还真就手里拿个锤子,看到啥都是钉子了。
|
92
fulvaz 2021-06-04 09:59:42 +08:00
@murmur 其实只是大家上下文不同就造成了误解
你只需要 jq 撸个页面, 所以用什么语法, 怎么写, 要不要用 react, 都是无所谓的 我可能和几十个前端合作写一个项目, 你轻视的"语法糖"对我们来说其实是救命的. 看需求而定, 相互理解吧~ |
93
sue0917 2021-06-04 10:00:10 +08:00
等你成 Leader,你也会成为你最讨厌的人。。。 如果你考虑不到那些,可能你成不了 Leader
|
94
murmur 2021-06-04 10:00:45 +08:00
|
95
renmu123 2021-06-04 10:04:22 +08:00 via Android
这就自己封装一个 filter 挂到原型链上
|
96
lancelock 2021-06-04 10:07:38 +08:00
不是上面一口一个新特性不稳妥的,可是这也不是新特性啊,这是 es5 的内容不是 es6,都 10 几年了还新啥
另外 java 里显然也是有 filter 的,java8 14 年发布的,也八年了,目前也是绝对主流了,真不知道你们领导活在什么年代 |
97
rurishi 2021-06-04 10:08:10 +08:00
jdk8 就有 filter 了,这玩意是 17 年的
要是再往前用过 rxjava,那就更早有了。。。 不过还是要听领导的,这个项目第一负责人不是你 |
98
mars0prince 2021-06-04 10:15:03 +08:00
这就是 java 的好处了,抱着个 java6,ssh 可以玩一辈子,要不然国内都用 java
|
99
thtznet 2021-06-04 10:16:22 +08:00
改了 for,能跑么? 2 个能跑一个就行,纠结啥。
|
100
myCupOfTea 2021-06-04 10:16:54 +08:00
@murmur 所以 java 没有 stream 吗
|