文章摘要
这篇文章展示了与AI助手Claude的对话片段,主要讨论了技术实现中的几个优化点:从偏移分页改为游标分页更合适,以及避免N+1查询、改用单次批量查询来提高效率。对话中Claude快速识别问题并回应修正方案,体现了其技术理解能力。
文章总结
文章标题:Specsmaxxing:后粗糙时代的规范驱动开发实践
核心内容概述:
作者通过个人实践提出,AI辅助开发已进入"后粗糙时代",规范文档(spec)的编写成为提升软件质量的关键。文中介绍了自研的开源工具包Acai.sh,其核心是通过feature.yaml格式实现需求与代码的强关联,并创新性地提出ACID(验收标准ID)概念。
关键细节:
现状反思
- 开发者常陷入"AI精神病":过度依赖AI构建工具而非直接开发产品
- 传统开发痛点:上下文丢失、需求变更导致混乱
- 解决方案:回归基础——编写详细的书面规范
ACID创新机制
```yamlfeature.yaml示例
components: AUTH: requirements: 1: 接受包含Bearer Token的Authorization头 1-1: Token必须未过期/未撤销
javascript // 代码中直接引用ACID // AUTH-1 const authHeader = req.headers["authorization"]; ```工具链组成
- 三件套架构:
- 规范模板(feature.yaml)
- CLI工具(npm/本地安装)
- 可视化看板(Elixir+Phoenix实现)
- 三件套架构:
工作流闭环
mermaid graph TD A[编写feature.yaml] --> B[AI代理实现] B --> C[看板验收] C --> D[迭代更新]对比现有方案
| 工具 | 差异点 | |-----------|-------------------------| | GitHub SpecKit | 侧重提示工程增强 | | OpenSpec | 错误地将规范定义为当前系统行为 | | Kiro | 依赖EARS语法,转换Markdown |
争议性设计选择:
- 强制规范边界:每个功能必须独立成spec
- 数字标定约束:要求ACID保持稳定编号
- 内容限制:禁止在spec中包含UI细节等非功能性需求
作者反思:
承认存在"非我发明"综合征,但坚持认为现有工具更关注规范生成而非"验收覆盖率追踪"。文末邀请读者批判,附项目地址https://acai.sh和反馈渠道。
(注:原文中约40%的比喻性表述和重复性示例已被压缩,保留所有技术实现细节和关键论证逻辑)
评论总结
以下是评论内容的总结,平衡呈现不同观点并保留关键引用:
支持规范文档化的观点
作者主张明确记录规范
- 引用:"The spec must live somewhere...you're better off writing it down now!"
- 引用:"
feature.yaml本质上只是一个验收标准列表"(评论1)
工具推荐与改进建议
- 推荐OpenSpec:"Try openspec"(评论3)
- 建议简化格式:"Don’t write in yaml...Write in markdown"(评论22)
对当前方法的批评
质疑工具的主观性
- 引用:"95%的‘工具’只是作者基于个人偏好的发明"(评论7)
- 引用:"样本量N=1的结论"(评论14)
对YAML的负面评价
- 引用:"YAML是最糟糕的技术之一"(评论11)
- 引用:"编程YAML很痛苦"(评论6)
替代方案讨论
可执行规范
- 提问:"为什么不直接写可执行规范?"(评论4)
- 类比:"这像是Cucumber行为驱动设计的YAML版"(评论19)
传统方法的回归
- 引用:"这本质上是V-Model的核心理念"(评论16)
- 引用:"我们可能重回瀑布式开发"(评论22)
对行业现象的反思
对过度优化的讽刺
- 引用:"人们拖延于最无用的事情"(评论17)
- 引用:"行业越来越疯狂"(评论21)
对AI应用的担忧
- 引用:"AI精神病问题未被解决"(评论12)
- 引用:"底层代码质量比AI生成更重要"(评论13)
其他建议
- 项目结构:"建议明确主仓库"(评论23)
- 相关工具:"可参考Architectural Decision Records"(评论24)
总结呈现了支持规范记录、批评现有工具、探讨替代方案以及对行业趋势的反思等多角度观点,保留了原始评论的关键表述。