床屋のタナカにいくと、おっちゃんが髪を切ってくれる。そしてサポートなのかわからんが、あんちゃんが洗髪やら何やらの色々な作業をしてくれる。

このあんちゃんは、俺が床屋のタナカに行くようになってから二代目だ。そして、一代目も俺の髪を切ったことは無かった。

勝手な想像なのだが、彼らは髪を切ることを許されていないのではないだろうか。だって散髪こそ床屋のサービスだもの。一定の品質を担保しなければ客に失礼だろう。

回らねぇ寿司屋でも大将のマサさんが握るだろう。弟子のヤスがぬるまったほぐれる寿司を客に食わせてしまったらいけない。

じゃあ彼らはどのように技術を学ぶものだろうか。技術って経験がモノをいうのでは。

IT技術の界隈では簡単だ。技術なさげの人が書いたコードは技術ありげの人が”レビュー”し、指摘をする。技術なさげの人は指摘された内容をコードに落とし込んで再度レビューをリクエストする。

客の手に届くのは、ほぼ大将が握ったシステムだ。ヤスも指摘をされたことについて学び、成長することが出来よう。

※無理な納期、予算だとヤスがシャリを切ってネタも切りだすことになる。それらをなんとなく纏まるように大将が握ったシステムが完成したりもする。ヤベーところに発注すると、そもそもコードレビューという発想が無かったり、アガリがぶっかけられて国旗爪楊枝が刺さってる刺身が出てきたり、ヤスが大将だったりする。「動作しているからOK!」みたいな。そういう時は客も詳しくないから普通に「こんなもんか」と思ってお茶味の刺身を食っていたりして。

じゃあ、床屋でどうする。「もこみちみたいな顔にしてください」って客が来る。ヤスが客の頭を刈る。それをどうする。客の頭をレビューに出せばいいのか。

っていうので、俺の時はやっていいよ。べつに多少時間かかってもいいし、安くしろとも言わん。気にしないよ俺は。

という事を俺は彼らに言えばいいのだろうか。余計な気を使い過ぎなのだろうか。彼は髪を切りたくは無いのだろうか。どうなんだろうか。

寿司屋ならネタもシャリも客じゃないから練習できるし、例えば

「マサさん。これ…俺が握った寿司です!食べてもらえますか!」

そう言ってゲタを差し出すヤスを、マサは一瞥する。マグロの赤身、ハマチ、イカと、文江が焼いたのだろうか、タマゴが盛られていた。それは、手の付けられない不良だったヤスが、二年前の冬に初めて丸寿司で食べたものと、同じ並びであった。

つかの間の重い沈黙が過ぎたのち、マサは骨折していない左手でハマチの握りを拾い上げた。迷いなく、ゆっくりと口に運ぶ。

マサ「まっずい。むうぅ。なにこれ。」

ってこともできるんだけどね。いや知らんけど。動確くらいしろよヤス。そういうとこだぞ。シャリは大丈夫だからハマチ修正してもっかいプルリク出せな。あっハマチだけじゃなくて、他のネタも似た処理あるはずだから見直さなきゃダメだかんね。ちょっと難しいかもだけどインターフェースかませて共通化するんでもいいよ。たぶんタマゴだけオーバーライドしなきゃだけど。あっメンゴメンゴ。interfaceにデフォルトメソッド書けるのはC# 8.0からだったわ。abstractクラス作ってもいいけど今はとりあえず処理見直すだけでいいかな(早口)。

何の話だっけ。

そう。そのへんのヤスたちを集めた床屋があっても良いと思う。ただ、商売にするなら安くないと誰も来ないと思うがね。しかし需要も供給もあるんじゃないかな。

◆結論

C# 8.0まだですかね?switch-caseが式じゃなくてツラいんだが。
Blazorも早く案件で使いたいです。Vueから離れちゃうのはちょっと寂しいけど、それ以上にJavaScriptとかいう糞まみれになる呪いから手を切りたいです。

Null安全(Null許容参照の明示)も8.0で入るけど、おっそいわ。令和だぞ。もう入っていてしかるべきだ。nullを扱う演算子が増えて楽になったとはいえ、それでもnullチェックのif文は残る。というか実装が漏れる。かっちり書きたいっつってんだろ。テストコードも減るぜ?

あと直和型。さっさと導入しやがれ。こないだ作ったひたすら無意味なあの複合型を消したいんじゃ。例外投げろってお前、Exceptionはコスト高いし、アレは異常系じゃないだろうよ。準正常系だ。直和型が無いもんだからヤスはヤスでメソッドからTuple返却しようとするし。F#だったら苦しまずに済んだはずだ。

部分的ではあるがtypescriptに負けてんじゃねぇか。しっかりしろ。