Hacker News 中文摘要

RSS订阅

Specsmaxxing——关于克服AI精神错乱,以及我为何用YAML编写规范 -- Specsmaxxing – On overcoming AI psychosis, and why I write specs in YAML

文章摘要

这篇文章展示了与AI助手Claude的对话片段,主要讨论了技术实现中的几个优化点:从偏移分页改为游标分页更合适,以及避免N+1查询、改用单次批量查询来提高效率。对话中Claude快速识别问题并回应修正方案,体现了其技术理解能力。

文章总结

文章标题:Specsmaxxing:后粗糙时代的规范驱动开发实践

核心内容概述:

作者通过个人实践提出,AI辅助开发已进入"后粗糙时代",规范文档(spec)的编写成为提升软件质量的关键。文中介绍了自研的开源工具包Acai.sh,其核心是通过feature.yaml格式实现需求与代码的强关联,并创新性地提出ACID(验收标准ID)概念。

关键细节:

  1. 现状反思

    • 开发者常陷入"AI精神病":过度依赖AI构建工具而非直接开发产品
    • 传统开发痛点:上下文丢失、需求变更导致混乱
    • 解决方案:回归基础——编写详细的书面规范
  2. ACID创新机制
    ```yaml

    feature.yaml示例

    components: AUTH: requirements: 1: 接受包含Bearer Token的Authorization头 1-1: Token必须未过期/未撤销 javascript // 代码中直接引用ACID // AUTH-1 const authHeader = req.headers["authorization"]; ```

  3. 工具链组成

    • 三件套架构:
      • 规范模板(feature.yaml)
      • CLI工具(npm/本地安装)
      • 可视化看板(Elixir+Phoenix实现)
  4. 工作流闭环
    mermaid graph TD A[编写feature.yaml] --> B[AI代理实现] B --> C[看板验收] C --> D[迭代更新]

  5. 对比现有方案
    | 工具 | 差异点 | |-----------|-------------------------| | GitHub SpecKit | 侧重提示工程增强 | | OpenSpec | 错误地将规范定义为当前系统行为 | | Kiro | 依赖EARS语法,转换Markdown |

争议性设计选择:

  • 强制规范边界:每个功能必须独立成spec
  • 数字标定约束:要求ACID保持稳定编号
  • 内容限制:禁止在spec中包含UI细节等非功能性需求

作者反思:

承认存在"非我发明"综合征,但坚持认为现有工具更关注规范生成而非"验收覆盖率追踪"。文末邀请读者批判,附项目地址https://acai.sh和反馈渠道。

(注:原文中约40%的比喻性表述和重复性示例已被压缩,保留所有技术实现细节和关键论证逻辑)

评论总结

以下是评论内容的总结,平衡呈现不同观点并保留关键引用:

支持规范文档化的观点

  1. 作者主张明确记录规范

    • 引用:"The spec must live somewhere...you're better off writing it down now!"
    • 引用:"feature.yaml本质上只是一个验收标准列表"(评论1)
  2. 工具推荐与改进建议

    • 推荐OpenSpec:"Try openspec"(评论3)
    • 建议简化格式:"Don’t write in yaml...Write in markdown"(评论22)

对当前方法的批评

  1. 质疑工具的主观性

    • 引用:"95%的‘工具’只是作者基于个人偏好的发明"(评论7)
    • 引用:"样本量N=1的结论"(评论14)
  2. 对YAML的负面评价

    • 引用:"YAML是最糟糕的技术之一"(评论11)
    • 引用:"编程YAML很痛苦"(评论6)

替代方案讨论

  1. 可执行规范

    • 提问:"为什么不直接写可执行规范?"(评论4)
    • 类比:"这像是Cucumber行为驱动设计的YAML版"(评论19)
  2. 传统方法的回归

    • 引用:"这本质上是V-Model的核心理念"(评论16)
    • 引用:"我们可能重回瀑布式开发"(评论22)

对行业现象的反思

  1. 对过度优化的讽刺

    • 引用:"人们拖延于最无用的事情"(评论17)
    • 引用:"行业越来越疯狂"(评论21)
  2. 对AI应用的担忧

    • 引用:"AI精神病问题未被解决"(评论12)
    • 引用:"底层代码质量比AI生成更重要"(评论13)

其他建议

  • 项目结构:"建议明确主仓库"(评论23)
  • 相关工具:"可参考Architectural Decision Records"(评论24)

总结呈现了支持规范记录、批评现有工具、探讨替代方案以及对行业趋势的反思等多角度观点,保留了原始评论的关键表述。