关于 principle-make-operations-idempotent
一项编码 Skill,指导将状态变更操作设计为在重试、重启或部分失败后仍收敛到相同的正确状态。适用于构建可靠命令、生命周期操作和处理循环的开发者。
主要功能
- 01让重复运行收敛到一致状态
- 02启动时协调现有状态
- 03按内容等价性清理
- 04通过 PID 检测过期锁
- 05失败后重新生成处理任务
适用场景
- 01让命令可安全重试
- 02从崩溃中恢复操作
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ poteto/ plugins --skill principle-make-operations-idempotent安装后在 Claude Code 中输入/principle-make-operations-idempotent确认已加载。
详细介绍
让操作具有幂等性
设计操作时,应确保无论运行多少次或从何种状态开始,最终都会收敛到正确状态。每个会改变状态的操作都应回答:“如果运行两次会怎样?如果上一次运行中途崩溃会怎样?”
原因: 命令、生命周期操作和处理循环都运行在崩溃、重启和重试很常见的环境中。如果部分状态会改变下一次运行的结果,每次重启都会变成一次调试任务。
模式:
- 收敛式启动:扫描现有状态、清理过时的产物、接管仍在运行的会话
- 基于内容的清理:按内容是否等效进行比较,而非按创建顺序
- 自愈锁:使用基于 PID 的过期锁检测
- 幂等调度:失败的工作可干净地重新生成;每个周期后重新生成最新输入
测试:
- 如果连续运行两次,会怎样?
- 如果上一次运行在任何可能的时点崩溃,会怎样?
- 重新执行是否会收敛到相同的最终状态?
如果任何一个问题的答案是“这取决于留下了什么状态”,那么该操作就需要一个协调步骤。
评论
支持 Markdown