一般社団法人 全国個人事業主支援協会

COLUMN コラム

はじめに

最近、ChatGPTがブームですよね。
自分も使ってみたのですが、非常に高性能で、人間の仕事がなくなるなと恐怖しております。

さて、そのChatGPTでは裏でGPTと呼ばれるAIが動いております。

このGPTを使ってプラグラミングの補佐をさせる機能がGithub Copilotです。
非常に簡単に説明すると、AIがコードを提案してくれて、それを採用したり、棄却したりして、AIと一緒にプログラミングしていく機能です。
基本的には、コード中にコメントを書いてAIに作成したいコードを指示します。
ただ、コメントを書かずとも、関数名を書くだけで、周囲のコードから状況を読み取って適切なコードを提案してくれることもあります。

Github Copilotの使い方については色々な記事がありますので、そちらをご参照ください。
自分が参考にした記事のリンクをいくつか貼っておきます。
特に最後の「AI-Native Development Guide」は必読です。

オセロをつくる

自分は新しい言語を覚える時に良くオセロを作っています。
ある程度、色々な機能があり、難易度として丁度良いからです。
最近もPythonを覚える時、基本文法を勉強した後にオセロを作成しました。
その時に作ったものがこちらです。

今回、Github Copilotを使ってプログラミングを書いてみたくなり、いつものようにオセロを作ることにしました。
以前どこかでGithub CopilotはPythonを一番理解しているという内容を見たので、Pythonで作ってみることにしました。
最近Pythonでオセロを作ったので、それと見比べてみようと思ったのもあります。

作ったモノ

今回作ったものがこちらです。

感想

良かった点

  • オセロのような世界共通のゲームであれば、仕様をコメントで指示しなくてもある程度実装してくれる
  • 仕様が難しいところも適切なコメントを書けば、その通りに実装してくれる
  • 自分が以前に書いた時よりも洗練された書き方を提案してくれた
    • 自分はModelクラスで現在のマスの状況を標準出力させていたが、Github Copilotは現在のマスの状況を文字列で返すコード提案した。
      GitHub Copilotが提案したコードの方が単体テストしやすい良いコードだった。
    • Pythonの有名ライブラリであるNumPyを使ったコードを提案された。
      NumPyについて調べたら行列を操作するような場合は配列を使うよりもNumPyの方がパフォーマンスが良さそうだったので、NumPyを採用した。

悪かった点

  • Github Copilotが提案したコードに誤りがあった場合、その修正を全てGitHub Copilotに任せるのは難しかった
    • 不具合部分は自分で直せば良いのだが、他人の書いたコードを直すのは難しいので、それはそれで少し大変だった

総評

  • 特にGitHub Copilotを意識した使い方をしなくても、ある程度は提案してくれるので便利
  • Github Copilotを十分に使いこなすためには、適切なコメントが必要
  • そのためには仕様を明確に言語化する必要があり、設計力と指示力が問われる
The following two tabs change content below.

植木 宥登

最新記事 by 植木 宥登 (全て見る)

この記事をシェアする

  • Twitterでシェア
  • Facebookでシェア
  • LINEでシェア