クソコードが好きで、たまーに「クソコード」でググる。今の会社はそういうウンコにお目にかかれないから、しばらくご無沙汰だった。

昨日久々にググった。

こんな記事があったんですね。

一行目で

Short Answer:批判は人格否定だからです。

と書いてあって、「違うね?」と思った。俺が思う「燃える理由」は次の通り。

「どんな意見、発言であっても人によって感じ方が違うから。」

だから言葉には気をつけなはれや。と。
俺は寧ろ批判されて成長することを望むし、逆に批判がない状態に閉じ込められたら脱出しようとするだろう。それで自分が否定されたとは微塵も思わないもん。心が成果物に依存してないクリーンアーキテクチャなんです。

そして分離できるんだから、分離されている状態が正常といえる。いかにもエンジニアな発想で申し訳ないけど、結合してる状態のほうが往々にしておかしいのだ。システムでもハードウェアでも感情でも人間関係でも。分離しないと人の人生に巻き込まれて狂っちゃったりするね。

そも、タイトルにもなってる「批判」っていう言葉の意味を全然理解してないし、「人格」の意味も理解してないし。「格」ってわかるか。「格が違う」とかの「格」じゃないぞ。それに、この人は本当の人格否定をされたことないんじゃないか?人格否定のハードル低すぎるだろ。うらやま。

まー俺もされたことねぇけど。

そいで読み進めていったら「人による」みたいなことがあって、「Short Answer書き換えな?」と思った。

ってかAnswerってのがなんか。答え?
英語詳しくないけどオピニオンあたりなのでは。

◆なぜ「クソ」コードか

残業させられるからです。つまり、クソコードを観測した人はすでにボディブローを食らってるんです。クソコードこそクソコードであるがゆえに、読み解くのにえらく時間がかかる。不快なものと長い時間接しなければならない。

2500行くらいあってフィールド変数にアクセスしまくって「day」とかいうワケわからん名前の変数をガシガシ書き換えまくって全く同じ内容のコールバック関数をあちらこちらで連打しまくってるメソッドに、一個シナリオを付け足したい。そのために、ソース内を飛び回って影響調査をしなければならない。しかもガード、早期リターンなんて使われてないからifとかforが入れ子入れ子&入れ子になっていま俺はどこの階層を彷徨っているんだろう的な、このelseってどのifのヤツ?みたいな、デパートに打ち捨てられた3歳女児的な気持ちにさせられる。

たちが悪いことに、クソ現場だと「関係のない部分は変更禁止」令が下されている場合がある。自分で更地にして組み直せるならどれほど幸せだろうか。しかも読んでると普通にバグってるんですよね。えっこれ本番環境で動いてんの?ってな。

そして給料は安い!みなし残業ってなに!?まほうカナ!?

だから、件の記事で言及されていた「十数行の変更で改善できる程度の、小さい瑕疵のあるコード」は、まったくもってクソコードではない。そんなん見せられたところで奥歯噛み締めすぎて耳から血が出ることもないし、こぶし握り締めすぎて指が貫通することもないから。

納期、上司、単価、人生まで含めて初めて「こっっんのゴミカスうんちクソコード!」という魂からの侮蔑が発せられるのだ。その叫喚を一体誰が責められよう。クソコードは積もり積もって人を壊したり、幸せだった夫婦関係を崩壊させたりするんですよ?

「言われた相手が傷つく」かも知らんが、真のクソコードディスペンサー様におかれましては既に他人の腎臓をナイフで貫いているんです。

なんでもかんでも「クソコード」なんて呼んじゃってるヒヨコは、一度そういう地獄に叩き落とされてみればいいと思う。さすれば「あぁ、あれはクソコードなんかじゃなかったんや。ほげー。」と死のまどろみの内に思い直すこともできよう。

◆お前らへ

「動くコード」で作っちゃうのはやめな?自分のためにならんよ。よくないコードを書くコストは高すぎる。割に合わない。いいコードを書いたほうが金銭、時間、人間関係、人生、精神のコストが安い。

「この名前でいいのか」「このDB設計でいいのか」「この順番で処理するのでいいのか」とか、いろいろあるけど、全てを常に疑ってないと永遠に成長できませんぜ。

「ぼくプログラミングできましゅ」っていうのは、幻想だ。気のせい。できてねーよ。「俺字うまいな」っつって書道大会にフェルトペンで応募してるようなもんだ。誰も「最高のコード」なんて書けてない。まして俺やお前が良いコードを書けているとでも?

だから、何かコードに違和感を感じたら即座にググろう。たったひとつ…かどうかは分らんが冴えたやりかたが無いか調べよう。自分のコードを疑わなくなったら終わりだ。やれる奴が周りにいるなら、聞け。「やれる風」の奴には聞くな。

調べる時間すら取れないなら、そもそもプロマネが終わってる会社だから辞めてしまおう。

◆結論

「こりゃ、しょうがねぇな」っていうコードもある。戦ったが力及ばず、みたいなコード。しかし「もうホントお前いい加減にせえよ。実家に帰らさしていただきます。」ってコードもあるんだ。お前が想像もつかないようなゴミコード。しかも誰かわからんが同僚が書いたものだ。何か異質なものが人間の皮を被ってウロついているんだ。死ぬ以外、島から脱出する方法はない。

そういう「現場」でクソコードに肋骨を折られ、ついでのおまけで両鎖骨を砕かれてからクソコード談議に花を咲かせればいい。戦争を経験していない人がインターネットで偉ぶって戦争論を語るようなもんだ。議論自体にだって意味はあるけど、どこまで行っても議論だけですわな。クソコードで終わっちゃった人が背後に立っていることを忘れてはいけない。

さんざ脅したけど、クソ現場はクソ現場で楽しいよ。人によっちゃ死にかけるかもしれんが人生経験にはなる。

結論ってほど纏まってねぇな。ま、いいか。あばよ。