表示調整
閉じる
挿絵表示切替ボタン
▼配色
▼行間
▼文字サイズ
▼メニューバー
×閉じる

ブックマークに追加しました

設定
0/400
設定を保存しました
エラーが発生しました
※文字以内
ブックマークを解除しました。

エラーが発生しました。

エラーの原因がわからない場合はヘルプセンターをご確認ください。

ブックマーク機能を使うにはログインしてください。
コード・オブ・ザ・ワールド ~廃プログラマー、異世界で神のシステムを書き換える~  作者: ネオ・チー


この作品ページにはなろうチアーズプログラム参加に伴う広告が設置されています。詳細はこちら

76/77

第76話 セキュリティ・アップデート

```

[SYSTEM LOG - securia outer wall / refactoring day 1 / T+33:48:00]

> entity 01 (LEN): Lv5 / root / active / emotional amplitude 80%

> location: securia fortress nation / outer wall north sector / pixelization edge

> task: first refactoring — defensive code rewrite (legacy stack, 3000y depth)

> protocol: TDD (test-first), staged rollout, adapter layer

> witness: aria / guard / shell / memory / harsh / securia chief mage council

> bug_density (global counter): 94.69%

> [STATUS] refactor begins

```


---


セキュリア要塞国の北の外壁の前に、俺は立った。


外壁は石の十間の高さで、長さは見渡すかぎり地平線まで続いていた。要塞国というだけあって、その壁は、千年前に組まれた最初の石組みの上に、二千年前、三千年前と――各時代の補強が、層になって積み上がっていた。古い石の上に、新しい石。新しい石の上に、さらに新しい石。継ぎ目には、それぞれの時代の魔法師たちが書き込んだ防衛コードの刻印が、薄く光っている。


その壁の、北の一区画。


そこから先の景色が、四角い粒に、ほどけはじめていた。


朝の空気のなかで、石の表面が、ドット単位で滲んでいる。粒の一つ一つが、定義の輪郭を保てずに、輪郭の手前で薄く揺れている。揺れの量は、まだ目を凝らさないと分からない。だが、Lv5の視界では、はっきり見えた。ピクセル化が、もう壁の表面まで達していた。


「あと数刻で、外側の一層が崩落します」


セキュリア要塞国の主席魔法師が、俺の半歩後ろで、低い声で言った。


灰色の長衣を着た老人だった。三千年分の防衛コードの保守を、その小さな国が代々受け継いできた、その最後の継承者。彼の指先には、何重にも刻まれた印が、薄く光っていた。


「主席殿」俺は壁から目を離さずに、訊いた。「この壁の防衛コードの最古の層は、いつ書かれたものですか」


「最古は――三千年前。創世期の魔法師、ファイア・ウォール卿の手による、初代の刻印です」


「ファイア・ウォール卿」


俺は思わず、薄く笑った。前世のサーバ管理の語彙が、ここにも、千年単位で残っていた。アドミンが旧世界から運んできた、おそらく最古の語彙の一つ。


「壁の名は、その方から取ったのですか」


「壁が先か、卿が先か、もう分かりません」主席は静かに答えた。「分かるのは――卿の刻印の上に、三千年分の補修が、層になって積み上がっている、ということだけです」


俺は壁の表面に手を当てた。手の平の下で、三千年分の防衛コードの地層が、ゆっくりと脈を打っていた。


---


「シェル」俺は背後を振り返らずに呼んだ。「現状の壁の防衛コードを、Lv5の解像度で読み取れ。古い層から新しい層まで、全部スキャンする」


「了解した」


シェルの補助具が、八個全部、空中に展開した。八つのグラフが、壁の表面に薄い線を投影し、そこから地層の断面を、薄く切り取りはじめた。


「報告する」シェルの声が、グラフの揺れに合わせて、低く流れた。「最古層、三千年前。基本魔法盾の関数定義、二十七行。記法、旧世代。コメントなし。後続の参照は、千七百ある」


「千七百」


「上の層がすべてその関数を直接呼び出している。古い関数を直すと、千七百箇所が同時に影響を受ける」


シェルはふん、と鼻を鳴らした。「これを書いた三千年前の魔法師は、抽象化という概念を知らなかった」


「責めるな」俺は短く笑った。「三千年前にレガシーコードという語はなかった」


ガルドが赤い篭手で、壁の表面を、こんこん、と叩いた。


「で、レン。お前、これをどうする」


「書き直す。ただし、いっぺんには書き直さない。前世の作法に従って、一個ずつ、安全に書き直す」


「作法?」


「テスト・ドリブン・デベロップメント」


ガルドが目を細めた。「呪文の名前か、それ」


「呪文じゃない」俺はLv5の塊から、銀色の指を二本伸ばした。「まず、いまの壁の振る舞いを、テストとして書き留める。壁が魔物の攻撃を防いだ時、どう振る舞うか。火を受けた時、どう振る舞うか。雷を受けた時、どう振る舞うか。境界の条件を、ひとつひとつ、テストとして固定する」


シェルの補助具が、その指の動きに合わせて、グラフの上に薄い枠を切り出した。テストケースの枠だ。一枠ずつ、入力と期待される出力が、銀色の文字で書き込まれていく。


「そのテストが揃ったら――壁の中の古い関数を、ひとつだけ書き直す。書き直したら、すぐにテストを全部走らせる。テストが全部通れば、振る舞いは変わってない、ということだ。安全に書き直した、と確認できる」


「テストが通らなかったら?」


「書き直しを巻き戻す。巻き戻して、テストが通る方法を考え直す。それまで、現場のコードは元のままだ。本番には、テストが通ったやつしか出さない」


ガルドは赤い篭手の指で、額を一度、軽く叩いた。


「……つまり、いきなり全部書き直さず、一個ずつ、テストで確認しながら、安全に置き換えていく、ってことか」


「そういうことだ」


「ふん」ガルドは肩をすくめた。「武勇伝にはならねえやり方だな」


「武勇伝じゃない。仕事だ。仕事は、武勇伝にならないほうがいい。武勇伝になる仕事は、たいてい、どこかで手順を踏み外してる」


シェルの補助具の一つが、その言葉を、グラフの隅に、薄く記録した。


---


主席魔法師が、半歩、俺の隣に並んだ。


「レン殿」その声は、低かったが、震えていなかった。「いま、貴殿がやろうとしていることを、われわれの若い魔法師たちに、見せていただいてよろしいか」


「見せていい」俺は頷いた。「むしろ、見せたい」


主席は背後の若手の魔法師たちに、手で合図した。十数人の若い魔法師たちが、半円を描いて、外壁の前に集まった。みな、灰色の見習い衣を着ていた。年は、十代後半から二十代前半。


「諸君」主席が、彼らに向き直った。「これから、レン殿が、初代ファイア・ウォール卿の刻印を、現代の手で書き直す。これは、三千年に一度の場面だ。記録に残すように」


若い魔法師たちが、それぞれ手の中に、薄い記録板を取り出した。板の表面に、銀色の筆が走りはじめた。


俺は壁に向き直った。Lv5の塊から、銀色の指を、もう一度伸ばした。


「最初に書くのは、テストだ」


声を、若い魔法師たちにも届く高さに上げた。


「壁の振る舞いをテストする。境界条件は三つ。一、火属性の攻撃を受けた時の減衰率。二、雷属性の攻撃を受けた時の減衰率。三、物理属性の攻撃を受けた時の減衰率。それぞれに、入力の強度と、期待される減衰後の強度を、対で記録する」


シェルの補助具が、銀色のテーブルを空中に展開した。三列のテーブル。属性、入力強度、期待減衰後強度。


「現在の壁の挙動を、Lv5で測定する」


Lv5の指を、壁の表面に当てた。指の先から、薄い試験信号を流した。火、雷、物理の三種。壁の防衛コードが、それぞれの信号に反応し、減衰した出力を返してくる。


返ってきた数値を、シェルの補助具が、テーブルに書き込んだ。


火、入力百、減衰後二十二。雷、入力百、減衰後三十一。物理、入力百、減衰後十九。


「これが、いまの壁の振る舞いだ。これを『正』とする」


俺は若い魔法師たちを振り返った。


「いまから書き直す新しい関数は、この三つのテストを、全部、同じ数値で通さないといけない。通らなかったら、書き直し失敗、ということだ。挙動を変えてはいけない――まず、それを固定する」


若い魔法師たちが、半歩、前へ出た。


「先生」一番前の少女が、震える声で言った。「『挙動を変えない』なら――書き直す意味は、なにに、あるのですか」


