命名の沼と、名前の意味
コードを書く上で、誰もが一度は沈む沼がある。
──それは、命名だ。
「うーん……やっぱ、valueListはわかりづらいすかね?」
午前11時。翔太は隣の席で、自分のコードを眺めながら悩んでいた。
「何の値のリストなのかが、パッと見て分からない。それに、似た名前のdataListとresultValueListも並んでるから、どれが何を意味してるか混乱するよ」
私の声に、翔太はうなだれる。
「名前って……ほんと難しいっすね……」
「うん。しかも一番、性格が出るところだから」
命名。それはコードの詩だ。
関数や変数に込められた意図が、読み手に伝わるかどうか。
それでそのコードが、未来に読まれるか、忘れ去られるかが決まる。
「このprocessData()って関数、何を処理するの?」
「えっと……入力された売上データを、フォーマット整えて、フィルターかけて、集計して……」
「……なら、aggregateSalesData()の方が意味通じやすいと思う」
「なるほど……!」
翔太は目を見開いた。
たぶん、少しずつ見えてきてる。命名の重みが。
====
午後、レビュー会が始まった。
参加者は私、翔太、佐倉真理、そしてテックリードの梶さん。
モニターに映し出されたのは、翔太の新しいコード。
前回よりはずっと読みやすい。けど、まだ甘い。
「ここの変数、tmpStatusって名前、いまいちピンと来ないな」
「これは一時的に判定結果を格納してる……つもりだったんですけど」
「でもそれ、『一時的』なのはプログラムの都合であって、ロジックとしては『判定結果』だよね?だったら、evaluationResultとかの方がいい」
翔太は、うんうんと頷いていた。
そのときだった。
「──でも、そこまで丁寧に名前つけてると、逆に読みにくくなりませんか?」
会議室の空気が一瞬止まった。
それは翔太の、はじめての反論だった。
「短くても、前後の処理で分かればいいんじゃ……って思って……」
私は、少しだけ考えてから答えた。
「……確かに、短い名前はスッキリ見える。でも、それって今の自分だけじゃない?」
「……他の人も見る前提、ですか?」
「うん。半年後の自分も、他人だよ」
翔太が黙る。
私はマグカップを指先で回しながら、ぽつりと言った。
「……前のプロジェクトで、後輩のコードを引き継いだときね。変数名が全部アルファベット一文字でさ。“i”“j”“k”“t”“d”……。全然意味がわからなかった」
「……地獄すね」
「地獄だったよ。でも、そのとき気づいたの。名前をつけるって、相手に敬意を持つことなんだって」
翔太は、じっと私を見ていた。
ふざけてない、真剣な目だった。
====
レビューが終わったあと、翔太がぽつりと尋ねてきた。
「朝倉さんって……なんで凛って名前なんですか?」
「……珍しい?」
「いや、かっこいいなって思って」
私は少しだけ笑った。
名前に触れられるのは、苦手じゃない。けど、得意でもない。
「……父が武道家だったの。凛として在れって、口癖でさ」
「へえ……」
「でも、私は文系で、PCばっかり触ってた。そしたら、形は違えど凛と在ればいいって」
「……いいお父さんっすね」
「どうかな。でも、名前に込めた意味は、ちょっとだけ、わかる気がする」
翔太はしばらく黙っていた。そして、つぶやく。
「じゃあ、俺も……ちゃんと、名前をつけられるエンジニアになりたいです」
====
夜。
ユニが起動音とともに喋り出す。
「今日の凛様、ポエム指数12%。コードレビュー中に急に語り出すの、仕様ですか?」
「うるさい」
「ちなみに翔太くんポエム指数、本日過去最高。将来が心配です」
私は微笑んだ。
──きっと彼は、これからも迷う。
でも、名前に意味を込められるようになったら、もう一人前だ。
明日もバグと命名と意味の狭間で戦う。
でも、少しずつ、前に進んでる。