SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Developers Summit 2023 セッションレポート(AD)

Java開発の生産性を上げるためにMicrosoftが取り組んでいること

【9-B-2】Microsoft のモダンなエンタープライズ Java アプリ開発手法のご紹介

  • X ポスト
  • このエントリーをはてなブックマークに追加

AIに開発作業を助けてもらう

 ここで寺田氏は、昨今のAI(人工知能)の目覚ましい進化に話題を切り替え、「今後はAIの進化によって、アプリケーション開発の形が大きく変わっていく」と予想した。実は、開発現場でのAIの活用はすでに始まっている。しかし、現時点ではAIによる成果物がすべて正しいとは期待できない。寺田氏も、「ちゃんと知っている人が、AIの成果物を見て正しいかどうかを判断する必要がある」と注意した。

 それでも、「ちゃんと知っている人」が上手に活用すれば、現時点でもAIは、開発生産性を大きく上げてくれる。ここで寺田氏が紹介したのが、「GitHub Copilot」と「ChatGPT」だ。どちらもVisual Studio Codeの拡張機能として利用できる。

AIの技術を活用した「Github Copilot」と、「ChatGPT」によって、開発生産性を大きく上げられる
AIの技術を活用した「Github Copilot」と、「ChatGPT」によって、開発生産性を大きく上げられる

 ここで寺田氏は、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名(※先着順)
  • イベント参加申し込みはこちら

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Developers Summit 2023 セッションレポート連載記事一覧

もっと読む

この記事の著者

笹田 仁(ササダ ヒトシ)

 フリーランスのライター、編集者。IT、特にソフトウェア開発の話が好きです。 趣味はドラムを叩くこと。コロナ騒ぎでリハーサルスタジオに入りにくくなり、ちょこちょこと楽器を買うことでストレスを解消していたら、いつの間にか置き場所に困るほどになってしまいました。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

CodeZine編集部(コードジンヘンシュウブ)

CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

提供:日本マイクロソフト株式会社

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/17491 2023/04/07 12:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング