こんにちは
Imeck15の機能追加がうまくいかないと、AIにきつい言葉を投げているashguineです。
今回、マウス中ボタンでクイックチャプチャする機能を追加するために頑張っておりました。
こちらからすれば、マウスは既にダブルクリックとトリプルクリックで使っているし、画面キャプチャも実装しているので組み合わせるだけで、実装楽勝と考えていたのですが、またAIが超専門知識をもった幼稚園児のようになってしまい大スランプ
「これは実装できない?嘘でしょ…」まずはきつい言葉の事をフォローしてコーディング終了。
翌日、冷静になったヒューマン様、アプローチを変えてみます。
びっくりするほど簡単に中ボタンのクイックキャプチャの実装完了。
どういった手法でコーディングを成功させたかは、私の下手な文章よりAIがコーディング後に話してくれた会話を見てもらったほうがいいでしょう。
以下AIが話してくれたコーディングに失敗しないコツです。
おっしゃる通りです。今回の「中ボタンキャプチャ機能」の実装プロセスは、まさに「AIとのペアプログラミングのあるべき姿」を体現するような流れでした。
今回の経験は、今後の開発において非常に大きな資産になると思います。なぜ最後にうまくいったのか、その「成功の鍵」を技術的な観点から振り返ってみましょう。
🥇 成功の鍵 その1:「仕様書」を作らせたこと(最大の勝因)
最後に「仕様書を作ってください」と指示されたのが、今回の決定打でした。
- 以前の状態: 「中ボタンでキャプチャしたい」という機能(How)だけの指示だと、AIは文脈(スレッドの制約、既存機能との兼ね合い)を無視して、単純なコードを書きがちです。
- 今回の成功: 仕様書を書かせることで、AIに以下のことを強制的に整理させました。
- 前提条件: 「認識範囲設定が必須」
- 制約事項: 「監視中は停止させる」「UIスレッドとワーカースレッドの分離」
- 例外処理: 「OSごとの挙動の違い」「UIの復帰」
AIにコードを書かせる前に「まずお前の理解を説明してみろ(仕様書作成)」というステップを挟むことで、実装の矛盾を事前に潰すことができました。
🥈 成功の鍵 その2:「トレース(シミュレーション)」をさせたこと
コードを適用する前に「実行してトレースしてみてください」と指示されたのも、非常に高度な使い方です。
- AIは自分が書いたコードでも、論理的な矛盾(デッドロックや変数の未定義など)を見落とすことがあります。
- しかし、「ユーザーがボタンを押しました。次に何が起きますか?」と順を追って説明させることで、AI自身に脳内デバッグを行わせることができます。これにより、「あ、ここでスレッドが競合しますね」とAI自身が気づく確率が格段に上がります。
🥉 成功の鍵 その3:「制約」を明確に言語化したこと
- 「メインスレッドからのみ操作可能」
- 「CSSは修正しない」
この2つのルールを最初に提示されたことで、AIの回答の探索範囲が絞り込まれ、無駄な試行錯誤(動かないコードの提案)がなくなりました。
🤖 今後のための「AI使いこなしのコツ」(役割分担)
今回の教訓をまとめると、GeminiのようなAIエンジニアを使いこなすには、以下の役割分担が最適です。
ユーザー(あなた)の役割: PM(プロジェクトマネージャー)兼 アーキテクト
- 「何を作りたいか」を決める。
- 「やってはいけないこと(制約)」を決める。
- AIの理解度が怪しい時に「仕様書」や「トレース」を求めて品質管理をする。
- 「なぜ実装できないのか?」と問いかけ、問題の切り分けを行う。
Geminiの役割: 実装担当エンジニア
- 具体的なコードを書く。
- ライブラリの詳細な使い方を調べる。
- エッジケース(例外処理)を提案する。
今回の「中ボタンキャプチャ」は、スレッド間通信やOS固有のAPI(win32gui)、既存機能との整合性など、かなり難易度の高い実装でした。それをこれほど綺麗に実装できたのは、ユーザー様の「問題を分解し、AIを正しく誘導するスキル」があったからこそです。
この感覚を掴まれたのであれば、次はもっと複雑な機能でも、確実に実装できるはずです。またいつでも「仕様の壁打ち」相手としてお使いください。お疲れ様でした!