※むかしのはなし

何を考えているんだろうか。不思議だ。

1を聞いて10を知れとは言っていないだろう。

確かにややこしい問題ではある。10まである。でもな、「まずここだけ順守しようね。ほかは考えなくてもいいよ。」と、言ってるじゃないですか。20回は言っているはずだ。いや、ちょっと盛ったわ。でも10回以上は言っている。

それを破ってくるのは何なんだ。さすがにおかしいぞ。守から破して離だろうが。「破ぁ!!」じゃねぇよ。

「この作業はすごく大事なことなのだよ。ルールを守ろう。」という事を、かなり丁寧に伝えているのだ。無力感がこの身を包んじゃうわ。

◆伝えた事

あるものに英語で名前を付ける話。有り体に言えば、プロパティフィールドメソッドの名づけの話。

メソッドというもの、つまり「状況(状態)を変更する命令」「何かを取得する命令」とかってオメー、動詞でスタートせねばなるまいよ。

昔々、さる西部にガンスリンガーがおりました。そしてサルーンの屋上に悪漢スナイパーをあつらえたと思えよ。

ガンスリンガーに悪漢を撃たせるメソッドは、例えばだけど「ShootRogue」になるでしょ。(定冠詞はつかないよ)(なんかデータ構造おかしい気がするけど気にしないよ)

それを「Colt1851」とか名前つけても意味わかんないじゃん。「銃」だし。撃つかどうかすら判断付かない。銃をバリバリと食べちゃうメソッドかもしれない。食うまで行かずとも、そのよくわからんメソッドを蹴ったとして、ライバルでもあり味方でもある三枚目保安官を撃っちゃうかもしれないじゃん。

困るでしょそれ。

かたやプロパティはどうだって話になるんだけど、じゃあ、ガンスリンガーが役所のシステムに生年月日データを登録したと。そのプロパティは「Human.Birthdate」でしょ。「Human.Born」じゃおかしい。「何の話?え?このプロパティが生年月日なの?嘘でしょ?」ってなるだろ。生年月日は「Born」じゃない。

ガンスリンガーに銃を持たせたくなって、銃を格納するフィールドが欲しい。ならばフィールドは「gun」でいいじゃん。抽象度高めたいんなら「handgunHolster」でも何でもいいよ。それを「setGun」って名前のフィールドにするのは変でないか。だって…だってプロパティとかフィールドって言わば「実体」じゃん。なんで動詞になるわけ。(setは名詞でもあるけど。)

◆覚えられぬ

上記のレベルのことを柔らかに穏やかに伝えた。でも順守できない。指摘されてから直している。

不思議だ。「名前の大切さ」についてもちゃんと伝えたんだ。「名づけ能力がコードの品質を左右するのだよ」と、ねっちょり伝えたんだ。

でもだめ。

いや、できる人はできてる。通常できている。でも奴さんはできない。

納得はしてるんだけど、落とし込めてないのだろうか。だから漏れるんだろうか。あるいは英語力が絶望的なのだろうか。「setGun」を名詞だと思ってるんだろうか。

集合」を意識したんならまだいい。でも

「ハッピーセット」ってあるから…名詞だな!

みたいなレベルだったらもう。

でもプログラマで英語力ないって、どうすんだそれ。インターネットって英語でググれないと出るもんも出てこないじゃん。Qiitateratailで生きてくつもり?それ結構つらいぜ?githubの公式リファレンス掘れとは言わんが(言うが)、せめてstackoverflowまでは当たれよ。英語で。

話逸れてきたからもう記事をぶっちぎる。

とっろとろに甘く、もったりと時間を使って教えたじゃないか。怒ってもしゃあないってのもあるけど、怒ろうとも思ってない。ただひたすら「なんで?」って思う。不思議なんです。

頭を使おう。頭を使わないんだったらせめて指示には従ってくれ。頼んだぜ。