Skip to content

Conversation

@LanceAdd
Copy link
Member

fix: #4624
本次 PR 新增了 gexecutor 组件,这是一个通用的执行器工具,用于简化函数执行流程的管理:

✨ 新增功能

  • gexecutor 组件:新增了一个通用的执行器工具,支持在主函数执行前后添加前置和后置处理逻辑
  • 泛型设计:采用泛型设计,支持任意输入类型 [T]和输出类型 R
  • 链式调用:支持 WithBeforeWithMainWithAfter链式配置
  • 错误处理:内置错误处理机制,包含 ErrMainFuncNotSet错误定义

🧪 测试覆盖

  • 为 gexecutor 组件编写了全面的单元测试,涵盖以下场景:
    • 基本功能测试
    • 前置处理WithBefore测试
    • 后置处理WithAfter测试
    • 前后置处理联合使用测试
    • 错误处理测试
    • 上下文处理测试
    • 链式调用测试
    • 泛型类型使用测试
    • 模板复用测试,验证了 WithXxx 方法返回新实例的特性,支持安全的执行器模板复用

🔧 设计亮点

  • 实例隔离:每次 WithXxx 调用返回新实例,不影响原始实例,支持模板复用
  • 灵活性:所有 WithXxx 方法都是可选的,可根据需要灵活组合使用
  • 上下文感知:支持上下文传递,便于追踪和取消操作
  • 错误传播:完善的错误处理和传播机制

💡 使用场景

  • 业务逻辑执行(前置验证、后置通知等)
  • 数据处理管道(预处理、转换、后处理)
  • 模板复用(创建通用执行器模板并派生特定实例)

LanceAdd and others added 2 commits January 23, 2026 10:02
- 实现了支持泛型的Executor结构体,可执行带前后置钩子的函数
- 提供New、WithMain、WithBefore、WithAfter和Do等核心方法
- 支持链式调用和模板复用功能
- 包含完整的单元测试覆盖基本功能、错误处理和复杂场景
- 提供中英文README文档说明使用方法和API接口
- 在 Executor 结构体中新增 onErrorFunc 字段用于错误处理
- 实现 WithOnError 方法用于设置错误处理器
- 在 Do 方法中添加错误检查逻辑,发生错误时调用错误处理器
- 更新文档说明 WithAfter 和 WithOnError 的执行条件差异
- 添加错误处理相关的单元测试用例
- 补充 README 中关于错误处理和闭包处理隐式输入的示例
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant