✈️

GitHub Copilotのライフハック

2024/12/09に公開

本記事は SimpleForm Advent Calendar 2024 の 9 日目の記事です。

シンプルフォーム株式会社の中仙道と申します。
弊社では昨年からGitHub Copilotの導入をしております。
1年以上使ってきて、便利な使い方を発見しましたので共有させていただこうと思います。

個人的なGitHub Copilotの立ち位置

個人的には考えずに単純作業で終わる系の開発に関しては一旦GitHub Copilotに任せるような開発の仕方をしています。
今回はテーブル作成などを紹介しますが、そのほかにもEnumなど、やることが完全に決まっているものを実装する場合はGitHub Copilotはすごく有効です!
最近はコードを書く際、書き出しだけ書いて、tabの上に指を置いて待つ瞬間があったりして、ふと、「これって自分がコード書いているというよりも、AIのコードをレビューしていることになっていないか?」と思ったりするときもあります笑。
今回は汎用性の高そうなスキーマ定義についてのCopilotの使い方を紹介させていただきます!

スキーマ定義の作成

テーブルのスキーマ定義は決まったものをコードに起こすので若干面倒だったりしますよね?
そんな時はGitHub Copilotに任せちゃいましょう!

例えば、開発時のテーブル作成タスクの中にこのようなテーブルの要件があるとします。

そんな時はこれをコード上にコピペしちゃってコメントアウトしましょう!
例えばRailsのマイグレーションファイルだったらこんな感じ

class CreateFruits < ActiveRecord::Migration[8.0]
  def change
    # テーブル名:fruits
    # カラム名	和名	型	制約	備考
    # id	ID	varchar(26)	pk, not null	
    # name	名前	varchar(150)		
    # price	値段	int		
    # sugar_content	糖度	int		
    # color	色	varchar(20)		
    # created_at	-	datetime	not null	CURRENT_TIMESTAMP
    # updated_at	-	datetime	not null	CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
  end
end

すると自動で補完してくれますのでtabを押すだけ

class CreateFruits < ActiveRecord::Migration[8.0]
  def change
    # テーブル名:fruits
    # カラム名	和名	型	制約	備考
    # id	ID	varchar(26)	pk, not null	
    # name	名前	varchar(150)		
    # price	値段	int		
    # sugar_content	糖度	int		
    # color	色	varchar(20)		
    # created_at	-	datetime	not null	CURRENT_TIMESTAMP
    # updated_at	-	datetime	not null	CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
    create_table :fruits, id: :string, limit: 26 do |t|
      t.string :name, limit: 150
      t.integer :price
      t.integer :sugar_content
      t.string :color, limit: 20
      t.timestamps
    end
  end
end

あとは目で見て直したいところを直すだけ。

おわりに

いかがでしょうか?だいぶ時短になるのではないでしょうか?

テーブル定義以外でも開発の要件をコピペしてコメントアウトするだけでよしなにやってくれる場合がありますのでまずは色々試してみてはいかがでしょうか?少なくともテーブル作成にはすごく有効です!

GitHub CopilotなどコーディングアシストのAIを使われている方は色々なハックをしていると思いますが、もしこのような使い方をしていなかった方がいらっしゃれば、参考にしていただけると嬉しいです!

また明日以降も SimpleForm Advent Calendar 2024続きますのでよろしくお願いします!

SimpleForm Tech Blog

Discussion