AIに開発作業を助けてもらう
ここで寺田氏は、昨今のAI(人工知能)の目覚ましい進化に話題を切り替え、「今後はAIの進化によって、アプリケーション開発の形が大きく変わっていく」と予想した。実は、開発現場でのAIの活用はすでに始まっている。しかし、現時点ではAIによる成果物がすべて正しいとは期待できない。寺田氏も、「ちゃんと知っている人が、AIの成果物を見て正しいかどうかを判断する必要がある」と注意した。
それでも、「ちゃんと知っている人」が上手に活用すれば、現時点でもAIは、開発生産性を大きく上げてくれる。ここで寺田氏が紹介したのが、「GitHub Copilot」と「ChatGPT」だ。どちらもVisual Studio Codeの拡張機能として利用できる。
ここで寺田氏は、Visual Studio CodeでJavaのソース・コードを開き、その途中に「PetオブジェクトからJSON文字列を生成」というコメントを入れた。
するとその直後、コメントの直下にまとまった量のコードが灰色の文字で現れた。GitHub Copilotがコメントの意図を解釈して組み立てたコードだ。寺田氏はここで「Tab」キーを押した。するとGitHub Copilotが提案したコードの文字の色が灰色から、通常の色に変わり、開発中のコードに組み込まれた。
寺田氏はその後も、コメントを入力し、AIがコードを生成する様子を何度か披露した。AIが古いスタイルのコードを生成したこともあったが、コメントに「Stream APIを利用して」と書き加えると、指示通りに新しいスタイルのコードを出力した。
ここで寺田氏は、ChatGPTのデモに移った。先ほどのコードを表示したまま右クリックして、現れたメニューから「ChatGPT: Find bugs」という項目をクリックした。すると、エラー・ハンドリング・コードが実装されていないなど、開発中のコード全体を分析して、欠落している部分や誤っている部分を指摘し始めた。
さらにChatGPTに、コードを最適化させてみると、開発中のコードとは違う書き方のコードを提示した。加えて、データベースのカラムとテーブルを伝えて、特定の条件のデータを引き出すSQL文を書くように指示したところ、指示通りのSQL文を出力した。そして、このSQL文をJava Persistence APIのJPQLで書き直させてみたり、さらにJPQLでも型安全な形で書き直させてみたりしたが、ChatGPTはことごとく指示通りのコードを出力した。
寺田氏は話題を変え、アプリケーションがデータベースにアクセスする際の認証について話し始めた。現在は、データベースへのアクセスに必要なパスワードを環境変数に書き込んでいる例が多いが、その環境に外部から入り込んで「env」というコマンドを実行してしまえば、環境変数の一覧をすぐに確認できてしまう。環境変数に認証情報を書き込むのは、決して安全とは言えない行為だ。
寺田氏は、Microsoftが現在「パスワードレス」を積極的に推奨していると言う。具体的には「Azure Active Directory」を利用して、アプリケーションがデータベースにアクセスするときに、Azure Active Directoryからアクセス・トークンを発行し、アプリケーションはそれを使ってデータベースにアクセスする仕組みだ。
ここで寺田氏はJavaアプリケーションからデータベースにパスワードレスでアクセスする様子をデモで披露した。寺田氏は実際にアクセスする前に、各種設定ファイルを開いて、どこにもパスワードが書かれていないことを見せた。そして、Azure Container Appsの「Service Connector」という設定項目を開き、「spring.datasource.azure.passwordless-enabled=true」という設定を確認した。この設定によって、Azure Active Directoryを利用したパスワードレス・アクセスが可能になる。
そして寺田氏は、実際にデータベースに接続して見せた。どこにもパスワード情報がないのに接続できている。寺田氏は「Azure Active Directoryを利用することで、非常にセキュアな環境を構築できる。ぜひとも試していただきたい」と語り、講演を締めくくった。
【4/26 開催】Java on Azure Day 2023 ~ OpenAIなど最新技術でここまでできる!Java開発/運用の今と未来 ~
本イベントでは、「Java on Azure」 をテーマに、いま押さえておくべきさまざまなサービスや最新の開発手法についてデモンストレーションを交えながらご紹介します。また、ユーザー企業やパートナー企業の導入・活用事例を通して、Javaのクラウド活用方法を包括的に学ぶことができます。さらに、最近話題のGitHub CopilotやChatGPTを用いた開発生産性の向上を含めて、AIを活用したJava開発者のさまざまな可能性についてもご紹介します。
- 開催日時:2023年4月26日 10時~18時
- 会場:日本マイクロソフト株式会社 品川本社 31F セミナールーム
- 定員:300名(※先着順)
- イベント参加申し込みはこちら