知识合集

哈喽,我是颜sir,询盘自由网背后的人。做网络营销快6年,运气不错,实现了财务自由,目前全职在家钻研更多赚钱方法。在钻研过程中,我发现网上几乎找不到优质的中文资源。我深知新手入门需经历痛苦挣扎,所以创建了询盘自由网,把我知道的分享给你。

Effect Schema 解码后为什么少了字段?

Schema.Struct 解码时默认剔除未声明的字段。想严格拒绝多余字段,解码时传入 onExcessProperty 选项;想保留,就在 Schema 里声明。

Effect Schema 的 brand 怎么防止 ID 传错?

用 Schema.brand 给形状相同的值不同的类型身份,让用户 ID 不能当订单 ID 传;以及 brand 叠在校验上、它的保证边界和适用范围。

Effect Schema 的 transform 怎么写自定义转换?

用 Schema.decodeTo 搭配 SchemaTransformation.transform,给出解码与编码两个方向,把外部表示转成内部类型;并说明转换里为什么不该做 IO。

Effect 里怎么给已有的服务加日志?

用一个依赖自己所提供服务的 Layer 包装原实现,原实现一行不改。这篇用 UserRepo 的日志装饰层讲清写法和组装顺序。

Effect 的 Queue 和 PubSub 有什么区别?

都是一个 fiber 发、别的 fiber 收,Queue 是把任务分给消费者,PubSub 是把事件广播给所有订阅者。讲清两者的语义、缓冲策略和 PubSub 的订阅时序。

Effect 里怎么用 Semaphore 限制并发数?

用 Semaphore.make 创建许可,再用 withPermits 包裹要限流的 Effect,就能让一百个调用同时发起、同一时刻只有 n 个在执行。也讲清它限制的是并发度而不是速率。

Effect v4 怎么标注 API 的稳定性?

Effect 4.0.5 不再用 effect/unstable 路径,而是用每个导出上的 @stability 标签表达稳定性。这篇讲三种标签的含义、这样设计的好处,以及路径里没有 unstable 带来的新陷阱。

Effect 4.0.5 里哪些模块仍是 unstable?

按 effect 4.0.5 的 @stability 标签扫描结果,列出整个模块都是 unstable 的目录、整体 stable 但个别声明不是的 mixed 模块,以及 experimental 模块。

什么时候不该用 Effect Stream?

Stream 多一层抽象、多一套 API。数据量小、单次请求、需要广播共享或按元素协调状态时,更简单的工具更合适。