ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

pstack原则07建模领域:用状态机、reducer和注册表表达业务

pstack原则07建模领域:用状态机、reducer和注册表表达业务 pstack原则07建模领域用状态机、reducer和注册表表达业务【免费下载链接】pstack-claudeClaude Code, Codex, Copilot, Pi, OpenCode, Gemini, and Prime Agent versions of Potetos pstack. Rigorous agent workflows with Cursor primitives translated for other harnesses.项目地址: https://gitcode.com/GitHub_Trending/ps/pstack-claudepstack 是 Poteto 的 pstack 技能栈在 Claude Code、Codex、Pi 等 agent 工具上的移植版其中建模领域Model the Domain是 22 条工程原则中的一条把真实的业务领域编码进数据结构而不是散落在满地的 if/else 条件判断里。本文带你快速看懂这条原则的完整指南什么时候该上状态机、什么时候该用 reducer、什么时候该换成注册表registry以及为什么写的时候就选对结构远比事后重构便宜。为什么建模领域排在原则清单里先说一个新手常见的痛代码里到处是isLoading、hasError、isDraft、isPublished这类布尔值每个文件都在猜这些标志位的组合含义。pstack 把这种状况叫作意外的复杂性accidental complexity——不是业务本身复杂而是结构没跟上业务。这条原则的判断标准很直接原文见 SKILL.md新功能上线现有的 if/else 链条又长出一个分支出现第二个必须与第一个保持同步的布尔值同一个形状假设在多个文件里重复出现。只要中了其中一条说明你跳过了建模这一步该停下来重新组织结构了。状态机替代散落的布尔值如何把生命周期逻辑改写成状态机订单、任务、部署……几乎所有带流程的东西都天然是一个状态机。与其维护一堆需要互相配合的标志位不如把状态draft → reviewing → shipped和合法迁移写进结构本身非法状态比如已发布但还在编辑中在结构上就表达不出来每个状态允许的迁移被显式声明分支被结构性地删掉调试时只需看当前处于哪个状态而不必反推五个布尔值。reducer与注册表让状态变更有单一入口除了状态机原则原文还推荐了三类常用结构可以对照自己的代码挑选适用场景推荐结构替代掉的坏味道状态被多处随意修改reducer / 命令-事件模型到处散落的 ad hoc 状态突变根据类型走不同分支注册表、查找表、可判别联合跨文件蔓延的 switch 分支松散参数、形状假设重复带类型的对象/模型每个调用方各自猜参数含义注册表模式尤其值得新手记住用一张映射表替换一串 if/else几乎总能成立而且加新类型时只是加一行表项而不是改五条分支。另外原则强调了一条容易踩坑的点按load → validate → transform → save这种执行顺序切模块是错的应该按领域知识切模块——执行顺序不等于所有权。什么时候该建模、什么时候该克制这条原则不是教条原文写得很清楚不要强行抽象。满足以下全部条件时朴素代码就是好代码当前形状已经很清晰、范围很小不太可能继续膨胀抽象只会增加间接层却没有删掉任何分支、重复规则或非法状态。一个检验法如果这个抽象加进来后你并不能回答它删掉了什么分支/非法状态那它就不值。在 pstack 里如何使用这条原则这条原则不需要手动调用它是 pstack 自动路由的一部分在 poteto-mode 的触发器清单中当你写有状态逻辑、分支很多、或形状假设在文件间重复时agent 会自动应用Model the Domain原则写功能feature 剧本时要求在委派子 agent 写逻辑之前就命名好数据结构与组织方式重构refactoring 剧本时重塑必须删掉分支或非法状态而不是增加间接层。这条原则的完整出处可查 CHANGES.md 中principle-model-the-domain的条目如果你用的是 Cursor 原版生态pstack 各 harness 移植版的项目说明在 README.md。一句话带走建模领域的核心动作只有一个在写下第一个分支之前先问我的代码必须永远不允许什么然后选一个让不允许变得无法表达的结构——状态机、reducer、注册表或任何一个恰好拟合的形态。写对一次后面每一次新增功能都替你省掉一个 if。【免费下载链接】pstack-claudeClaude Code, Codex, Copilot, Pi, OpenCode, Gemini, and Prime Agent versions of Potetos pstack. Rigorous agent workflows with Cursor primitives translated for other harnesses.项目地址: https://gitcode.com/GitHub_Trending/ps/pstack-claude创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表