この記事では、株式会社週休3日でWebサイトの開発・保守をメインに業務を行っている私が開発時にどのように生成AI・ChatGPTを活用しているかについて書きたいと思います。
弊社ではWordPressをベースにしたWebサイトが多く、弊社独自のWordPressプラグインの開発をしていますので、PHPでの小規模なWeb開発の例となります。
どのようなシーンで生成AIを活用しているのか
主に開発時に生成AIを活用するシーンとしては
- 命名
- コード補完・提案
- コードレビュー
の3点です。生成AIは株式会社週休3日において標準としているChatGPTを使用しています。
命名をChatGPTにやってもらう
コーディングをしていると命名をする機会が多々あります。ファイル名、クラス名、メソッド名、変数名、等々…新規に機能実装をしているときなんかは特に多くなりがちです。
わかりやすい名前にしたい、だけどいい感じの名前がぱっと思いつかない、命名で悩む時間ももったいない。
そんなときにはChatGPTに「こういうことをするメソッドの名前をいくつか考えて」と伝えるだけで一瞬で考えてくれます。
自分で考えるより断然早いしスペルミスもない、併せて命名の意味も添えてくれます。細やかな点ですがありがたいですね。
コード補完・提案をChatGPTにやってもらう
これは文字通りコーディング中にコードの補完・提案をしてくれるものです。
短めのコードであれば思っているものに近いコードを補完してくれますが、長めのコードを提案してくる場合などは的外れな提案をしてくることが多い印象です。
おそらくAIがコードの文脈、意図を汲み取ることができないということが原因だと思うのですが、そのあたりは今後のAIの進化に期待といったところでしょうか。
コードレビューをChatGPTにやってもらう
コードレビューとは書いたコードを他の人に見てもらい、改善点、問題点を挙げてもらうことです。それをAIにやってもらうというわけです。
コーディングしていると命名規則やメソッドの分割、エラー原因となりそうな箇所など自分では気づかない部分がどうしても出てくるので、その点をレビューしてもらえるのはとても助かります。
そしてなにより早いです。人の目だと結構な時間がかかるであろうものを、ものの数十秒で出してくれるのはAIの大きな利点だなと感じます。
生成AIならではの欠点も
当然ながら生成AIならではの欠点もあります。
先にも少し触れた通り、それはコードの意図が読めないということ。
生成AIにはそのコードがどのようなシステム上の都合や背景のもと書かれているかは理解していません。
そのため、一定数は意味ない結果、意図に沿わない結果を出力することがあります。
例えば、命名の場合だと、コード内ではIDを「post_id」で共通させていたとしても、AIは「id」と命名する、といったようにコード全体で共通させている単語と違ってしまうなどです。
まとめ
現時点では生成AIの活用が大きく影響するほどの大規模な開発ではないことや、生成AI自体の問題点でまだ本格的な活用は難しいと感じる部分があるなどの理由で、自身の開発環境において生成AIがそこまで深く入り込んでいるという状態ではありません。
ですが、命名で悩む時間を減らすことができていますし、コードレビューにおいては、生成AIが行ったレビューを改めて私自身が確認するというセルフレビューに近い流れになってはいるものの、生成AIのレビューによって自分では気づかなかった部分に気づけるなどのメリットを感じています。 生成AIの欠点もありますが、今後のAIの進化により改善されていくものと思いますので、開発における生成の活用シーンを増やすことができればと考えています。