LAC WATCH

セキュリティとITの最新情報

RSS

株式会社ラック

メールマガジン

サイバーセキュリティや
ラックに関する情報をお届けします。

ラックピープル | 

コード生成AI「GitHub Copilot」を活用してアプリを作成するメリット

アカウントサービスグループの中林です。当グループでは、お客様の要望に寄り添ったシステム提案、開発、運用、コンサルティングまでを進めています。

昨今のAI技術の進化は様々な業界での生産性向上に大きく寄与しています。その中でもコード生成AIは、プログラミング初心者が遭遇する文法エラーや基本的なミスから、上級者が取り組む複雑なアルゴリズムやシステム設計の課題まで、効率的に解決するサポートをしてくれます。コード生成AIをうまく活用することで、プログラミング初心者の学習は手軽になり、上級者の普段のコーディングも効率的になるでしょう。

本記事では、私が実際にコード生成AI「GitHub Copilot」を使用したアプリ作成を通して感じた、開発者としてのメリットをお話しします。

前提情報

Copilot、ChatGPTがどのように開発をサポートしてくれるかを、実際の作成過程とともに解説していきます。作成するのは、フロントエンド側はNext.JS、バックエンド側はPython、およびDjango DBを用いた簡易的なユーザマスタ管理アプリです。このアプリケーションは、ユーザ情報の参照、編集する機能を持つシンプルなものとします。

私の開発技術スキルは、以下の通りです。

  • Pythonに関しては基本的な構文の知識があるが、アプリケーションを作ったことはない。
  • Next.JSやDjangoの基本的な知識も使用経験もない。新しいフレームワークやライブラリの学習はこのプロジェクトを通して行う予定。

GitHub Copilotの基本機能

GitHub Copilotは、コーディング中にAIが関連するコードを自動補完してくれるツールで、開発者の生産性を向上させることを目指しています。OpenAIのGPT-3技術を基にしており、多数のオープンソースコードを元に学習しています。その結果、多様なプログラム言語やフレームワークに対応が可能です。生成されたコードは修正やカスタマイズも可能であり、開発者の意図に合わせて調整できます。

コメントからコードを生成

Djangoモデルを作成する際には、「名前、メールアドレス、パスワードを持つユーザのモデルを作成してください」というシンプルなコメントを書くだけでCopilotは自動的にコードを提案してくれます。

GitHub Copilotに「名前、メールアドレス、パスワードを持つユーザのモデルを作成してください」というコメントを記入。Djangoモデルのコードを提案してもらえる

雛形をCopilotに作成してもらえるだけでも、初心者としては非常に助かりますよね。ただし、コードやアドバイスの提案は必ずしも正しいとは限らないため、開発者自身がしっかりと生成されたコードを理解した上でそれらを採用する必要があります。

また、既に存在するコードに対して目的や機能を明示するコメントを追記しておきたい場合も、Copilotにより生成が可能です。これにより、後からコードを見返した際の理解が容易となり、他の開発者とのコミュニケーションもスムーズになります。あるいは、リバースエンジニアリングのツールとしても有用かもしれません。

「このメソッドの説明を以下に記述してください」と指示すると、このメソッドが何をしているかを説明したコメントを生成(42~45行目)してくれます。

「このメソッドの説明を以下に記述してください」と指示すると、説明のコメントが生成される

既存コードのリファクタリング

既存コードへの修正が必要な場面でも、Copilotを活用できます。指示した要件に併せて修正を行うだけではなく、冗長な部分や最適化の余地がある箇所を指摘し、それを解消するためのコードを提案してくれます。

以下は、既存のvalidation関数をリファクタリングするよう指示している様子です。

validation関数をリファクタリングするよう指示

エラー内容についてChatGPTに質問

一通りコードを完成させて、テストしてみるとエラーが発生......。
そんな時は、エラーメッセージをChatGPTに伝えれば、可能性のある原因や解決策を提供してくれます。

エラーメッセージをChatGPTに伝えると、可能性のある原因や解決策を提供してもらえる

今回のアプリを作成している過程で発生したエラーは、全てChatGPTに質問することで解決できました。冒頭では説明を省いていますが、環境構築についてもChatGPTの提示した手順通りで進められました。

エラーを解消して無事に動作

新規ユーザをDBに登録した上で、検索画面で取得ができました。

新規ユーザをデータベースに登録すると、検索画面で該当のユーザが登録されていることが確認できる

おわりに

GitHub Copilotはコーディングの助けとなり、ChatGPTは質疑応答型のトラブルシューティングが可能なため、これらのツールを活用することで、開発の効率化が図れます。

また、不慣れな言語やフレームワークを扱う場合であっても、それらを学ぶ際の教師としてもかなり優秀だと感じました。例えば社内での新人研修やスキルアップの際、これらのツールを上手く取り入れることで、理解度が向上し、リスキリングにおける初期の学習コストも少なく抑えることが可能かもしれません。

私の実感としては、GitHub CopilotやChatGPTのサポートを活用することで、学習のスピードを大幅に上げることが可能で、理解・習得の時間を50%程度削減することができたと感じています。皆さんも新しい技術を学ぶ際には、このようなツールの活用をぜひ検討してみてください。

この記事は役に立ちましたか?

はい いいえ

関連記事

LAC WATCH

関連記事をご紹介します

  • セキュリティに強い組織を目指す、ITエンジニアの「ビルトイン・セキュリティ」

  • ChatGPT活用時のセキュリティ懸念、プロンプトインジェクション攻撃とその対策を解説

  • ChatGPT APIの新機能Function callingを使って、天気を聞いてみた