Java 项目该不该用 stream 流来编写代码?考虑 code viewer

2022-03-30 18:11:49 +08:00
 w741069229
8299 次点击
所在节点    Java
95 条回复
TWorldIsNButThis
2022-03-30 18:57:48 +08:00
@w741069229 那建议他们转 go 永远不升 1.18 的那种
adoal
2022-03-30 19:50:32 +08:00
@w741069229 换个新大佬
interim
2022-03-30 20:17:17 +08:00
离了 stream 不会写了 +1
gam2046
2022-03-30 20:18:23 +08:00
@w741069229 #16 有没有一种可能,大佬对项目不够熟悉,目测,看不出类型推导的具体结果,就导致大佬不知道你在干啥。
w741069229
2022-03-30 20:35:58 +08:00
@gam2046 我是新接的,我之前都是梭哈 stream 流,通篇的那种,但是新公司入职后,就不让用了
w741069229
2022-03-30 20:36:12 +08:00
pofycn
2022-03-30 22:21:28 +08:00
能用 steam 梭的统统用 stream 梭 管他呢 [狗头]
zmal
2022-03-30 22:41:33 +08:00
你司大佬排斥 stream 的原因无非这么几条:
1. 可读性差。理论上 lambda 范式的代码可读性会更好。如果可读性变差了,说明姿势不太对,业务逻辑和控制逻辑没有分离。
2. 性能损耗。据说相比 for loop 大约 15%的性能损失。但对业务代码来说是可接受的。
3. 不便调试。这个要看具体案例,个人认为不是问题。
4. 老派守旧。无解,建议换公司。
searene
2022-03-30 23:02:31 +08:00
Stream 出来都多少年了,这都看不懂就不要 review 代码了吧
Vegetable
2022-03-30 23:05:08 +08:00
笑死,这么多人不明白什么叫可读性是吧。
Stream 确实不错,但是最好少用 lambda ,把代码写短不是本事,写清楚才是。
Vegetable
2022-03-30 23:06:23 +08:00
Reviewer 欠你的,在网页上一行一行给你走读代码?
tohuer00
2022-03-30 23:06:54 +08:00
得考虑团队整体水平,防止水平差的同事瞎用,干脆一刀切禁掉省事。比如楼上很多一把梭的我看就很危险。
EscYezi
2022-03-30 23:09:55 +08:00
steam filter map 等 api 语义不比 for 来 for 去清晰多了
顺便推荐 vavr 库,更简洁更清晰
v2eb
2022-03-30 23:13:26 +08:00
想看下可读性差的 stream 流形式代码是怎么写的。
gtx990
2022-03-30 23:22:24 +08:00
Java 的完全没问题,Scala 的吐了
lux182
2022-03-30 23:33:36 +08:00
想知道不用等理由
Rocketer
2022-03-30 23:35:16 +08:00
这是要照顾纯 Java 6 程序员么?哪怕是写过 JS 的也能看懂 stream 吧?
yazinnnn
2022-03-30 23:47:11 +08:00
你们前端也禁用 lambda 吗?
RobberPhex
2022-03-31 00:02:16 +08:00
用 stream (甚至用函数式编程)都会遇到一个问题,就是堆栈不可回溯了。你只能看到这个 stream 的栈,再往上就看不到上一个 stream/lambda 了,只能看到 stream 库的栈了。
所以我个人觉得,单个语句中,stream 可以用一次,不能再多。

当然,回到问题,公司项目,怎么约定就怎么来,协作重要。
Jooooooooo
2022-03-31 00:35:55 +08:00
里面抛个空指针不好查.

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

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

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

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

© 2021 V2EX