effect-v4
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseEffect v4 (Beta) - Development & Migration
Effect v4 (Beta) - 开发与迁移
Overview
概述
Comprehensive guidance for Effect v4 development and migration from v3. This skill provides:
- v4 Core Patterns - Guide to building new v4 code with ServiceMap, layers, generators, schema codecs
- v3 → v4 Migration - Step-by-step migration guidance with API renames, behavior changes, and before/after examples
Status: Effect v4 is beta software under active development in effect-smol. The core programming model is stable, but modules may receive breaking changes in minor releases. For production use, review official v4 beta guidance and stability notes.
effect/unstable/*All bundled migration guides are sourced from the official effect-smol migration documentation.
本指南为Effect v4开发及从v3版本迁移提供全面指导,包含以下内容:
- v4核心模式 - 指导如何使用ServiceMap、层、生成器、schema编解码器构建新的v4代码
- v3 → v4迁移 - 分步迁移指导,包含API重命名、行为变更及前后对比示例
状态说明: Effect v4是effect-smol中正在积极开发的测试版软件。核心编程模型已稳定,但模块在小版本更新中可能会出现破坏性变更。若用于生产环境,请查阅官方v4测试版指南及稳定性说明。
所有附带的迁移指南均源自官方effect-smol迁移文档。
effect/unstable/*Quick Triage
快速分类导航
Building v4 Code
构建v4代码
- Core Effect types and combinators (Result, Option, Chunk, Duration):
references/core-usage.md - Broader data types (DateTime, BigDecimal, HashSet, Redacted):
references/data-types-advanced.md - Equality, Order, Hash, Equivalence semantics:
references/behavior-traits.md - Expected errors vs defects, combinators:
catch*references/error-management.md - Sandboxing, Cause inspection, :
catchCausereferences/error-tooling.md - Exit and Cause structure, result inspection:
references/exit-cause.md - Services and dependency injection (ServiceMap, layers):
references/dependency-management.md - Layer construction, memoization, :
{ local: true }references/layer-patterns.md - Resource lifecycles, Scope, :
acquireReleasereferences/resource-management.md - Running effects, removal, run boundaries:
Runtimereferences/runtime-execution.md - Fibers, ,
forkChild, fork options:forkDetachreferences/concurrency.md - References (replaces FiberRef), :
ServiceMap.Referencereferences/concurrency-advanced.md - Schedules, repetition, spaced/fixed/exponential:
references/scheduling.md - Retries, backoff, schedule composition:
references/scheduling-retry.md - Streams, queues, PubSub, STM:
references/streams-queues-stm.md - HTTP clients and external APIs:
references/http-client.md - HTTP servers and API definitions:
references/http-server.md - Request batching and data loaders:
references/request-resolver.md - Caching and memoization:
references/caching.md - Configuration and config providers:
references/configuration.md - Advanced config, redaction:
references/configuration-advanced.md - Logs, metrics, tracing:
references/observability.md - Logger/metrics/tracing setups and exporters:
references/observability-examples.md - Wiring log/metric/trace layers:
references/observability-wiring.md - Sequential workflows and yieldable patterns:
references/generators.md - Schema validation, parsing, encoding (codecs):
references/schema.md - Stream consumption with reducers (Sink):
references/sink.md - Deterministic time in tests (TestClock):
references/testing.md - Broader testing services and test layers:
references/testing-stack.md - Command, FileSystem, Path, Terminal, KeyValueStore:
references/platform-primitives.md - LLM workflows, planning, tool use via Effect AI:
references/ai.md - Bundle-size constrained runtimes (Micro):
references/micro.md - Migrating from Promise/async:
references/migration-async.md - Common pitfalls and runtime errors:
references/troubleshooting.md - Docs-to-guide map from :
llms.txtreferences/docs-index.md
- 核心Effect类型与组合子(Result、Option、Chunk、Duration):
references/core-usage.md - 进阶数据类型(DateTime、BigDecimal、HashSet、Redacted):
references/data-types-advanced.md - 相等性、排序、哈希、等价语义:
references/behavior-traits.md - 预期错误与缺陷、组合子:
catch*references/error-management.md - 沙箱机制、Cause检查、:
catchCausereferences/error-tooling.md - Exit与Cause结构、结果检查:
references/exit-cause.md - 服务与依赖注入(ServiceMap、层):
references/dependency-management.md - 层构建、记忆化、:
{ local: true }references/layer-patterns.md - 资源生命周期、Scope、:
acquireReleasereferences/resource-management.md - 运行Effect、移除、运行边界:
Runtimereferences/runtime-execution.md - 纤程、、
forkChild、fork选项:forkDetachreferences/concurrency.md - 引用(替代FiberRef)、:
ServiceMap.Referencereferences/concurrency-advanced.md - 调度器、重复执行、间隔/固定/指数型调度:
references/scheduling.md - 重试、退避、调度器组合:
references/scheduling-retry.md - 流、队列、PubSub、STM:
references/streams-queues-stm.md - HTTP客户端与外部API:
references/http-client.md - HTTP服务器与API定义:
references/http-server.md - 请求批处理与数据加载器:
references/request-resolver.md - 缓存与记忆化:
references/caching.md - 配置与配置提供者:
references/configuration.md - 进阶配置、脱敏处理:
references/configuration-advanced.md - 日志、指标、链路追踪:
references/observability.md - 日志/指标/链路追踪配置与导出器:
references/observability-examples.md - 日志/指标/链路追踪层的集成:
references/observability-wiring.md - 顺序工作流与可yield模式:
references/generators.md - Schema验证、解析、编码(编解码器):
references/schema.md - 使用归约器(Sink)消费流:
references/sink.md - 测试中的确定性时间(TestClock):
references/testing.md - 进阶测试服务与测试层:
references/testing-stack.md - 命令、文件系统、路径、终端、键值存储:
references/platform-primitives.md - 基于Effect AI的LLM工作流、规划、工具调用:
references/ai.md - 受包大小限制的运行时(Micro):
references/micro.md - 从Promise/async迁移:
references/migration-async.md - 常见陷阱与运行时错误:
references/troubleshooting.md - 基于的文档-指南映射:
llms.txtreferences/docs-index.md
Migrating from v3
从v3版本迁移
- Full migration overview, quick-reference table, ordered checklist:
references/migration.md - Runtime and run functions:
references/migration/runtime.md - Error handling and error channel changes:
references/migration/error-handling.md - Cause flattening and new structure:
references/migration/cause.md - Services and environment changes (Context.Tag → ServiceMap.Service):
references/migration/services.md - Fiber references and context locals:
references/migration/fiberref.md - Forking and fiber APIs (fork → forkChild, etc.):
references/migration/forking.md - Fiber keep-alive behavior changes:
references/migration/fiber-keep-alive.md - Scope and resource lifecycle patterns:
references/migration/scope.md - Layer memoization and Layer.fresh:
references/migration/layer-memoization.md - Generator and Effect.gen changes:
references/migration/generators.md - Yieldable protocol (non-Effect yieldables):
references/migration/yieldable.md - Equality and structural comparison:
references/migration/equality.md
- 完整迁移概述、速查表、有序检查清单:
references/migration.md - 运行时与运行函数:
references/migration/runtime.md - 错误处理与错误通道变更:
references/migration/error-handling.md - Cause扁平化与新结构:
references/migration/cause.md - 服务与环境变更(Context.Tag → ServiceMap.Service):
references/migration/services.md - 纤程引用与上下文本地变量:
references/migration/fiberref.md - Fork与纤程API(fork → forkChild等):
references/migration/forking.md - 纤程保活行为变更:
references/migration/fiber-keep-alive.md - Scope与资源生命周期模式:
references/migration/scope.md - 层记忆化与Layer.fresh:
references/migration/layer-memoization.md - 生成器与Effect.gen变更:
references/migration/generators.md - 可yield协议(非Effect类型的可yield值):
references/migration/yieldable.md - 相等性与结构比较:
references/migration/equality.md
Workflow
工作流程
- Ask which v3 APIs or files are in scope and which failures or regressions to avoid.
- Open only the relevant migration notes from .
references/migration/ - Produce a mapping of v3 to v4 APIs, including before/after code snippets.
- Call out behavior changes, edge cases, and test updates needed.
- Provide a short, ordered migration checklist tailored to the code in question.
- 询问需要处理的v3 API或文件范围,以及需要避免的错误或回归问题。
- 仅打开下的相关迁移文档。
references/migration/ - 生成v3到v4 API的映射,包含前后代码示例。
- 指出行为变更、边缘情况及需要更新的测试内容。
- 根据目标代码提供简短的有序迁移检查清单。
Example Requests
示例请求
- "Migrate this v3 usage to v4 and explain the new run functions."
Runtime - "Update our v3 error handling to v4 and show before/after examples."
- "We use FiberRefs and forking; what needs to change in v4?"
- "Explain the generator/yieldable changes and update this Effect.gen usage."
- "Do we need to change any Scope or Layer memoization behavior in v4?"
- "将这段v3的用法迁移到v4,并解释新的运行函数。"
Runtime - "将我们的v3错误处理更新到v4,并展示前后示例。"
- "我们使用FiberRef和forking;v4中需要做哪些变更?"
- "解释生成器/可yield的变更,并更新这段Effect.gen用法。"
- "v4中我们需要修改Scope或Layer记忆化的行为吗?"
References - v4 Core
参考文档 - v4核心
Comprehensive v4-specific guides (all updated for v4 APIs, no deprecated patterns):
- - Core Effect types and combinators (Result, Option, Chunk)
references/core-usage.md - - DateTime, BigDecimal, HashSet, Redacted
references/data-types-advanced.md - - Structural equality by default, Equal, Order, Hash
references/behavior-traits.md - -
references/error-management.mdrenames,catch*,catchReasoncatchEager - -
references/error-tooling.md, sandboxing, Cause inspectioncatchCause - - Flattened Cause structure, Reason iteration
references/exit-cause.md - - ServiceMap, services, layers
references/dependency-management.md - - Cross-provide memoization,
references/layer-patterns.md{ local: true } - -
references/resource-management.md(wasScope.provide)Scope.extend - -
references/runtime-execution.mdremoved, run* at the edgeRuntime<R> - -
references/concurrency.md/forkChild, fork options, keep-aliveforkDetach - -
references/concurrency-advanced.md(wasServiceMap.Reference)FiberRef - - Schedules and repetition
references/scheduling.md - - Retries and backoff
references/scheduling-retry.md - - Streams, queues, PubSub, STM
references/streams-queues-stm.md - - HTTP clients
references/http-client.md - - HTTP servers
references/http-server.md - - Request batching
references/request-resolver.md - - Caching and memoization
references/caching.md - - Configuration
references/configuration.md - - Advanced config, redaction
references/configuration-advanced.md - - Logs, metrics, tracing
references/observability.md - - Concrete logger/metrics/tracing setups
references/observability-examples.md - - Wiring observability layers
references/observability-wiring.md - - Effect.gen and yieldable patterns
references/generators.md - - Schema codecs (decode/encode)
references/schema.md - - Stream consumption with Sink
references/sink.md - - TestClock and deterministic time
references/testing.md - - Test layer composition
references/testing-stack.md - - Command, FileSystem, Path, Terminal
references/platform-primitives.md - - LLM workflows via Effect AI
references/ai.md - - Bundle-size constrained runtimes
references/micro.md - - Migrating from Promise/async
references/migration-async.md - - Common pitfalls
references/troubleshooting.md - - Version guidance
references/versioning.md - - Docs-to-guide routing map
references/docs-index.md
全面的v4专属指南(均已针对v4 API更新,无已弃用模式):
- - 核心Effect类型与组合子(Result、Option、Chunk)
references/core-usage.md - - DateTime、BigDecimal、HashSet、Redacted
references/data-types-advanced.md - - 默认结构相等性、Equal、Order、Hash
references/behavior-traits.md - -
references/error-management.md重命名、catch*、catchReasoncatchEager - -
references/error-tooling.md、沙箱机制、Cause检查catchCause - - 扁平化的Cause结构、Reason遍历
references/exit-cause.md - - ServiceMap、服务、层
references/dependency-management.md - - 跨提供记忆化、
references/layer-patterns.md{ local: true } - -
references/resource-management.md(原Scope.provide)Scope.extend - -
references/runtime-execution.md已移除,在边界处使用run*Runtime<R> - -
references/concurrency.md/forkChild、fork选项、保活机制forkDetach - -
references/concurrency-advanced.md(原ServiceMap.Reference)FiberRef - - 调度器与重复执行
references/scheduling.md - - 重试与退避
references/scheduling-retry.md - - 流、队列、PubSub、STM
references/streams-queues-stm.md - - HTTP客户端
references/http-client.md - - HTTP服务器
references/http-server.md - - 请求批处理
references/request-resolver.md - - 缓存与记忆化
references/caching.md - - 配置
references/configuration.md - - 进阶配置、脱敏处理
references/configuration-advanced.md - - 日志、指标、链路追踪
references/observability.md - - 具体的日志/指标/链路追踪配置
references/observability-examples.md - - 集成可观测性层
references/observability-wiring.md - - Effect.gen与可yield模式
references/generators.md - - Schema编解码器(解码/编码)
references/schema.md - - 使用Sink消费流
references/sink.md - - TestClock与确定性时间
references/testing.md - - 测试层组合
references/testing-stack.md - - 命令、文件系统、路径、终端
references/platform-primitives.md - - 基于Effect AI的LLM工作流
references/ai.md - - 受包大小限制的运行时
references/micro.md - - 从Promise/async迁移
references/migration-async.md - - 常见陷阱
references/troubleshooting.md - - 版本指导
references/versioning.md - - 文档-指南路由映射
references/docs-index.md
References - v3 → v4 Migration
参考文档 - v3 → v4迁移
- - Start here: full overview, quick-reference table, ordered checklist
references/migration.md - - Cause flattening and structure
references/migration/cause.md - - Equality and comparison changes
references/migration/equality.md - - Error channel and catch* renames
references/migration/error-handling.md - - Fiber lifecycle changes
references/migration/fiber-keep-alive.md - - FiberRef and References changes
references/migration/fiberref.md - - Fork, forkChild, forkDetach changes
references/migration/forking.md - - Effect.gen pattern updates
references/migration/generators.md - - Layer.fresh and memoization
references/migration/layer-memoization.md - - Runtime and run* functions
references/migration/runtime.md - - Scope and resource lifecycle
references/migration/scope.md - - Context.Tag → ServiceMap.Service
references/migration/services.md - - Yieldable protocol changes
references/migration/yieldable.md
- - 从这里开始:完整概述、速查表、有序检查清单
references/migration.md - - Cause扁平化与结构
references/migration/cause.md - - 相等性与比较变更
references/migration/equality.md - - 错误通道与catch*重命名
references/migration/error-handling.md - - 纤程生命周期变更
references/migration/fiber-keep-alive.md - - FiberRef与引用变更
references/migration/fiberref.md - - Fork、forkChild、forkDetach变更
references/migration/forking.md - - Effect.gen模式更新
references/migration/generators.md - - Layer.fresh与记忆化
references/migration/layer-memoization.md - - 运行时与run*函数
references/migration/runtime.md - - Scope与资源生命周期
references/migration/scope.md - - Context.Tag → ServiceMap.Service
references/migration/services.md - - 可yield协议变更
references/migration/yieldable.md