mcpField
E
effect-patterns-hub

effect-patterns-hub

github.com/mepuka开发549 次安装44 周前更新
代码仓库

关于 effect-patterns-hub

effect-patterns-hub 是面向 Effect-TS 开发者的模式参考技能,提供可检索的实现示例和做法,用于查找模式、比较方案和学习 Effect 功能。模式覆盖错误处理、并发、流、测试及其他开发主题。

主要功能

  1. 01提供 130 多个 Effect-TS 模式
  2. 02按主题和用途查找示例
  3. 03比较同一问题的实现方式
  4. 04覆盖从入门到高级的模式
  5. 05支持关键词与标签搜索

适用场景

  1. 01查找 Effect 错误处理示例
  2. 02参考并发或流处理实现
  3. 03设计服务层与依赖注入
  4. 04编写带模拟依赖的测试

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mepuka/effect-ontology --skill effect-patterns-hub

安装后在 Claude Code 中输入/effect-patterns-hub确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

patterns/
_README.review.md
_start_here.json
access-config-in-context.mdx
accessing-current-time-with-clock.mdx
accumulate-multiple-errors-with-either.mdx
add-caching-by-wrapping-a-layer.mdx
add-custom-metrics.mdx
avoid-long-andthen-chains.mdx
beyond-the-date-type.mdx
brand-model-domain-type.mdx
brand-validate-parse.mdx
build-a-basic-http-server.mdx
combinator-conditional.mdx
combinator-error-handling.mdx
combinator-filter.mdx
combinator-flatmap.mdx
combinator-foreach-all.mdx
combinator-map.mdx
combinator-sequencing.mdx
combinator-zip.mdx
comparing-data-by-value-with-structural-equality.mdx
compose-scoped-layers.mdx
conditionally-branching-workflows.mdx
constructor-fail-none-left.mdx
constructor-from-iterable.mdx
constructor-from-nullable-option-either.mdx
constructor-succeed-some-right.mdx
constructor-sync-async.mdx
constructor-try-trypromise.mdx
control-flow-with-combinators.mdx

详细介绍

Effect 模式集

目的:快速访问 EffectPatterns 仓库中精选的 130 多种 Effect-TS 模式。使用此技能查找特定实现模式、比较不同方法并参考最佳实践。

触发条件

  • 查找特定的 Effect 模式或惯用写法
  • 需要 Effect 概念的实际示例
  • 想查看同一问题的多种解决方法
  • 比较实现策略
  • 学习新的 Effect 功能

模式库位置

本地模式:.claude/skills/effect-patterns-hub/patterns/
文档:docs/effect-patterns/
数量:130 多种 MDX 格式的模式

快速决策树

我需要……
创建 Effect
转换与组合
控制流
错误处理
Concurrency
Services & Dependency Injection
Resource Management
Streaming
Schema & Validation
数据类型
模式匹配
HTTP 与 Web
测试
可观测性
运行时与执行
配置
时间与调度
项目设置
高级概念

模式分类

按技能等级

初级(入门)

  • 构造器模式(succeed、fail、sync、async)
  • 基本组合器(map、flatMap、tap)
  • 简单错误处理(catch、catchTag)
  • Effect.gen 基础
  • runPromise/runSync

中级(构建应用)

  • 服务与层
  • Schema 校验
  • HTTP 服务端与客户端
  • 资源管理
  • 并发基础(Effect.all、fork)
  • 使用 mock 进行测试

高级(生产系统)

  • 复杂的层组合
  • 自定义运行时
  • 流水线处理
  • 优雅关闭
  • OpenTelemetry 集成
  • 性能优化(Chunk、Ref)
按使用场景

领域建模

  • Schema 定义
  • 品牌类型
  • 带标签的错误
  • 用于可选值或可能失败值的 Option/Either

API 开发

  • HTTP 服务端设置
  • 路由处理
  • 请求校验
  • 错误处理
  • 响应格式化

数据处理

  • 流处理
  • 批处理操作
  • 并行处理
  • 资源安全的流水线

应用架构

  • 服务层设计
  • 依赖注入
  • 模块组合
  • 配置管理

测试

  • Mock 层
  • 测试工具
  • 可测试的服务

可观测性

  • 结构化日志
  • 分布式追踪
  • 自定义指标
  • 性能监控

搜索模式

按关键词

使用 Grep 按关键词搜索模式:

