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

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

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

エラーが発生しました。

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

ブックマーク機能を使うにはログインしてください。
コードの向こう側 改  作者: たむ


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

PR
2/43

第二話 最初のエラー

研修二日目の朝、翔太は始業十五分前に席に着いた。

早く来れば安心できるわけではなかったが、遅れるよりはましだった。誰もいないオフィスは、前日より少しだけ狭く感じられる。蛍光灯の白さにももう驚かなかった。


ノートPCを開く。

ログイン画面に自分の社員番号を打ち込む。パスワードを入力しながら、これで本当に“会社の人間”になったのだろうか、と考える。たった数文字の認証で、人は所属を与えられる。逆に言えば、その資格は数文字失うだけで消えるのかもしれない。


「早いね」


木村が後ろから声をかけてきた。

翔太は肩を揺らして振り向く。


「昨日、帰ってから少し復習しました」


「えらいじゃん」


そう言って木村は翔太の画面を覗き、机に小さなメモを置いた。

今日やることが箇条書きで書かれている。開発環境の再確認、社内ツールの操作、簡単な修正課題、Gitでのコミットとプルリクエストの練習。


「今日は少しだけ実務っぽいことやる。とはいえ研修用だから、気楽に」


気楽に、と言われるたび、翔太は逆に緊張した。

気楽にできるほど、自分はまだ何も知らない。


午前中の課題は、社内向けの簡単な管理ツールの微修正だった。

表示文言の変更、条件分岐の追加、入力チェックの強化。学校の課題よりも地味で、だからこそ難しかった。何かを新しく作るのではなく、すでに動いているものを壊さずに変える。それは“正解のない作業”のように思えた。


ソースコードを開く。

昨日よりずっと長い。メソッド名は一定の規則で付けられているが、意味の薄い略語も混ざっていて、読みやすいのか読みにくいのか判別しづらい。コメントはある箇所とない箇所が極端で、前任者の癖がむき出しになっていた。


翔太は息を止めるみたいにして最初のファイルを読んだ。

何をしているコードなのか、だいたいはわかる。だが、その「だいたい」が危ないことも昨日の説明で知っている。わかったつもりのまま手を入れるのが、一番壊す。


隣では久保田がもう修正に入っていた。

タイピング音が一定で、迷いの間が少ない。翔太は視線を自分の画面に戻した。自分の速度を他人に測らせたくないというより、他人の速度で自分を測りたくなかった。


最初の修正自体は単純だった。

画面上のラベル文言を変更し、条件が一致した場合のみ補足文を表示する。それだけだ。だが、実行してみると別の箇所でエラーが出た。


赤い文字列がコンソールに流れる。

例外クラス名、行番号、スタックトレース。翔太はその一行目を読んだあと、二行目で止まった。


そこに見慣れない文字列が混じっていた。


Boundary Layer mismatch

座標再解釈に失敗しました


翔太は眉を寄せた。

社内ツールのエラーに、日本語のこんな文言が混ざるだろうか。しかも、“座標再解釈”とは何だ。画面遷移や入力値の話ではない気がする。


もう一度実行する。

今度は普通のNullPointerExceptionだけが表示された。


見間違いだったのかもしれない。

それでも、さっきの文言は妙にくっきり目に焼きついていた。


「どうした?」


木村が通りがかる。


「いえ……一瞬、変なメッセージが出た気がして」


「変な?」


「いや、たぶん見間違いです」


そう答えると、木村は一度だけ翔太の顔を見た。

ほんの短い間だったが、その視線には確認するようなものがあった。すぐにいつもの調子に戻る。


「エラーは見間違いだと思わないほうがいいよ。再現するかどうかだけでも覚えといて」


「はい」


木村は立ち去ったが、翔太はその背中を少しだけ目で追った。

いまの言葉はただの一般論だったはずなのに、なぜかそれ以上の意味があるように聞こえた。


昼休み、翔太はコンビニで買ったおにぎりを休憩スペースで食べた。

他の新人たちは定食屋へ行ったが、今日はひとりになりたかった。自販機の隣の丸テーブル。湯の切れたポット。窓の向こうの曇り空。おにぎりの海苔は湿気を吸って少し柔らかくなっている。


専門学校時代のことを思い出す。

課題は多かったが、答えはまだどこかにあると思えていた。検索すれば似た事例があり、先生に聞けば方向だけは示してくれた。けれど会社のコードは、答えそのものよりも「いま動いているから変に触るな」という空気のほうが強い。正しさより継続。美しさより影響範囲。その考え方に翔太はまだ馴染めなかった。