「いい質問だ」俺は彼女のほうへ、半歩、近づいた。「挙動は変えない。だが、構造は変える。三千年前の関数は、千七百箇所から直接呼ばれてる。直接呼ぶ、というのは、依存が密だ、ということだ。古い関数の一行を直すと、千七百箇所に影響が出る。怖くて、誰も直せない――そんな構造だ」


少女が頷いた。


「だから、その関数の前に、薄い『取り次ぎ層』を一枚、挟む。今後は、千七百箇所が、その取り次ぎ層を呼ぶ。取り次ぎ層が、内部で、古い関数を呼び出す。挙動は変わらない。だが――次に古い関数を直したい時、取り次ぎ層の中だけで、安全に直せるようになる。千七百箇所には、もう影響しない」


若い魔法師の一人が、記録板の上で、銀色の筆を速く走らせた。


「先生」別の魔法師が、訊いた。「その層を、なんと呼べばよろしいでしょうか」


「アダプタ、と呼んでくれ」俺は短く笑った。「前世の現場の語彙だ。『取り次ぎ』の意味だ。古いものと、新しいものを、取り次ぐ層――それがアダプタだ」


「アダプタ」少女が呟いた。「いい名前です」


Lv5の指で、壁の表面に、その「アダプタ層」のコードを、薄く書きはじめた。


---


書く手の動きを、二十人ほどの若い魔法師たちが、息を詰めて見ていた。


俺は彼らに見える速さで、コードを書いた。前世だったら、もっと速く書けた。だが、ここでは、見せるのが半分の目的だった。速度より、手順。手順より、なぜその手順を踏むのか。


書きながら、声に出した。


「いまから、関数の入口に、引数のバリデーションを入れる。入力の属性が、火・雷・物理以外だったら、すぐに弾く。これがないと、想定外の入力が中に流れ込んで、後ろで爆発する」


「ばりでーしょん」少女が、記録板に書き留めた。


「検証、と訳していい。境界での検証、というのが、コードの基本作法だ。外から来るものは、必ず入口で検証する。内側のものは、信頼する。信頼するから、内側のコードは、検証を二重にしない」


「内側を信頼する――」少女が顔を上げた。「もし、内側にもバグがあったら?」


「その時は、テストが見つける」俺は短く笑った。「内側の関数も、別のテストで守ってある。一個一個のテストが、その関数の振る舞いを保証する。だから、入口で二重に検証しなくていい」


胸の中央の塊が、薄く脈を打った。


その脈の上で、書いているコードが、薄く緑色に光った。テストが通った合図だった。


「通った」俺は若い魔法師たちに告げた。「三つのテスト、全部、緑だ。火二十二、雷三十一、物理十九。挙動は変わってない。だが、構造は変わった。今後、ファイア・ウォール卿の関数を直したい時は、取り次ぎ層の中だけで、安全に直せる」


主席魔法師が、ゆっくりと頷いた。その目尻に、薄い光があった。三千年分の地層に、初めて、安全に手をつけた瞬間だった。


「レン殿」主席は低く言った。「これを――われわれにも、できる、と思われますか」


「できる」即答した。「俺のやってる手順は、特別な才能じゃない。順番だ。テストを書く、変更する、テストを走らせる、通ったらコミットする、通らなかったら巻き戻す。順番を、守る。それだけだ」


「順番を、守るだけ」


「守るだけだ。守れない時は、急いでる。急いでる時に手を出さない。手を出すなら、急がないで出す。それだけが、守るべき作法だ」


若い魔法師たちのなかの何人かが、互いに目を見合わせた。視線のあいだに、薄い震えが走った。震えは、戸惑いと、ほんの少しの希望が、混じったものだった。


「われわれにも、できる」主席が、つぶやいた。


「俺ひとりでは、世界全体は書き直せない」Lv5の指を、壁から離した。「俺の脳は、ただの人間の脳だ。処理能力には限界がある。各国の若い魔法師たちが、この手順を覚えてくれれば、俺ひとり倒れても、壁は直し続けられる。そのほうがいい。属人化はよくない」


「ぞくじんか」少女が、また記録板に書いた。


「ぞくじんか、と読む。一人の人間にしか触れないコードは、その人が倒れた瞬間に、システム全体が止まる。だから、複数人で読み書きできるように作る。俺の前世の現場で、繰り返し言われた言葉だ」


