Guaidaodl 最近的时间轴更新
Guaidaodl

Guaidaodl

V2EX 第 82188 号会员,加入于 2014-11-17 23:34:37 +08:00
今日活跃度排名 21621
Guaidaodl 最近回复了
阳性以后自动居家办公七天. 七天之后还没有阳可以继续申请居家办公, 工资照发.

有一天太难受, 我还请了一个月只有一天的全薪病假.
22 天前
回复了 zhang3x7 创建的主题 程序员 面临 35 岁危机的各位为什么不考虑润美
对中国人来说, 润美不如润去新加坡. 当然新家坡也是比较卷的, 不过就互联网来说没有国内这么卷.
28 天前
回复了 caobug 创建的主题 Android 请教 Android Activity 重建
如果想要防止 SplashActivity 重建导致初始化流程多次调用, 应该把 shouldBuild 变成 AtomicBoolean, 然后一开始就 compareSet(true, false).

不应该是初始化才设置成 false. 不然你如果初始化还没有完成(如果你的初始化流程有线程切换)就又触发了 onCreate 就会运行两次.
28 天前
回复了 caobug 创建的主题 Android 请教 Android Activity 重建
听起来是多线程问题啊. 读写 shouldBuild 都在同一个线程吗?
144 天前
回复了 KunMinX 创建的主题 Android 简单分享下我对 MVI 的理解
@KunMinX
通常实现是反过来吧。用户定义一个不可变 State ,Reducer 中操作的自动生成的可变对象。
144 天前
回复了 KunMinX 创建的主题 Android 简单分享下我对 MVI 的理解
@reactna1ve

3. 就你的描述来看,我觉得你的分层做得不够好。MVVM 分层的其中一个目标就是让逻辑更内聚。View 层不保存状态,只响应变化 ViewModel 的变化,你需要状态应该都在 VM 中。
一个比较难处理一点的就是有些操作中间可能需要在用户响应,比如弹窗需要用户点击确认或取消。但是其实这种有了协程后也比较容易处理了,调用一个 suspend 方法去等待,直到用户响应就行。

5 其实 RxJava 和 Flow 都出有区分状态和事件的啊。比如 RxJava 状态是 BehaviorSubject ,事件是 PublishSubject 。只有 LiveData 是单纯的状态,需要事件的时候我们会使用自定义的 PublishData ,不使用 LiveData
144 天前
回复了 KunMinX 创建的主题 Android 简单分享下我对 MVI 的理解
MVI 看起来就是模仿 React + Redux 吧。但是这种模式的一个基础就是 React 是有 VDOM 层,Android 原来可没有。到了 Compose 出来之后,用这种类似 Redux 的方案倒是比较合理了。毕竟 Compose 的 API 基本就是全盘抄 React 的(实现很不一样)。

Redux 这种模式之前也曾经模仿过,不过实际用下来发现几个不太方便的地方。

1. 定义很多 action(intent). 其实面向对象中,调用方法就是发消息。真的用 action ,实践中其实通常也是直接分发给 reducer 的不同的方法处理的,直接调用方法其实更方便。

2. 改变状态很繁琐,虽然 data class 自动生成 copy 方法,但是依然不太方便。

3. 就是你提到的手动 diff 还挺麻烦的。

其实你如果去看看现在的 Redux 写法,1 和 2 都被改善了。不用再手动定义 Action 的名字,而是自动生成跟 reducer 中方法名一样的 action 。同时再 Reducer 中,你处理也不再是一个不可变的数据,而是可以直接把 State 当前一个可变的对象直接修改。
还有就是 Capslock 跟 Ctrl 肯定是要互换位置
AutoHotkey 直接将 Alt+X/C/V 映射到 Ctrl+X/C/V
我看见坚果云是推荐使用 Boxcryptor. 自建的网盘也可以吧
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   实用小工具   ·   1221 人在线   最高记录 5497   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 30ms · UTC 16:14 · PVG 00:14 · LAX 08:14 · JFK 11:14
Developed with CodeLauncher
♥ Do have faith in what you're doing.