昼休みの終わり際、休憩スペースの隅で木村が紙コップのコーヒーを飲んでいた。

声をかけるべきか迷ったが、向こうが先に気づいた。


「お、ひとり?」


「はい。ちょっと頭整理したくて」


「偉いね。初日は情報多いから」


翔太は少し躊躇ってから言った。


「木村さん、昨日言ってた“壁を分解する”って、どういう感じですか」


木村は一瞬だけ考え、それから紙コップの縁に視線を落とした。


「大きな問題を、大きなまま見ないってことかな。たとえばエラーが出たときに、“何もわからない”で止まると壁になる。そうじゃなくて、どこまでわかるかに切る。メッセージは読めるか。どの操作で出たか。昨日までは出なかったか。再現するか。そうやって壁を小さくしていく」


「……なるほど」


「プログラミングって、賢さより執念だから」


木村はそれだけ言って、残りのコーヒーを飲み干した。


午後、翔太はもう一度エラーの再現を試した。

同じ操作。別の入力値。手順を変えて何度か実行する。だが、例の文言は出ない。普通のエラーしか出ない。やはり見間違いだったのか、と自分を納得させかけたとき、ふとソースコードのコメント欄に視線が止まった。


本来なら TODO や修正履歴が書かれるような箇所に、一行だけ意味のわからない文がある。


// ここでは門を開かないこと


翔太はしばらくその一文を見つめた。

誰かの冗談だろうか。あるいは単なる誤記か。だが、このファイル全体の文体から明らかに浮いていた。ほかのコメントは事務的で、こんなふうに比喩めいた書き方をする人間はいない。


門。


その言葉に、理由のわからないざわつきが生まれた。

さっきの“座標再解釈”というエラーメッセージと、意味もなく結びついてしまう。


「佐藤君、そこまで終わったら一回コミットしてみて」


木村の声で我に返る。

翔太は慌てて画面を切り替えた。


「はい」


「コメントもちゃんと書いてね。何を変えたかわかるように」


Gitのコミットメッセージを入力する。

fix: add validation for input field

たったそれだけの英文なのに、自分が世界に何かを記録している気がした。あとで誰かが読む。未来の他人。木村の言葉がまた頭に浮かぶ。


夕方、プルリクエストの練習を終えたところで、木村がレビューをつけて返してきた。

指摘は三点。変数名。nullチェックの位置。例外処理の粒度。どれも理屈としては理解できる。理解できるからこそ、自分が見えていなかったことが恥ずかしかった。


「悪くないよ」


木村は言った。


「でも、“動いた”と“読める”は別。そこが分かれてるうちは伸びる」


褒められているのか、警告されているのか、翔太にはよくわからなかった。

ただ、その曖昧さが逆に本気の言葉に思えた。


帰る直前、社内チャットに障害対応の通知が流れた。

本番環境の一部で夜間バッチが失敗。担当者数名が対応に入る。木村もそのひとりだった。翔太は自分の荷物を持ちながら、少し迷った末に声をかけた。


「何か手伝えること、ありますか」


言った瞬間、出しゃばったかもしれないと思った。

けれど木村は首を振る。


「今日はいい。まだ早い」


それから少しだけ笑って、続けた。


「でも、その気持ちは忘れないで」


翔太は頭を下げ、会社を出た。


ビルの外は小雨だった。

駅までの道を歩きながら、彼はスマホのメモ帳を開き、今日見た変な文言を書き留めた。


Boundary Layer mismatch

座標再解釈に失敗しました

ここでは門を開かないこと


書き終えたあと、自分で少し笑いそうになった。

大げさだ。たかが見間違いと妙なコメントに引っかかっているだけだ。そんなことより、レビューで指摘された箇所を復習したほうがいい。


それでも消せなかった。

消してしまうと、何か大事なものまで一緒に捨ててしまう気がした。


夜、アパートの机でノートを開き、課題の復習を始める。

だが、画面の白いエディタを前にすると、昼に見た一文がまた浮かんだ。


ここでは門を開かないこと。


何の門だ。

誰が、どこに向けて書いた。

そして、なぜ自分はそんなことが気になるのだろう。


窓の外で、終電に向かう電車の音が遠くを走っていった。

翔太はカーソルの点滅を見つめながら、まだ名前のついていない違和感に、静かに足を取られ始めていた。

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

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