2025-12-15

AIコーディング限界ひとつ

例えばスケジュール登録する関数を作るとする

引数には日付とタスク種類とタスク内容を受け取ってDB登録する

ここでタスクの種類によってはタスク内容が固定の内容になる、という条件があったとする

これをAIコーディングするとかなりの高確率スケジュール登録関数内にその機能を入れ込む

タスクの種類によってタスク内容が固定化するのは、スケジュール登録とは無関係の制約なので

スケジュール登録は単機能として実装して、呼び出し側でそういう制約を持つようにしてくれ、とお願いすると修正したりしなかったりする

この例だけだと「どっちでもいいじゃん」ってなりそうだけど、他の制約とかが出てきたときに同様に関数にどんどん条件を足していって

いわゆる大学生実験で作りそうな長尺関数が出来上がりがちになる

これ、AI短期記憶と長期記憶には強いけれど、「関数で呼び出す」みたいな中期記憶的な部分が弱いから起きると思っていて

この手の関数実装の例に限らずに同様の事象って結構あるんだよね

プロンプト全体として「スケジュール登録する」「タスク種類によって内容は固定化される」っていう長期記憶は持ってるんだけど

それを実装するとき短期記憶しか実装できないから目の前の関数に埋め込んでしまう、っていうような現象

もちろんキチンと指示すれば対応してくれる(なぜか頑なにやってくれないときもある)んだけど

バイコーディングとか言って実装してるとこの手の長尺関数だらけのクソコードが溢れるんじゃないかと思う

結局それを読むのはAIから大丈夫なのかも知れないけれど、致命的なバグを引きそうで怖いっていうのを感じてる

  • あんなもん使い捨てのやつとか壊れてもどうでもいい端っこに隔離した部分とかに使うもんやぞ

    • 三週遅れの議論はしたくないな

      • じゃあなんで3週遅れのこと書き込んでんの?

      • 3周もまわってまだ 例えばスケジュール登録する関数を作るとする 引数には日付とタスク種類とタスク内容を受け取ってDBに登録する ここでタスクの種類によってはタスク内容が固...

  • AIとかまあ使い捨てにしか使わないけど タスクタイプのENUMとタスク内容のStringと日付をDBに保存するコマンドプログラムを書いて タスク内容はタスクタイプによっては固定になる場合...

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん