03-29 微信群聊天记录整理

#1

Janry 15:19 30行代码实现Redux Callbag副作用隔离

工业聚 15:24

工业聚 15:25 我真的只是随便夸一夸,不要太认真[捂脸]

Janry 15:26 哈哈[调皮]

工业聚 15:26 不过,知乎问答里对 callbag 的几个批评,我觉得都不够扎实

dyf 15:27 名人名言 [呲牙]

工业聚 15:30 callback 拥有 generator, promise, async/await 的全部能力,反过来却未必成立

工业聚 15:31 regenerator 编译 async/await 就借助 callback + switch-case

工业聚 15:31 callbag 演示了,即便没有 promise 和 async/await,也有另一种途径,把 callback hell 拍平一些

工业聚 15:32 早几年出现,可能比现在更受欢迎一些

工业聚 15:32 现在 promise, generator, async/await 已经「足够」把大部分场景做好

工业聚 15:33 对 callbag 范式,没多少迫切需求 fri3nds .

梓寒 15:34 callbag 支持异步吗

工业聚 15:34 毕竟就连它的竞品 rxjs,也不算大红大紫

Jason²⁰¹⁸ 15:35 好像好久没出现过co 这样的库了

Janry 15:36 callbag就是为了解决异步问题的……

工业聚 15:37 callbag 要解决的问题,可以从其作者对 promise, rxjs 等的牢骚中看出来

工业聚 15:37 对 promise 的牢骚是,new Promsie(f) 的 f 立刻执行了,.then 内部的 return promise 默认拍平了, promise 一定是异步的

工业聚 15:38 Observable/observer 难以沟通,不能去关闭上游数据源

Janry 15:38 对,它的双向通信机制非常给力

工业聚 15:39 所以,callbag 的设计目的包含:1)既可以同步,也可以异步;2)lazy 执行,只有取用时才开始;3)内部有双向沟通机制,可以关闭上游数据源等

工业聚 15:39 callbag 之所以长这样,type 为 012 这种 magic number,则是其作者另一个癖好,他写了一篇文章,讲没有维护者的开源项目

工业聚 15:40 callbag 没有 core library,每个 operator 都很小,每个人都可以轻易复制过去改写,或者自己写一个 fri3nds .

梓寒 15:40 比 clojure 的 transducer 强很多啊

工业聚 15:41 即便 callbag 最后完蛋了,它的模式还是可以在其它地方重新构建出来

工业聚 15:41 callbag 完蛋的因素有很多,比如 type 012 太随意就可以是致命因素

工业聚 15:41 callbag 的名字难听也是一种

工业聚 15:42 不过,callbag 的双向沟通机制,适配 pipeline operator 的高阶函数组合技巧等,都是可以吸收的

工业聚 15:42 就像 immer 可以完蛋,但它里面 proxy + copy-on-write 的技巧和策略,既不新鲜,也不会绝后

工业聚 15:50 一个多月前,我在另一个群里表达的对 callbag 的观点

工业聚 15:50 从朴素 callback,谈到 promise, async/await, rxjs, 最后到 callbag

工业聚 15:53 [捂脸]这句也是随便夸夸,就像一直吹 elm 必火,最后火了 redux

工业聚 15:54 吹 callbag 必火,谁知道后面火的是什么

工业聚 16:00 5.19 我回去参加 FDCon2018 http://fdcon.topgeek.org/,讲《Make Front-End MVC Great Again》,有兴趣的同学可以一起~

工业聚 16:01 主旨是:我们抛弃的是 Backbone,而不是前端 MVC,当年 Backbone 选取了当时流行的技术栈,underscore, jquery 去构建 MVC,现在我们可以选当前流行的去构建新的 MVC 铁哥 16:18 make xxx great again[捂脸]

工业聚 16:19 潜台词:要开始重谈老掉牙的东西了