SuperAPI AI 工具集

dhh-rails-style

编程与开发

查看项目

更新于 10-16 04:33

技能介绍

用途:在编写 Ruby 与 Rails 代码时应用 DHH 的 37signals 风格。核心理念是“最好的代码是不写的代码”,主张 Vanilla Rails 足够:富领域模型优先于 service objects,CRUD 控制器优先于自定义 action,用 concerns 横向共享代码,用记录(关联记录)表达状态而非布尔列,一切基于数据库(不用 Redis),先自建方案再考虑 gem。明确避免 devise(用约 150 行自定义认证)、pundit/cancancan、sidekiq(用数据库驱动的 Solid Queue)、redis、view_component、GraphQL、factory_bot、rspec(用 Minitest)、Tailwind(用原生 CSS)。开发理念:先发布、验证、再精炼;修根因不修表面;写时操作优于读时计算;数据库约束优于 ActiveRecord 校验。使用方式:按任务类型读取对应参考文件——controllers.md(REST 映射、concerns、Turbo 响应、API)、models.md(concerns、状态记录、回调、scope、PORO、授权)、frontend.md(Turbo Streams、Stimulus、CSS、partials)、architecture.md(路由、认证、任务、Current 属性、缓存)、testing.md(Minitest、fixtures)、gems.md(取舍)。代码审查则读取全部参考。主要约定:控制器映射到资源上的 CRUD 动词,如把 POST /cards/:id/close 改为 POST /cards/:id/closure;命名用动词、谓词与描述能力的形容词 concern;scope 使用 chronologically、preloaded、active 等业务化命名;授权逻辑放在 User 模型;任务为调用模型方法的浅包装。成功标准包括无多余 service objects 或抽象、测试用 Minitest 加 fixtures、交互用 Turbo/Stimulus、原生 CSS 现代特性、状态以记录追踪。限制:该指南由 LLM 生成,可能含不准确之处;示例代码来自 Fizzy,采用 O'Saasy 许可;与 37signals 无关联或背书。