手前味噌AI駆動開発〜自己学習を添えて〜

おそらく六周くらい遅れている手法。

用途

学習

  • Rust全くわかんねえ!→Todoアプリ作るか!

  • はろわの2つくらい先のことがしたい

突発極小アプリ開発、プロトタイピング

  • ファイルCRUD+@する程度の微妙なアプリがほしいけどプリント文の間隔調整やCLIライブラリのだるい調整したくない

  • Reactの認証ってどうやるんだろ。

要件を提示する

Todoアプリが作りたい。 →これはだめ(Todoアプリ+@の前段ならOK) やることを状態付きで管理できるアプリがほしい

  • 状態はTodo,Doing,Doit

  • CLI

  • サブコマンドはcreate,delete,update

    • 状態変化のコマンドもupdateとは別に追加する

      • todo,doing,doit

これくらいで雛形くらいは生成される。

早い段階で構造化する

ここが個人的に味噌で 生成AI自体読み込めるコンテンツの量にはある程度限界があり、 また、なくてもそれなりに処理に時間がかかってしまうので なるべく生成してもらう入出力は小さくすべきだ。

関数型プログラミングも良い案だと思うが、なかなか難しいときがある。 私の場合は折衷案でなるべく処理をファイルや関数ごとに独立することを心がけている。 タスク管理アプリならコマンドごとにファイルは分ける。

つまり、コード設計自体は自分でやる必要がある。

単体テストも生成してもらう

ファイルや関数が独立しているので、単体テストも楽に生成してくれる。

レビューしろ

とはいえ、エラーを吐いたり、単体テストをかけと命令しても単体テスト内で完結するようなテストコードを平気で生成する。人間よりは遥かにマシだが

だからしっかりと動作確認や目視による確認は必要になる。

では、作ったものを説明してみろ

生成しました!はい、おしまい!

はうんこ。

少なくとも2024年5月時点のclaude3 Opsでこの方法を使っても 実務レベルのコードは出てこない。

理想はしっかりと説明を書いて、記事にして公開してしまうことだ。 気軽にやりたいならZennではスクラップというものがあるのでそこで少しずつ積み立てるだけ積んで放置でもいいと思う。

学習を謳うなら、ここまでやる必要はあるだろう。

所感

生成AIがどれくらい進化するのかわからんが、 もはや言語自体は日本語から多少は自動生成できるようなので 少なくとも生成AIがここで停滞する場合 システム開発全工程を対象とした学習の優先度としては 中盤より上くらいのコード設計、システム設計くらいを優先的に学習すべきだと思う。

ほげ言語のこの機能がみたいなのは当然有利性が働くこともある。 言語博士は確実に生成AIに敗北するとも言えない。 例えばこの処理の中でこうなるならこのコードがいいと 至高の言語博士VS究極の生成AIが発生したときにはほぼ確実に言語原雄山先生が勝利するはずだ。

しかし、そのハードルが非常に高いのが問題だ。 それに比べると設計はセオリーをある程度抑えるだけでもそれなりに代替できないくらいにはまだなっているのではないかなと思う。 思うのだが、すべてやってくれるAIみたいなのをマイクロソフトが出してた気がする。

しっかりと実用化して自分の仕事をする余地がなくなったら、 もう生成AIに仕事を代わられないみたいな目標は諦めるべきだね。

この記事が気に入ったらサポートをしてみませんか?