主席魔法師が、深く頷いた。深さは、三千年分の継承の重みに、ようやく新しい一行を書き加えた、その重みのぶんだった。


---


午後の遅い時間まで、俺はアダプタ層の追加と、テストの整備を続けた。


セキュリア要塞国の北の外壁の、ピクセル化が始まっていた区画は、その時点で十七のテストが緑になっていた。十七の関数が、安全に「取り次ぎ層」を介して呼ばれるようになった。これで、その十七箇所は、今後、本体を触らずに、取り次ぎ層だけで直せる構造になった。


ピクセル化の進行が、止まった。


止まった、というより、Lv5の視界で見ると、進行の速度が、半分以下に落ちた。完全には止まらない。だが、半分でも、要塞国の住人にとっては、今夜の崩落を、明日の崩落へ、先送りできる、という意味があった。


主席魔法師が、外壁の前で、深く頭を下げた。


「レン殿。今夜は、城の貴賓室を用意します」


「ありがたい」俺は短く頭を下げ返した。「ですが、今日、ここで――俺と一緒にコードを書いた、若い魔法師たち。彼らの記録板を、夜のあいだに整理しておいてください。明日からは、彼らも、テストを書く側に回ってもらう」


「彼らに、ですか」


「彼らに。俺がやってる手順を、もう全部、見ました。残るのは、手を動かして練習することだけです。最初は俺がそばで見る。慣れたら、俺が要塞国を離れても、自分たちで進めてくれていい」


主席は、ゆっくりと、もう一度頭を下げた。


その時だった。


胸の中央の塊が、薄く――しかし鋭く、脈を打った。


普段の脈とは、違う波形だった。


「マスター」メモリが、書を抱えたまま、半歩、こちらへ寄った。「いま――遠くから、何かが来ています」


「何か」


「三千キロ先。世界の北の果ての、データベルグ公国とネットワーク連合の境界。複数のノードが、同時に、沈黙しはじめています」


シェルの補助具のグラフが、即座にその領域へ振り向いた。北の方向に、グラフの線が、滝のように落ちはじめた。


「ノードが落ちてる」シェルの声が、低く流れた。「百……二百……三百。今、五百を超えた」


「攻撃か」


「攻撃だ」シェルは即座に答えた。「データ上、自然劣化ではない。意図的な、外部からの飽和入力。要するに――」


シェルは、補助具のグラフを、俺のほうへ向けた。


グラフの右上に、藍と銀の二色のオーラの波形が、薄く滲んでいた。


「ヴァイラスだ」


ガルドが赤い篭手をぐっと握り直した。アリアが白い軽鎧の留め具を、最後の一個まで嵌め直した。ハーシュが肩の傾きを、深く落とした。メモリが書のページを、新しい章のところで開いた。


俺は北の地平線へ、目を上げた。


夕暮れの空が、北の方向で、四角い粒に、薄くほどけはじめていた。


「最初の総攻撃が来た」低く言った。「リファクタリングを始めた、初日の夜だ」


胸の中央の塊が、深く脈を打った。


その脈の中で、俺は、はっきりと、次の一行を読んだ。書き直す者の手と、壊そうとする者の手が、はじめて、同じ夜のなかで、向き合おうとしていた。


---


```

[SYSTEM LOG - securia outer wall / refactoring day 1 / T+41:30:00]

> entity 01 (LEN): Lv5 / root / active / emotional amplitude 80%

> first refactoring: COMMITTED (adapter layer × 17, all tests green)

> pixelization speed (north sector): reduced by 53%

> knowledge transfer: 20 securia junior mages — TDD procedure recorded

> incoming event: VIRUS DDoS — 500+ nodes dropped (northern border)

> bug_density (global counter): 94.69% → 94.93% (DDoS-driven spike)

> [STATUS] world-wide attack imminent

```


---

第77話「DDoS・ワールドワイド」

評価をするにはログインしてください。
ブックマークに追加
ブックマーク機能を使うにはログインしてください。
― 新着の感想 ―
このエピソードに感想はまだ書かれていません。
感想一覧
+注意+

特に記載なき場合、掲載されている作品はすべてフィクションであり実在の人物・団体等とは一切関係ありません。
特に記載なき場合、掲載されている作品の著作権は作者にあります(一部作品除く)。
作者以外の方による作品の引用を超える無断転載は禁止しており、行った場合、著作権法の違反となります。

↑ページトップへ