Day 2・データ構造 — AI入出力の正体
なぜ重要か — AIの返すデータを読み解く力
データ構造を知ると、バイブコーディングでAI出力を読み・任せ・直せる理由をまとめる。
丸投げが行き詰まる本当の理由
[[vibe-codin用語](AIに頼んでコードを作ってもらう作り方)は強力です。でも、うまくいかないときにいちばん詰まるのが「AIが返してきたデータ(や、それを扱うコード)が読めない」瞬間です。中身がリストなのか辞書なのか、どこに何が入っているのか——ここが分からないと、AIに何を直してほしいかすら伝えられません。
たとえるなら
データ構造を知らずにAIに丸投げするのは、宅配便の中身も伝票も見ずにサインするようなもの。届いた箱を開けて「これは何個入りで、どのラベルが何か」を読めて初めて、「頼んだのと違う」「ここを直して」と言えます。
今日学んだリスト・辞書・ネスト(JSON)は、まさにその「箱の開け方と読み方」です。この3つを知っているだけで、AIの出力に対してできることが一気に増えます。
- 読める: 記号だらけのJSONを「辞書の中のリスト」と分解して意味を取れる
- 任せる: 「name と price をキーにしたJSONで返して」と欲しい形を正確に頼める
- 直せる: 「price が取れていない」「配列が空だ」と原因の場所を指させる
- 説明できる: なぜ動かなかったかを、人にもAIにも言葉で伝えられる
構造を知らない人の相談
何が問題か特定できず、AIも直しようがない。
「なんか動きません。直して」
-> AI: どこが?何のデータが?となる構造が分かる人の相談
場所と形を指せるので、AIがピンポイントで直せる。
「results というリストが空で返ってくる。
各要素は title と price を持つ辞書のはず。
なぜ空になるか調べて直して」同じ「直して」でも、後者はAIにとって圧倒的に直しやすい依頼です。これは前回の [[prompclienrequest(AIへの指示)の質が、データ構造の理解でそのまま上がる、ということでもあります。基礎があるほど、良いプロンプトが自然に書ける。
丸投げの危うさ
構造を確認せずにAIの出力をそのまま使うと、「一見動くけど、たまに空のリストが来て落ちる」ような不具合を見逃します。AIは自信満々に間違うこと([[hallucinatioclienrequest = もっともらしい嘘)もあります。中身の形を自分で確認できる人だけが、その落とし穴を避けられます。
そして嬉しいことに、今日の内容は「暗記」ではありません。リストはプレイリスト、辞書は住所録、ネストはマトリョーシカ、JSONは万国共通の伝票——このイメージさえ持っていれば、初めて見るデータでも「これはあの形だ」と当てはめて読めます。文法は言語ごとに違っても、この「形の見方」はどこでも通用します。
AIにはこう頼む
困ったら「このJSONの構造を、リスト・辞書のどちらかで日本語で説明して。どこに何のデータがあるか教えて」と聞くのが有効です。AIに解説させて、自分の理解と突き合わせる。これがバイブコーディングで基礎を保つコツです。
今日のゴールの再確認
リスト(順番の行列)・辞書(名札つきのまとめ)・ネスト=JSON(入れ子)。この3つが、AIやAPIの入出力の正体です。形が読めれば、AIに任せつつも主導権はあなたが握れます。
読んでも腑に落ちない所は、AIに噛み砕いてもらいましょう。
理解度チェック
答えられれば、面接で説明できる状態に一歩近づきます。
データ構造を理解していると、バイブコーディングで得られる効果として最も適切なのは?
AIへの「直して」依頼として、より良いのはどちら?
「データ構造(リスト・辞書・JSON)を学ぶと、AIに任せる作り方で何が変わるのか」を、たとえを交えて説明してください。
記述式です。まず自分の言葉で答えを考えてから、模範解答を開いて自己採点してください。