概要
普段IDEとしてJetBrainsのものを利用しているのですが、
最近AI機能としてJunieがリリースされた。
簡潔に説明するとユーザの要求の応じてプログラミングをする生成AIです。
すべてのツールで利用できるわけではないですが、GoLandやWebStromがメインの私にはどちらも提供されているので
早速試してみました。
どんな機能があるのか?
実装依頼もしくは提案を行ってくれます。
チャット形式でやりとりをして実装計画を立案してくれたり、いきなり実行させることも可能です。
いきなり実装されることは懸念点がまだまだある世界なので、実行計画を提案して提案された内容に関しても
チャットでやりとりをして改善しながら進めることができます。
個人的な感想ですが、この仕様はありがたかったです。
特に最初に使うときにどのような実装をされるのかは不安な点ではあるので内容を精査したかったこともあり、
提案から始めれるのは最初の障害を取り除いてくれる印象でした。
試してみた感想
今回、よく使うクリーンアーキテクチャの構成は1パターン実装した状態でいろいろ試してみました。
用意した理由は、自分の実装方針との差を見てみたかったし、そこから得られることがたくさんあるのではないかと思ったからです。
知り合いと話した感想も踏まえると結果としてこの実装があったからかなりうまく実装できたのではないかと感じています。
まず、こちらがチャットで依頼したとき(以後依頼と書かせてもらいます。)に現在の実装パターンを解析するステップがどの依頼にも存在していました。
世の中のベストプラクティスの実装がされるというよりは、今の実装を踏まえたベストプラクティスを実装する印象でした。
この点は、既存の開発プロセスに導入することを考えたときに、実装内容に大きな変化がうまれにくく導入しやすいのではと思っています。
ですが、リファクタリングしたいときに方針を決めないとぼやっとした実装になるのか恐れがあるのでは?と思っています。(試してないです)
実装傾向に関しては、個人的には違和感は感じませんでした。
試したパターンが少ないのでバリデーションと実処理を分けたい派である私との乖離に関しては確認できていませんが、
試した実装内容に関しては概ね賛成でした。
細かい命名規則などに関しては依頼時にこちらから指定する形をとることで問題なく対応できました。
また、依頼した内容のテストコードが作成できる範囲で作成する方針のようでした。
APIの作成依頼したときにControllerだけでなく各レイヤーのテストコードが実装されていたのでちゃんとしていると感じました。
個人的にはまだまだテストコードが実装されていないことを見受けられるので(個人的な感想です)AI側でこういったサポートがあることがうれしいです。
ただ、作成後に実行してみるとエラーになったりすることもあるし、作成後修正依頼したときにテストコードはなおってなかったりするので
そのあたりは使い方として認識しておく必要があるのだなと感じました。
総括
実行に気持ち時間がかかる印象はなくはないですが、
利用するうえでの問題を解消できれば開発プロセスに組み込むことはありだと思います。
過信して実装してもらったものを信じすぎるのも危険ではあるので、
まだまだ人の目での確認、動作確認は必要だと思いますが、すこしプラグラムができます程度の人より優秀だと思います。
こういったツールの登場がエンジニアとしてはうれしい反面、怖いとも感じました。
うれしい理由は、開発スピードの向上、品質もアップする見込みがあるのでサービス提供のタイムラグが経ることで
世の中がより便利になっていくと感じてました。
怖い理由は、エンジニアに求められていくスキルの変化です。
以前は技術力が最大の武器であったと思いますが、今後技術力ではなくコミュニケーション能力になると思いました。
なぜなら、技術は最低保証をAIがしていくようになるからです。
AIをどのように活用できるのかという点もありますが、AIと会話するための要点整理、要望の解釈はまだまだ必要です。
要望は人から生まれるものなので、しばらくは人と人とのコミュニケーションによって理解されます。
これを営業から開発に伝えられるのが一般的ですので、その内容をくみ取ってどういった仕様で実装するのか?
そもそも実装できるのか?といった判断をしないといけないと強く感じました。
どんどんコードだけ書ける人は淘汰されいくから要件を考える力や
その機能の必要性ちゃんと説明できる必要が求められていくと感じました。
技術だけでなく多くの視点を求められる時代が来ていると感じつつ、
柔軟に対応していかなければいけないと思いました。