🕌

JetBrainsのAIアシスタントを使ってみた

2023/12/16に公開

概要

普段IDEとしてJetBrainsのものを利用しているのですが、
最近AI Assistant機能はリリースされた。

https://www.jetbrains.com/ja-jp/ai/?map=4

完結に説明すると生成AIを使った開発の補助機能となっている。
試しに使ってみたので感想などを書きます。
今回はGolandでのみ利用していますのでご注意ください。

どんな機能があるのか?

機能を箇条書きすると

  • AIとのチャット
    • 英単語の相談ができたり、SQLを書いてくれたりと相談相手として活用できます。
  • コード提案
    • メソッドを書いただけでもコード提案を自動で行ってくれます。(数秒のラグはある)
    • また、書かれるのではなく、提案のため内容を読んで拒否することも可能です。
  • ドキュメント作成
    • 関数のコメントを作成してくれます。
    • 他にもコミットメッセージもコミット内容から判断して作成してくれます。
  • リファクタリング提案
    • 対象個所のリファクタリング案を質問するとコードを提案してくれます。
  • 名づけ補助
    • 変数名だったり、メソッド名など、ふさわしそうな単語を提案してくれます。

機能ごとに感想やおもったころを記載します。

AIとのチャット機能

ChatGPTを利用したことがある人なら抵抗なく利用できると思います。
特別な使い方も必要とせずに利用でき、日本語で質問しても日本語で回答が返ってきました。

コード提案機能

非常に使い勝手がよかったです。提案された内容を採用したことも割合としては多かったです。
特に似たような実装をする場合などには有効でした。
ただ注意しなければいけない点としては、メソッド宣言して中身を提案してくれるという流れで動作するのですが、メソッド宣言が近いのに中身が全然違ったりと命名規則をちゃんとしないと提案される内容が全然意図していない作りになっていることがありそうでした。
個人的には、提案という形式であることが非常にうれしかったです。
実態としてはまったく書かれていない状態なので間違って採用してしまうことがまず起こらないので安心して機能を利用するスタンスになれました。

ドキュメント作成

関数のメソッドやコミットメッセージを作成してくれるのですが、
多分英語でしかかかれません。(設定に気づいてないだけかも)
OSSをする人にとっては英語で書かれてくれることは便利だと思います。
関数のメソッドに関しては要約コメントだけでなく、使い方例も記載されることもあったが、
あるときとないときがあるのでAIの判断次第といった結果でした。
コミットメッセージに関してはうまく書かれている印象があり、英語以外に出力できると活用の幅が広がりそうだと思いました。

リファクタリング機能

1度くらいしか使っていないのですが、そのときの提案は理にかなっていると思いました。
使ってみたケースとしては重複したコードがあるのでリファクタリングしようとしたときに使ってみましたが、適切に書き直す提案がされたと感じベース案として採用しました。
リファクタリングは壁打ちしていろいろ考えるフェイズでもあると思うので壁打ち相手として利用できるのでは?と思いました。

名づけ補助

今回はあまり使えませんでした。正確には候補を出す前にチェット機能で聞いた単語を採用してしまったりと機能を使う前に解決してしまっていた記事を書くときに機能があることに気づきました。
この機能は今後気づいたことがあれば書き足そうかと思いました。

総括

お試し期間が短いのでお試しで利用する方は注意していただきたいですが、
使ってみた感想としては便利だったと思いました。
エンジニアとして生成AIと向き合うことは非常に重要なスキルになると思っています。
ただ、やはり判断はちゃんとしなければいけない要素もまだまだあることが現実でした。
その点、実装が提案をするスタンスをとっていることが非常に好印象でした。
提案だから利用者が採用判断するまではコードに書かれている状態でもないので気づかないうちに採用されていたことはほぼ起きないと感じました。
生成AIとエンジニアの付き合い方という点ではいい関係を気付けるものだと思います。
ここまで進化してくると生成AIの存在とうまく付き合えることもエンジニアの必須スキルになってくるんだと思いました。

聞いてみたいことがありましたらご連絡ください。
すべて答えられるとは限りませんが可能な範囲で対応させていただきます。

GitHubで編集を提案

Discussion