# Find patterns about error handling
grep -l "error" patterns/*.mdx

# Find patterns about concurrency
grep -l "concurrent\|parallel\|fiber" patterns/*.mdx

# Find patterns about HTTP
grep -l "http\|server\|client" patterns/*.mdx

# Find patterns about testing
grep -l "test\|mock" patterns/*.mdx
按 Frontmatter 标签

所有模式都包含元数据:

  • title:易读的名称
  • id:唯一标识符(不含扩展名的文件名)
  • skillLevel:初级、中级、高级
  • useCase:领域建模、错误处理、并发等
  • summary:简要说明
  • tags:用于搜索的关键词
  • related:相关模式的链接
常见搜索

“如何从……创建 Effect?”

  • → 搜索构造器模式:grep -l "constructor" patterns/*.mdx
  • → 查看 constructor-*.mdx 文件

“如何处理……时的错误?”

  • → 搜索错误处理:grep -l "error\|catch\|retry" patterns/*.mdx
  • → 查看 handle-*.mdx 和 pattern-catchtag.mdx

“如何并发运行多个任务?”

  • → 搜索并发:grep -l "concurrent\|parallel\|all\|fork" patterns/*.mdx
  • → 查看 run-effects-in-parallel-with-all.mdx

“如何使用服务?”

  • → 搜索服务:grep -l "service\|layer\|dependency" patterns/*.mdx
  • → 查看 model-dependencies-as-services.mdx、understand-layers-for-dependency-injection.mdx

“如何验证数据?”

  • → 搜索架构:grep -l "schema\|validate\|parse" patterns/*.mdx
  • → 查看 define-contracts-with-schema.mdx、parse-with-schema-decode.mdx

与其他技能集成

Foundations → Patterns Hub

需要基础概念的具体示例时,请查看模式:

  • effect-foundations 讲解概念 → patterns 展示实现方式
Architect → Patterns Hub

设计系统时,请参考架构模式:

  • Layer 组合 → organize-layers-into-composable-modules.mdx
  • 服务设计 → model-dependencies-as-services.mdx
  • 有作用域的资源 → scoped-service-layer.mdx
Engineer → Patterns Hub

实现功能时,查找相关模式:

  • HTTP 端点 → handle-get-request.mdx、validate-request-body.mdx
  • 错误处理 → retry-based-on-specific-errors.mdx
  • 并发 → run-effects-in-parallel-with-all.mdx
Tester → Patterns Hub

编写测试时,请参考测试模式:

  • 模拟服务 → mocking-dependencies-in-tests.mdx
  • 测试 Layer → use-default-layer-for-tests.mdx
  • 可测试的设计 → write-tests-that-adapt-to-application-code.mdx

使用工作流

  1. 确定需求:“我需要用 Effect [做某事]”
  2. 查看决策树:查找上方的相关部分
  3. 阅读模式:使用 Read 工具读取模式文件
  4. 结合上下文调整:将模式应用于具体用例
  5. 查看相关内容:沿着模式 frontmatter 中的 related 链接查找
  6. 咨询 Agent:如果不清楚,请使用 @effect-engineer 或 @effect-architect

反模式检测

如果你发现自己在:

  • 使用命令式循环 → 查看 process-collection-in-parallel-with-foreach.mdx
  • 混用 promises 和 Effects → 查看 constructor-try-trypromise.mdx、solve-promise-problems-with-effect.mdx
  • 编写很长的 andThen 链 → 查看 avoid-long-andthen-chains.mdx、use-gen-for-business-logic.mdx
  • 泄漏需求 → 查看 model-dependencies-as-services.mdx
  • 手动清理资源 → 查看 safely-bracket-resource-usage.mdx

模式文件结构

每个模式文件都遵循以下结构:

---
title: Human-readable title
id: kebab-case-id
skillLevel: beginner | intermediate | advanced
useCase: primary-use-case
summary: Brief description
tags:
  - keyword1
  - keyword2
related:
  - related-pattern-id-1
  - related-pattern-id-2
author: Author name
---

# Title

## Guideline
What to do

## Rationale
Why do it this way

## Good Example
✅ Recommended approach

## Bad Example
❌ What to avoid

## Related Patterns
Links to related patterns

维护

模式从 EffectPatterns repository 同步而来。

更新模式:

cd /tmp
git clone --depth=1 https://github.com/PaulJPhilp/EffectPatterns.git
cp -r EffectPatterns/content/published/* /Users/pooks/Dev/crate/.claude/skills/effect-patterns-hub/patterns/
cp -r EffectPatterns/content/published/* /Users/pooks/Dev/crate/docs/effect-patterns/

总结

  • 涵盖所有 Effect-TS 概念的 130 多种模式
  • 便于快速查找模式的决策树
  • 与现有技能和 Agent 集成
  • 可按关键词、用例和技能级别搜索
  • 展示良好与不良实践的示例
  • 便于深入探索的相关模式

将此技能作为“如何用 Effect……?”的首选参考。

评论

支持 Markdown