プログラミングにおけるAIの私のアプローチ
著者は、AIをプログラミングに使用するバランスの取れた慎重に楽観的なアプローチを説明し、メンタルモデルを維持し、小さなフィードバックループを使用し、AIが生成したコードをテストすることの重要性を強調し、また「バイブコーディング」による探索の価値を認識しています。
AIは何らかの形で定着していることは明らかです。いつかは熱気が収まり、墜落せずに、この飛行機が新しいエキゾチックな楽園に安全に着陸することを願っています。他の開発者を観察すると、AI愛好家からAI回避者までさまざまで、多くのことと同様に、私はその中間に位置しているように感じます。AIとその使用に関して、私は「慎重に楽観的」だと表現しています。
この範囲の極端な端にいる場合、より多くのリスクを抱えている可能性があると感じています。AIをまったく使用しない場合、新しいことを学んだり生産性を向上させたりする機会を逃しているかもしれません。AI愛好家としてAIに過度に依存すると、完全に理解していない大規模なコードベースを構築することで、セキュリティリスクや技術的負債を蓄積する可能性があります。
これが私の目には真実であるとわかっているので、AIの使用に対するアプローチは何でしょうか。それはツールであり、どう安全に使用すればよいのでしょうか。
メンタルモデルの保護
AIブームの前に当たり前だと思っていたことの一つは、コンポーネントや機能を構築するとき、コードのブロックを書くだけでなく、その仕組みのメンタルモデルも同時に作成しているということです。そのため、コード作成をAIに外注すると、そのメンタルモデルも外注することになります。これは私にとって受け入れがたく、プロセスに新しいステップを導入する必要があることを示しています。AIが提供したコードを1行ずつ読むことで、このメンタルモデルを取り戻し始めることがわかりました。
コードを読み、構築しているものの構造を理解すれば、そのものに対する自信が高まります。
小さなフィードバックループ
AIからの応答の厄介な点の一つは、応答の長さそのものです。応答が自分にとって有用かどうかを知るために実際に読んで理解する必要があるため、短い応答を求めています。コーディング時には、より小さなコード調整を求め、コードベースの特定の部分に議論を限定します。これにより、変更を理解し、メンタルモデルを更新する可能性が高まります。
テストの継続
これは明白に思えますが、自分のコードをテストするのと同様に、AIが提供したコードもテストする必要があります。また、テストケースの作成にもAIを活用すべきです。実際、コードのテストはAIが始めるべきだった場所であり、それが最もリスクが低く、実際のコードベースに最も有益であると感じています。
バイブコーディング/学習
バイブコーディングは、思うままに進み、そうでなければ触れることのなかった領域に飛び込む素晴らしい方法です。テクノロジーの新しい側面を発見するのに最適な方法です。私にとっては、上記の本格的な段階に入る前に探索に使うフェーズです。厳格なメンタルモデルを構築する負担を負う必要はなく、ただそれがどこに行くのかを見るだけで、それは楽しいことです。それにより、楽しいからこそ強力な学習ツールになります。