008 テスト書いてないとかお前それ@t_wadaの前でも同じ事言えんの?
「ファリーダ、ゴーレムの制御は、あとどれくらいつづけられそうだ?」
「そうだね。まあ、十五分くらいはいけると思う」と部屋の外からファリーダが答えた。
部屋の中央の床に、例の紋様があった。
近づいてみる。
紋様に魔力を流して確認する。ある程度、中の構造がわかる。
紋様の下は少し空洞になっていて、そこに侵入者のリストがあるようだ。
特にセキュリティのようなものはなさそうだった。
ゴーレムを三体配置していること、それ自体がセキュリティとなっているからだろう。
さっさと床を剥がしてしまったほうが良さそうだ。
ただ、私はMAProxyを展開しているため、細かい作業に精神を割くのが難しかった。
仕方がない。アウロラに任せよう。
「アウロラ、その床だけ剥がしてくれ」
「おいしょ」アウロラはしゃがみこんで、床に手を触れた。「ふん! ふん!」
持ち上げようとしているようだが、床が動く気配はまったくない。
「……何をやっているんだ?」
「えっと、床を剥がそうかと思いまして」
「きみは魔法使いだろ……。一枚だけ消してしまえば良い」
「あ、そうですね」アウロラは微笑んだ。「じゃあ、消しちゃいますね〜」
軽いノリだった。
嫌な予感がした。
詠唱をはじめようとしたアウロラの口を、私は抑えた。
「むぐ……」
「ここの床を崩落させるな。この文様の箇所だけを正確に消去するんだ」
「うーん。やってみますけどぉ……」不安そうだった。「どうすれば?」
「TDDでやるか」
「TDDってなんですか?」
「……テスト駆動開発だ。簡単に説明すると、先にテストケースを書く。そのあとに実装を書くわけだ」
アウロラは笑顔になっていた。
この笑顔を見るたびに、アウロラは何も理解していないのだ、ということがよくわかる。
「つまり、二センチ四方、一センチの深さの穴を作成する関数をつくるとする。そうすると、関数の結果はこうなるlet expectedHole: Cuboid = { Min = { X = 0.0; Y = 0.0; Z = 0.0 } Max = { X = 2.0; Y = 2.0; Z = -1.0 } }」
「ほうほう。Minは原点、Maxが結果みたいな感じですか」
「これで先にテストを書いて、入力と出力の型を考え、テストが通るように関数を実装していく」
私はアウロラにTDDについて、そのまま軽く説明をつづけた。
Red, Green, Refactorという手順を伝え、早速テストを書いてもらい、実装も任せた。
最初は、座標計算を間違えていたり、単位の桁数を間違えていたり、符号を間違えていたりでおかしなことになっていた。
もしテストがなければ、恐ろしいことになっていただろう……。
そして数分でアウロラは関数を完成させた。
私が作成したテストケースすべてを網羅し、すべてがグリーンになっている。
「うわ、このやり方、すごいですね! わたしでも魔法ができちゃいました!」
「基本的にはTDDで書いたほうが、バグや手戻りが少なくなる傾向にある。おすすめだ」
「はい!」とアウロラは笑顔で答えた。いい返事だ。
さらに言うと、TDDは仕様を追加のときに役立つ。
テストが通っているうちは、何も壊れていないことが保証される。
だから、安心して変更を進めることができるのだ。
「あ、そういえば、『テスト書いてないとかお前それ@t_wadaの前でも同じ事言えんの?』って知ってますか?」
「……どこでそれを?」
「アカデミーで、友達が言ってたんですよ。そういえば、その子、TDDだかなんだか言ってたなって、ふと思い出しまして」
「TDD教という宗教団体があるんだ。その宗教団体の始祖だったか、始祖の言葉を広めた者だったか……。それが@t_wadaという者らしい」
「変な名前ですね。アットだなんて」
「たぶん、洗礼名かなにかだと思うが……」
そんな話をしている場合ではない。
ファリーダの魔力が尽きる前に、さっさと終わらせよう。
アウロラは慎重に魔法を詠唱していた。
事前にテストしていた通り、紋様の箇所だけをきれいに矩形に取り除くことに成功していた。
「うわ、すごい。本当にうまくいきました」アウロラは微笑む。「レイジ様のおかげです。ありがとうございます」
「ありがとうございます、はこっちのセリフだ」
私がお願いしてアウロラに関数を書いてもらったのである。
紋様の下は想定していた通り空洞になっていた。
手を伸ばせば、ぎりぎり届くところに石板が置かれている。
それは魔力を有した石板で、触れると、微かに温かい感触が指先に伝わってきた。
石板には見慣れない文法で文字が書かれていた。
「これは……えっと……S式か」私は思わずつぶやいていた。「アウロラ、知らないよな」
「なんですか、これ。変なの。カッコばっかり」
そこに書かれていたのは、大量にカッコのある言語だった。
私がほとんど書いたことのない言語だが、まあ、ぎりぎり、なんとかわからなくもない。
S式とは、簡単に言えば人間が書く構文木である。
そこには、以下のように記されていた。
『(golem-control (exclude (intruder) ) (protect (sahalin-gear) ) )』
これを……。
『(golem-control (exclude (enemies-of royal-family) ) (protect (sahalin-gear) (royal-family) ) )』
こんな感じか……。
「ファリーダ、制御魔法を止めてみてくれ」
私の指示で、ファリーダが魔法の出力を止める。
ゴーレムたちは、身動きひとつ取らない。
襲ってくることはなさそうだ。
「やった。やりました! レイジ様! さすがです!」
アウロラといると、自分が一角の人物になったような気にさせられる。
しかし、私は雑多に知識があるだけだ。
なにかひとつの物事を極めたという経験がない。
いつの日か、この世界に、なにか魔法使いとして生きた証を残すことができるだろうか……。
そんなことを、思った。
小説家になろうに初投稿!
完結まで頑張ります!
・だいたい3〜4話に1回くらい事後シーン(朝チュン)があります。
・事後シーンのある話には『★』がついています。
・魔法のシーンは適当なので、雰囲気で良いです。読み飛ばしてください。
「面白かった」
「続きが気になる」
「いろんな美少女との事後展開が読みたい」
と思ったら
・ブックマークに追加
・広告下の「☆☆☆☆☆」から評価
(面白かったら星5つ、つまらなかったら星1つ!)
をして読み進めていただけると大変励みになります。
よろしくお願いします!