本日はAWESOME-COPILOTの技術調査枠です。
AWESOME-COPILOTのドキュメントを読みながら実際に操作を試して記事に残します。
今回はカスタムインストラクションの一つRuby on Railsについてです。
Ruby on Rails
Ruby on RailsはRuby on Rails開発時のコーディング規約・設計方針・テスト・API・フロントエンド開発のベストプラクティス集です。
Ruby on Rails(通称 Rails)はRuby言語でWebアプリケーションを高速開発するためのフレームワークです。
Webサービス、管理画面、APIサーバー、ECサイトなどを少ないコード量で素早く作れるのが特徴です。
以下のページからGenaiscriptのインストールボタンをクリックして取得します。
github.com
インストールボタンを押してRuby on Railsをダウンロードします。
すると.github/instructions配下にインストラクションがインストールされます。

インストールしたインストラクションはCopilotの動作に自動的に適用されます。
このインストラクションを読み込むと、CopilotはRailsベストプラクティスに沿ったコード生成するようになります。
以下の関連ファイルを対象に動作します。
- '**/*.rb'
具体的にはCopilotは以下のような行動をとります。
Rails Way を最優先する
Copilot Convention over Configurationを重視し、Rails標準を優先します。
例えばルーティングには以下を使います。
resources :users
RuboCopスタイルになる
CopilotはRuboCop準拠コードを書きます。
例えばclass/moduleはPascalCaseで命名します。
メソッドを短くする
Copilotはsmall methodを好みます。
深いifを嫌います。
Controllerを小さくする
CopilotはFat Model, Skinny Controller思想でコード作成を行います。
良い例
def create OrderService.new(params).call end
悪い例
class OrdersController
def create
# business logic 50 lines
end
end
Service Objectを積極生成する
Copilotは複雑なロジックをapp/servicesへ切り出します。
例えば以下のようなファイルを生成します。
app/services/payment_service.rb
App Directoryを整理する
Copilot は以下のディレクトリを構成します。
Services
app/services
Forms
app/forms
Serializers
app/serializers
Policies
app/policies
Queries
app/queries
GraphQL
app/graphql