#Cursor #AI開発 #生産性向上 #Nextjs #エンジニアの本音
「AIがコードを書いてくれるエディタ」そんな謳い文句のツールは、それまでもいくつか触ったことがありました。
しかし、どれも補完の延長線上に過ぎなかったり、結局は自分で手を入れる量の方が多かったりと、開発の主役を置き換えるほどの
ものには感じていませんでした。
だから今回も、「まあ、ちょっと便利なコード補完ツールだろう」くらいに高を括っていたのです。
画面の向こうで、コードが「生き物」のように踊り出す 。
当時、私はReactとNext.js(App Router)を使って、新規プロダクトのフロントエンドをガリガリと構築していました。
コンポーネントを分割し、ボイラープレートコードを書き、型定義を合わせ、インポート文のエラーを解消する……
エンジニアなら誰もが日常的に行う、泥臭くも時間のかかる作業の真っ最中でした。
試しに、作成中のコンポーネントを開き、Cursorのチャット機能(当時のCmd + KやCmd + L)を使って、雑にプロンプトを投げて
みました。
「この画面に、フィルター機能付きのユーザー一覧テーブルを作って。
Shadcn/uiのコンポーネントをベースにして、レスポンシブ対応で、ローディング状態のアニメーションも入れてほしい」
エンターキーを押した直後、私は目を見開きました。
エディタの画面上で、コードがサラサラと、信じられないスピードで生成されていったのです。
それも、単なるテキストの流し込みではありません。
既存のプロジェクトの文脈(テーマカラー、共通の型定義、Hooksの書き方など)を驚くほど正確に汲み取った、
極めてクリーンなTypeScriptのコードが、目の前で組み上がっていく。
「……うわ、動いた 」思わず夜中の部屋で声が出ました。
自分で書けば、ドキュメントを確認し、コンポーネントをインポートし、スタイリングを微調整して早くても1〜2時間はかかるはず
だった画面が、ものの数十秒で、しかも完璧なクオリティでブラウザに表示されたのです。
その夜のことは、今でも鮮明に覚えています。
動くのが楽しすぎて、脳内麻薬が出続けているような感覚でした。「次はこのロジックを実装させたらどうなる?」
「このリファクタリングを頼んだら?」と、気づけば時計の針は朝の6時を回っていました。
外が明るくなっていることにも気づかないほど、のめり込んでいたのです。
最初は月20ドルのProプランを契約していましたが、その圧倒的な価値の前に抗えず、数日のうちに年契約へと切り替えていました。
見えてきた最初の壁と、「プログラミング」のゲシュタルト崩壊。
しかし、数日間熱狂的に使い倒していくうちに、最初の「壁」も見えてきました。
当時のCursorはまだ、扱えるコンテキスト(AIが一度に理解できるコードの量)が小さかったのです。
そのため、調子に乗ってコードベースをどんどん大きくしていくと、AIが前後の文脈を忘れ始めました。
さっき直したはずのバグを再発させたり、別のファイルに全く同じ重複コードを出力したり、品質のばらつきが目立つようになって
きたのです。
「やっぱり、AIに丸投げではダメか… 」そこで私は、開発のスタイルを変えました。
AIを「全自動のロボット」として扱うのではなく、「優秀だが、指示の出し方次第でサボる新卒エンジニア」として扱うことにした
のです。
アーキテクチャのコンセプトを明示的に渡す。一気に作らせず、ページ単位、コンポーネント単位で細かく開発を進める。
出てきたコードに対して、人間が『ここがイケてない』『この共通関数を使って』と具体的に修正点を指摘する。
この「AIへの渡し方(コンテキストのコントロール)」次第で、出力されるコードの品質が天と地ほど変わることに気づきました。
この時、私は強い予感を抱きました。近い将来、「AIにコードを書かせることそのもの」の価値はゼロになり、「AIにどうコンテキス
を渡し、どう書かせるか」というメタ的なスキルこそが、エンジニアの生命線になる、と。
プログラミングという行為のゲシュタルト崩壊が、静かに始まっていました。
次回へつづく・・
------------------------------------
■次回予告:個人の発見から、チームの武器へ
個人としての圧倒的な体験と、見え隠れするAIの限界。
この「劇薬」とも言えるツールを、もし自分一人ではなく、開発チーム全員で使ったらどうなるだろうか?
そんな中、春に新しいプロジェクトの立ち上げが決まります。私は意を決して、チーム全体への「Cursorの標準導入」を提案すること
にしました。しかし、そこにはAIならではの新たな技術的限界と、組織を動かす難しさが待ち受けていたのです。
ー次回、【連載②】「Cursorを標準ツールに」懐疑的だった開発チームが変わった瞬間と、見えてきた新しい壁 へ続く。