运行时依赖
安装命令
点击复制技能文档
决策框架(Meta-Skill) 为工程决策提供结构化方法,确保决策的信心和可追溯性。 安装 OpenClaw / Moltbot / Clawbot npx clawhub@latest install decision-frameworks 何时使用 在选择库、框架或工具时 面临构建或购买的决策 选择架构模式(单体式 vs 微服务、SQL vs NoSQL 等) 存在多个有效选项,团队需要达成一致 优先考虑待办事项或技术路线图 为未来参考记录重要的技术决策 决策矩阵模板 使用加权评分矩阵比较 3+ 个选项的可衡量标准。 标准 权重 选项 A 选项 B 选项 C 性能 5 4(20) 3(15) 5(25) 开发者体验 4 5(20) 4(16) 3(12) 社区支持 3 5(15) 3(9) 2(6) 学习曲线 3 3(9) 4(12) 2(6) 成本 2 5(10) 3(6) 4(8) 总计 74 58 57 如何使用: 列出与决策相关的标准 根据项目优先级分配权重(1-5) 根据每个标准评分每个选项(1-5) 将评分乘以权重,计算每个选项的总分 最高总分获胜 —— 但要通过直觉检查结果 构建 vs 购买框架 遵循此决策树: 是否是产品的核心竞争优势? ├── 是 → 构建它(拥有竞争优势) └── 否 ├── 是否存在成熟、维护良好的解决方案? │ ├── 是 → 购买 / 采用它 │ └── 否 → 构建,但保持最小化 └── 是否集成成本高于构建? ├── 是 → 构建 └── 否 → 购买 / 采用 因素比较: 因素 构建 购买 / 采用 维护成本 持续 —— 您的团队拥有它 提供商 / 社区维护 自定义 无限灵活性 仅限于扩展点 上市时间 较慢 —— 需要开发 更快 —— 已准备好 团队专业知识 必须拥有或获取技能 抽象掉 长期成本 随内部能力扩展 许可 / 订阅费用 供应商锁定风险 没有 中等到高 安全控制 完整的审计能力 依赖于供应商透明度 库 / 框架选择 在采用之前,根据以下标准评估候选库: 标准 要检查的内容 红旗 维护活动 最近 90 天的提交、打开问题趋势 6 个月内没有提交 社区规模 GitHub 星数、npm 周下载量、Discord/论坛 < 1k 周下载量对于关键库 包大小 Bundlephobia、树摇支持 > 50 KB gzipped 的实用库 TypeScript 支持 内置类型 vs DefinitelyTyped、类型质量 没有类型或过时的 @types 破坏性更改历史 更改日志、semver 遵守、迁移指南 没有指南的频繁主要更改 许可证 OSI 批准、与您的项目兼容 SaaS 产品中的 AGPL、没有许可证 安全审计 Snyk/Socket 分数、CVE 历史、依赖深度 已知的未修补 CVE 文档质量 入门指南、API 参考、示例 仅有 README、没有示例 快速启发式:如果您无法在一个 sprint 内替换库,则将决策视为单向门(请参阅下面的可逆性检查)。 架构决策框架 在选择架构方法时使用以下权衡表。 单体式 vs 微服务 因素 单体式 微服务 复杂性 从开始就较低,随时间增长 从第一天开始就较高 部署 单个工件 每个服务独立 团队扩展 难以超过 10-15 名工程师 支持自治团队 数据一致性 ACID 事务 最终一致性、saga 调试 单个进程、易于跟踪 分布式跟踪 最佳使用场景 早期、少量团队、MVP 已经证明的领域边界、需要扩展 SQL vs NoSQL 因素 SQL(关系型) NoSQL(文档 / 键值) 模式 严格、强制灵活、模式读取 关系 本地连接、外键 非规范化、应用程序级连接 扩展 垂直(读取副本有帮助) 水平设计 一致性 强(ACID) 可调(最终到强) 查询灵活性 即席查询、聚合 仅限于访问模式 最佳使用场景 复杂关系、报告 高写入量、灵活模式 REST vs GraphQL 因素 REST GraphQL 简单性 简单、众所周知 需要模式定义 过度 / 欠载 通用 —— 多个端点 客户端请求确切字段 缓存 内置 HTTP 缓存 需要自定义缓存层 工具成熟生态系统 日益增长 —— Apollo、Relay、urql 版本控制 URL 或头版本控制 模式演化、弃用 最佳使用场景 CRUD API、公共 API 复杂 UI、移动 + 网页客户端 SSR vs CSR vs SSG 因素 SSR CSR SSG 初始加载 快(从服务器获取 HTML) 慢(JS 包解析) 最快(预构建 HTML) SEO 优秀 不佳(没有水合) 最佳使用场景 个性化页面 仪表板、SPAs 博客、文档、营销 Monorepo vs Polyrepo 因素 Monorepo Polyrepo 代码共享 很简单 —— 同一个仓库 需要发布包 CI/CD 复杂性 需要智能过滤(Turborepo) 每个仓库的简单管道 最佳使用场景 共享库、对齐发布 独立团队、不同堆栈 优先级矩阵 —— RICE