w741069229 最近的时间轴更新
w741069229

w741069229

V2EX 第 467748 号会员,加入于 2020-02-04 10:25:02 +08:00
今日活跃度排名 20788
w741069229 最近回复了
63 天前
回复了 userKamtao 创建的主题 问与答 关于升本,我弃考了
@Otho 同意你的观点
感谢各位大佬的回复,我们就基于这个问题,站在`code review`的角度,和`debug`的角度,看下下面这段,

1. @TWorldIsNButThis 大佬说,`stream`的`filter`算子都是无状态的,这一点我同意,本质如下面这段代码,其实只有`map`和`flatmap`会引入时间的复杂度
2. 站在`review`的角度,如果我们要兼容向下的同学,那么这段代码是否存在复杂性的难度?
3. 站在`debug`的角度,我们是否引入了新的**断点**(就是`stream`是无状态的,导致断点其实有时候不太好懂)问题呢?譬如,`idea`可以使用`debug`中的计算器模式进行
4. 站在代码整个的观感角度,下面这段代码是否可以理解不具备代码简洁特性以及代码的整体都美感上
5. 站在代码的复用性上,我认为`steam`的代码其实是对业务有更高的要求,因为我觉得`stream`的复用性其实蛮低的,如果要改的话,就会牵一发而动全身.
6. 站在异常的处理上,我认为`stream`其实是在更严谨的要求一个编程人员对一段结果中产生异常的一个预判,我认为更能锻炼编码人员的功底吧

```java
Optional.ofNullable(search)
.map(SearchResponse::getHits)
.ifPresent(hits -> StreamSupport
.stream(hits.spliterator(), false)
.filter(Objects::nonNull)
.filter(SearchHit::hasSource)
.filter(this::filter)
.......会是 filter
.map(SearchHit::getSourceAsMap)
.filter(Objects::nonNull)
.map(Map::entrySet)
.flatMap(Collection::stream)
.filter(Objects::nonNull)
.map(this::map)
.forEach(.....)
);
```
以上是小弟对`stream`一点见解,希望大家能对我的看法进行批判和讨论吧
@HanMeiM 理解难度吧,别人拿到代码不能直观的看出来,就比如 optional·ofNullbale 这个算子
@anzu 非常同意,但是这样做的结果就是,要么要写一个 predicate,把所有的判断逻辑放进去,这种会增加一定的理解度,但是我认为会有一定的效率提升;要么就要不停的.flilter ,这种得对原生的 api 有一定的了解,我认为好处就是代码比较清晰明了吧。那么这就引申了一个问题,哪种写法更好?
@EscYezi 哈哈哈哈哈。我一直在用
@gam2046 我是新接的,我之前都是梭哈 stream 流,通篇的那种,但是新公司入职后,就不让用了
@pengtdyd 但是公司的大佬不让用 stream 和 optional 这些用法
99 天前
回复了 w741069229 创建的主题 iOS 大家有没有觉得 15.4 掉电速度变快了?
@riceathome 只能说明你没有注意过,我也是 13pm ,能直观感受的,还有卡顿问题,总感觉会变砖
100 天前
回复了 w741069229 创建的主题 iOS 大家有没有觉得 15.4 掉电速度变快了?
@witcherhope 还真不是,但是有很明显的感觉,15.4 之前可以带电一天,15.4 晚上必须要充电了
关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1188 人在线   最高记录 5497   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 63ms · UTC 19:24 · PVG 03:24 · LAX 12:24 · JFK 15:24
Developed with CodeLauncher
♥ Do have faith in what you're doing.