Claude Max (100$) を試す
基本的にはAIが好きではない私ですが、ソフトウェア開発業で働いている人間としては、現状のAIの実力をちゃんと実感しておきたいと思い、Claude Codeを試すことにしました。
1サービス分くらいは作ってもらおうと思っていたので、20$プランだと不測も出るだろうと、100$プランの方を契約してみています。
Claude Code に実装してもらったプロジェクト
以下は、がっつり、Claude Codeに実装をお願いしたプロジェクトです。基本的には私の手というのは、プロジェクト初期に、「何を作りたいか・どんなビジョンを持っているのか」というテキストを作って docs
に突っ込んだ後は、ちょっとした軌道修正くらいです。
- furai: T3 Stack の開発テンプレート。NextAuth搭載。CI/CD テンプレートも導入
- syoin: 学習管理システム。上記テンプレートから作成。
- forgejo-mcp-server: Forgejoを操作するためのMCPサーバー
- renmen: モダン org-mode を目指したノートアプリ (開発中)
どれも、新規開発と言えるもので、とりあえず 0 -> 1 のところをやってもらっている感じです。
各所感
実装初期
初めの方にお願いした機能というのは、とても速やかに作り上げてくれます。そもそも最初なので、ダッシュボードとかメニューとかログインとか、そういう「よくあるもの」を依頼しているというのもあるのですが、それ以上にガンガン作り上げていくような印象があります。
よくない振る舞い
上記のプロジェクトは基本的にTypeScriptなのですが、とにかく any を使ってこようという癖がみられます。no-explicit-any
で封じ込んでなお、リンターをスキップするための記述を上に書いたり、挙げ句の果てに eslint
の設定ファイルをいじりにいったりもしていました。
コミットの直前にリンターを回すように設定しているのですが、勝手にそれをスキップするオプションをつけてコミットを強行するという振る舞いも見せてきました。「とりあえず仕事終わらせてやったぜ」みたいな横柄さを感じます。
この辺りは 確か今月だったと思うのですが、claudeが何かコマンドを実行するときにそれをフックして別の処理を差し込むみたいなことができるということらしいので、こういうのを駆使して自動的に妨害をかけるのが良いのでしょうが、そもそもとして良い調整がされて欲しい次第です。
実装中期〜
自分の普段の開発のノリで、一旦コンポーネント化など何も考えず、愚直に実装をしてから後で困ったときに共通化という方針をAIにも取ってもらっていました。(フロントエンドの経験もあまりないので、アトミックデザインやらなんやらに従ったパーツを最初に作り込むみたいなことのイメージがわかない。)
syoin については、進捗の表示など、いくつか共通部品として切り出せそうだったので、その共通化を依頼しました。このときに気づいたのは、彼らは「横展開」というのが苦手そうだってことです。コンポーネントを切り出した後、そのコンポーネントに置き換えがされたのが一部だけ、挙句1ファイルだけみたいなことが多発しました。
コードをざっとみてもらって、その中で新しいコンポーネントを適用するものを探してもらうみたいな、無制限の探索は多分コンテキストとかの兼ね合いで難しそうなので、この辺り、もっと抽象的なところから始めさせて、「実装の共通化」をやらせてみるんじゃなく、「デザイン共通化」みたいな、上のところで済ませるべきだったんだろうなと思いました。
そして、多分、この振る舞いからすると、人間にとっても当然わかりにくいほどの参照ツリーがあるようなファイル群は、別にAIも得意とはしておらず、AIに力を発揮してもらうために、できる限り綺麗に整頓しておく(もしくは、綺麗に実装させておく)ということが求められるような気がします。
Claude Code あるいはその系統の使い道
これから、1から大規模プロジェクトを作るというのなら、経験のあるエンジニアがちゃんと生成コードのレビューをするという前提のもと、Claude Codeを活用できそうな気がします。どうせ嫌な顔せずやってくれるので、過剰なくらい最初から「可読性」「保守性」等を高めるよう指示するくらいでちょうどいいでしょう。
ただ、既存のITプロジェクトどうこうよりも個人的に夢があるのは、そんなに設計等が強い人がいなくても、少しばかり開発経験がある人間なら、思いついたアイデアに対するプロトタイプを実装させるくらいは容易ってことにあるでしょう。それは結局、「要求を元に設計を起こす人」・「作る人」というところから、「企画する人」に -- SEとしてはより上流に、プロダクト開発職としては経営側に自分を置くことすらも可能になるということなのかなと思いました。
私自身、何かこれを作りたい!みたいなものがあるわけではないので、なかなか困るところではありますが.
以上!