【Aモデル録 フェーズ1 C#基礎】
これは、「参照について」の沼に落ちた私と、懸命な救助をするAI先生が心底疲れ果て、
半ば、現実逃避の、遊び心で作られたものです。
※笑って読んでください
※決して、再現を推奨しません!
とんでもないことになります(笑)
この物語は、参照型の便利さと危険性を理解するための、あくまでもフィクションです。
プログラムで、この話の登場人物を、よく考えないでどんどん増やしてしまった結果、どうなるか。
下巻は、その結末のお話。
※コウとカイは、
プログラムの考え方を説明するために登場する
架空のキャラクターです。
実在の人物・団体とは一切関係ありません。
登場人物がどんどん増え続け、ちょっとした村ができました。
たくさんの人たちにパンダへのURLが配信され、パンダがすっかり有名になりました。
ある日、コウがWebサイトを更新しました。
「パンダは、ほとんど竹しか食べない。」
でも、「Webサイトが更新されました」なんていう、お知らせサービス機能はありません。
この村では、村長の号令を聞いて、みんなが仕事を一気に始めます。
村長:「さあ!仕事開始ですよー!」
みんな「はーい! ・・・え?・・・・えええーー!?」
・・・何が起きたのか。
村のみなさんに、インタビューしてみましょう。
カイ経由で情報をもらったA君:「あ。そうだよねー。カイが調べた情報に入ってた。」
B君:「え?聞いてない。どういうこと?」
Hyveの親:「ええ?玉ねぎが好きだと思って、大量に用意したんだけど?」
B君の友達の友達:「うちは、コアラのマーチ。」
A君の親戚のいとこの友人の知り合い:
「ええーー?困ったなぁ。あんなに身体大きいから、てっきり肉食だと思ってたよ。
張り切って、鮭をくわえた木彫りのパンダ、いっぱい作ったんだけど!」
・・・大惨事(笑)
もうすでに、どんな惨状か、あなたにはお分かりのはず。
いちおう、解説しておきましょう。
参照型では、みんなに情報の内容が届くわけではありません。
情報のURLがメールとして届き、いつでも「アクセスして見ることができる」だけです。
情報元の内容が
「パンダ」から「パンダは、ほとんど竹しか食べない。」
に変更されても、村民には変更のお知らせなど届かないのです。
C#では、Main()が村長の役割をします。
村長の号令を聞いて、初めて、この村は動きます。
みんな「はーい! ・・・え?・・・・えええーー!?」
さぁ。大惨事の幕開けです。
→おお!君は優秀!
上巻では詳しく解説していませんが、
カイはもらった情報(URL)を使って、詳しく調べています。
A君は、それを正しく利用し、正常に動作しています。
→うん。素直だね。
B君には、追加情報を処理する方法を教えられていません。
新情報が自分の仕事と折り合わず、素直にエラーを出します。
→それ、パンダ死ぬんじゃ・・・
Hyveの親は、届けられる情報を正しく理解していないため、とんでもない仕事をしていますね。
しかも、直接パンダのお世話ができると教えられているわけです。
→何がしたい(笑)
もはや、意図不明です。
解説するまでもありません。
→ちゃんとしてくれよ!!
「パンダ」をある意味正しく使えてしまったため、とんでもない結末になってしまいました。
このお話で起こった出来事は、フィクションではありません。
参照型を乱用すると、どんな惨劇が繰り広げられるのか。
それを、しっかりと記憶しておいてください。