SuperAPI AI 工具集

dhh-rails-style

写作与研究

查看项目

更新于 10-16 07:26

技能介绍

用途:在编写 Ruby 与 Rails 代码时,按 DHH 的 37signals 风格应用约定与模式。核心哲学是“最好的代码是不写的代码”,主张原生 Rails 足够用:富领域模型优先于服务对象,CRUD 控制器优先于自定义动作,用 concerns 做横向共享,用记录表示状态而非布尔列,一切基于数据库(不用 Redis),先自己实现再考虑 gem。

主要能力:覆盖控制器(REST 映射、concerns、Turbo 响应、API 模式、HTTP 缓存)、模型(concerns、状态记录、回调、scope、PORO、授权、广播)、视图与前端(Turbo Streams、Stimulus、CSS layers、OKLCH、partials)、架构(路由、认证、任务、Current 属性、缓存、数据库模式)、测试(Minitest、fixtures、单元/集成/系统测试)、gem 与依赖取舍、代码审查与通用约定。

使用方式:按任务选择对应参考文件,如控制器读 controllers.md,模型读 models.md,前端读 frontend.md,架构读 architecture.md,测试读 testing.md,依赖读 gems.md;代码审查则读取全部参考后再审查。随后把模式应用到用户代码。

命名与模式要点:动词如 card.close、board.publish;谓词如 card.closed?;concerns 用能力形容词(Closeable、Publishable);控制器用资源名词(Cards::ClosuresController);scope 如 chronologically、preloaded、active。REST 映射用新资源替代自定义动作,例如 POST /cards/:id/close 改为 POST /cards/:id/closure。状态用记录表示:Card.joins(:closure) 为已关闭,Card.where.missing(:closure) 为未关闭。授权逻辑放在 User 模型,如 can_administer?。

限制:该指南由 LLM 生成,可能包含不准确之处;示例代码来自 Fizzy,采用 O'Saasy 许可;与 37signals 无关联或背书。资料未提供安装命令、收费与平台信息。