書いたとおりにしか動かないもの
みし
コーディング
総当たり試験中の一時間の間は、お茶でも飲んでいれば良いし、ドキュメントを書いていても良い。別のデバッグ作業やコーディングを行っても良いだろう。とはいえ一分が惜しいときにやるのは最終手段である。本来コーディングを本来していない時間に実行するものだ……。
それはともかく、想定と数字が 現在コーディングの修羅場である。明日が納品期限のプログラムがまだ完成していないのである。つまり今日中に仕上げて完成させないと行けないわけである。しかし、98%は想定内の動作をしているが残りの2%がおかしいのである。修正しては再試験するが1%ぐらいしか改善していない……気がする。逆に言えば98%は正しいが、残りの2%に確信が持てない訳のである……これが頭を悩ましていた。
ここで、コーディングについて説明しよう。
コーディングとは
これを実行時に行うものをインタプリタ、実行前に終わらせるものをコンパイラと呼ぶがここではどちらでも良いだろう。例えて言えばインタプリタは通訳者、コンパイラは翻訳者と呼ぶべきだろうか?
特にスクリプトと呼ばれる言語は実行時に行うのでインタプリタを使う事が多い。とはいえ現在のプログラミングの環境に於いてこの2つはかなり曖昧になっている。
プログラムは書いたとおりにしか動かない。書いたとおりに動くというのは、間違えて書けば間違えて動くという事である。これをバグと呼ぶ。
バグの原因は自分の書いたコードが間違っているとは限らない。インタプリタやコンパイラにバグあったり、呼び出したライブラリ——あらかじめよく使う機能をまとめたもの——にバグがあったりと原因は様々である。
さてそれはともかく現在修羅場である。仕様通りにコードが動いてくれないからである。つまりバグがあるのである。
埒があかないので試しに想定しうる全てのパターン——たった約三億五千万通りである!——を試行するプログラムを書いて試すことにした。そうすると想定より少しズレた結果がでた。勿論、三億五千万通りの全てのパターンを人間の目でチェックするわけには行かないので統計学によるチェックの結果である。
さて読者は約三億五千万通りの試行をさせるのにかなりの時間がかかるように思えるだろうか?
計算させる
三億の画像ファイルを処理するのは全然別だ。あれは一つのファイルが三億のロジックを実行している様なものである。1週間でも終わるか分からない一致していない……それは大問題である。
バグになりそうなパターンをいくつか想定し、そのパターンをいくつか試行していく。
ここは違う、ここも違うと正解を吐き出すパターンをいくつか排除すると1つの大きな間違いがみつかる。
——光明が見えた。
原因が分かれば、今度はその場所を特定するだけだ。間違えたパターンからその部位はほぼ特定出来ている。間違えているロジックを探し出す。そのロジックは最初に書いたところだった……それが正しいと思い込んでいたのが原因だった。例外処理を一つ間違えていることが分かったので、その部分を修正し、再度実行。
……
いくつかのパターンを試したところで、問題無いことが分かった。
そこでもう一度、総当たりを実験してみる。その間に寝ておく。
結果は完全一致。どうやら間に合ったようである。
ほっと肩をなで下ろし、淹れ立ての紅茶を飲んで俺は胸をなで下ろした。
書いたとおりにしか動かないもの みし @mi-si
★で称える
この小説が面白かったら★をつけてください。おすすめレビューも書けます。
カクヨムを、もっと楽しもう
カクヨムにユーザー登録すると、この小説を他の読者へ★やレビューでおすすめできます。気になる小説や作者の更新チェックに便利なフォロー機能もお試しください。
新規ユーザー登録(無料)簡単に登録できます
この小説のタグ
関連小説
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます