言語の歴史は人類の歴史。そして人類はコンピュータを言語で動かすようになった。

クソコードをクソコードという勇気

»

ネットで調べればいくらでもクソコードの事例がヒットします。ITを知らない人がこれを見てもどういう意味か分りません。ちょっとかじったレベルの人は、クソコードだけにほくそ笑みます。熟達した人から見ると、信じがたい悪夢のような現実です。ネットなので多少の誇張はあるかもしれませんが、だとしても信じるに値するくらいに現実は酷いです。

しかし、クソコードをクソコードと言うには勇気がいる。よくみかけるケースですが、クソコードに対して「これはレビューを通っている」とか「実績がある」と偉い人が付け加えると、クソコードが正解になってしまいます。ベテランのエンジニアでも、その言葉に屈してクソコードを正解の基準にして考えるようになってしまいます。

クソコードが正解と言われ続けると、それを正解と思い込もうとする心理が働くようです。クソを正解と自分を誤魔化し続けると、コードがクソでも、それが正しいと思い込むようになります。気持ちは分りますが、認識がゆがむと今後のスキルの成長が大幅に落ち込むことになります。

クソコードはクソコードと認識した上で行動しましょう。「クソコードでも要件通り動くから品質は担保されている」と言う方を仕事でも見かけます。しかし、クソコードである以上、間違いなく品質は低いです。どこがどうクソなのか、適切に理解して対応しなければ、クソにクソを重ねて肥溜めの海に沈むことになります。

事実、クソコードのメンテナンスには膨大な工数がかかるので、プロジェクトが炎上しやすくなります。本来であれば「このコードはクソなので工数がかかります」と明示すべきでしょう。それができないのは、自分が正しいと誤魔化し続けてきた嘘の重さかと思います。現実問題として、正面を切って間違えているとは言うのは難しいです。クソはクソとして対応して、自己学習としてクソへの対応方法を整理するのが最善策かと思われます。

Comment(9)

コメント

匿名

ウンコをこねて出来上がった建物と呼んでいます。

仲澤@失業者

ついさっき自分のうんこコードに軽くハマりました。
関数の最後が正常完了だと思ったら、直前の条件判定がtrueの場合が正常終了でした。
んで、その直後に追加したコードは実行されません。
こういうのを「痔ろう」コードと言ってます。
うんこは肛門から出しましょう(自戒をこめて)。

匿名

クソコードがクソコードかどうかなんて誰にも分からないよ。
まずは、コード解析で数学的にコードの面積と距離を示せよ。その上で意味付けしろよ。
何を根拠にクソコードと判断してんだよ。
何の基準もソリューションも提供してねーじゃねーか。
プロセスが足りねーんだよ。

こめ

システムの保守、改修なんかを主にやってますが、一度稼働してしまったものはいかにクソと言えどなかなか直せないんですよね。。
誰も褒めてくんないし、まあたしかに面倒だし。
日々罪悪感に苛まれつつクソコードと向き合っています。
自分のことはウンコ捏ねくり回し職人だと思うようになりました。

しまりす

クソコードのせいで無駄に工数増えてるから、直そうぜ!と言ったら
言い出しっぺの法則とかいって押しつけられ(ここまではいい)
今動いてるもの触るだから、トラブル起こったら「おまえが」責任持てよと言われるから
それ以降、ずっと無駄工数使い続け取りと思いながらガン無視してますわwww

匿名

実際に必要なのはクソコードをマイルドに表現する技術のほう

返信不要

コメントに対して絶対返信するから、名前に「匿名」はやめろ。と言ってましたよね?ここのコメントの返信はそろそろでしょうかね?

Horus

> 返信不要
私はこう書きました。

--------------------------------------------------------
コメント付ける時は、マジで名前入れてください。
匿名さんに返信つけてるときに別の匿名さんがコメントとか、ちょい待てよww


気づかなければ、意味不明の返信になるところだった。
---------------------------------------------------------


誤読も大概にしてください。絶対に返信するなど一言も言っていません。

別に義務はないので返信するかどうかは気まぐれです。ちなみに、あなたのような人に「返信不要」などかかれると、逆に返信したくなったので返信しました。

なななし

根拠も無いのに「絶対に例外が発生しない」前提のコードは例外なくクソ
・・・あ、根拠は(ry

コメントを投稿する