古くなったシステムのソースコードを改善する作業、いわゆるリファクタリングのために、ソースを自力で解析するのって時間がかかりますよね。本来なら設計書を参照すればいいのですが、古い仕様だとそもそも設計書が無いケースもあります。「この手間を軽減できたら、もっと業務効率化が図れるのに・・・」と考える方はとても多いはずです。
AIチャットボットとしての使い方が広く知られているChatGPTは、ソースコードの解析にも役立つことをご存知でしょうか?今まで多くのシステムエンジニアが辛い思いをしてきたソースコード理解の負担を、劇的に変えてしまうChatGPTの活用法を紹介していきます。
chatGPTはソースコードのレビューにも最適
ChatGPTにソースコードを入力することも可能なのですが、ChatGPT Plusを利用するユーザー向けのサービス「Code interpreter」を使うとさらに便利です。
「Code interpreter」では、ソースコード全体を直接アップロードできるようになります。効率的かつ品質の向上につながるので、ぜひ活用してみてください。
ChatGPTに、「このコードを、以下の観点でレビューしてください」と指示を出し、問題点を抽出させるようにしましょう。具体的にレビューしてもらう部分は、バグの確認、セキュリティ、パフォーマンス、再利用性、ドキュメンテーション、可読性など、自分が要望する項目を指示します。コードのレビューをChatGPTで行うメリットとしては、以下のような点が挙げられます。
①フィードバックまでの時間が短い
②新人研修などの教育を効率的にできる
③人間とは異なる視点からアドバイスが貰える
人間がレビューする場合、コードを1行ずつ確認して、問題点の有無を判断します。一方でChatGPTは、AIがほぼリアルタイムで返答を生成してくれるため、大幅に時間短縮が可能です。
また、企業で新人社員研修を実施する際、通常は社内の上司がレビュー担当を務めますが、時間の都合ですぐに見てもらえない場合もあるでしょう。ChatGPTの回答が100%正しいと断言はできないものの、上司の時間を奪うことなく、24時間いつでもレビューを得られるのは助かります。人間ですと、どうしてもエラーの見落としなどミスが生じるものです。AIが機械的にレビューする際は、人間が気付かない部分やパフォーマンス性など、AIならではの視点で判断します。中立的かつ安定的なレビューを毎回生成してくれるChatGPTのレビューは、仕事面において大いに役立つはずです。
chatGPTにソースコードを解説してもらうプロンプトはどんな内容が適切?
ChatGPTを利用して、ソースコードの解析をするには、どのような手順で行えばいいのでしょうか。最も簡単な方法は、プロンプトで「以下のコードってどういう意味ですか?」と入力し、該当のコードを貼り付けるだけでも、きちんとした解説をしてくれます。
もう少し具体的に細かく解析してもらいたい時は、プロンプトの指示内容を増やしてください。
「このソースコードの目的と処理の概要を説明してください」
「このコードの主な機能と構造について説明してください」
「このコードがページ上でどのような影響を与えるのか詳しく説明してください」
などと質問を投げかけます。細かい日本語の違いは、あまり気にしなくて大丈夫です。
このソースコードの目的と処理の概要を解説してください
#プログラミング言語:(HTML/CSS/JavaScriptなど)
#ソースコード:(ここにコピペ)
#目的
#処理の概要
実際に入力する時は、各ハッシュタグ●●● の間を、1行空けるようにしましょう。上記のプロンプトだと、「~~する処理を実装しています」といった具合に、ChatGPTが説明を出力します。
ソースコード解析に使えるaiツールを紹介
これまで、ChatGPTを活用してソースコードを解析してもらう方法について解説してきましたが、本質的にChatGPTはコード解析に特化したものではありません。膨大な学習データを基に、自然言語処理の能力を用いて、コードを理解しています。ユーザーの質問にも的確に回答できるのは事実です。
ただし、このような機能を持ったAIツールは他にも多数存在します。その多くは、コード生成や解析、リファクタリングなどを専門に扱うツールで、品質も非常に高いです。今回は、おすすめAIツールを3つ紹介しますので、参考にしてみてください。
IntelliJ IDEA
チェコに本社を置くJetBrains社が開発した、数多くのプログラミング言語に対応した統合開発環境です。ソフトウェア開発に必要な様々なツール、コード補完・静的コード解析・リファクタリング機能などを提供しています。定型的で繰り返しが多いタスクをAIが担い、開発者が創造的かつ効率的に高品質のコードを記述できるようになります。
DeepCode AI
Snykが提供する「DeepCode AI」は、クラウドベースのAIコード解析ツールです。コードをスキャンして、バグ検知や脆弱性を分析します。さらに、修正案も自動的にスキャンされ、開発者に提示される前に新たな問題が発生しないことを確認するため、精度が高いと評判です。
Codiga
自動コードレビュー、セキュアコード解析などを提供するカスタマイズ可能な静的コード解析ツールです。コードのセキュリティや効率性をリアルタイムで分析してくれます。ダッシュボードでコードの品質を一目で確認できるのが非常に見やすいです。
まとめ
ソースコードの解析は、初心者にはとても難しい作業ですし、経験者にとっても負担が大きく頭を悩ませてきた分野です。その難題が、ChatGPTの登場によって変わろうとしています。過度な依存は禁物ですが、今後はまずChatGPTに解析やレビューを行ってもらい、その後人間が最終チェックをするという流れになるのではないでしょうか。ツールは上記に紹介した以外にも色々あるので、社内での活用を検討してみてください。