ベルリンのITスタートアップで働くジャバ・ザ・ハットリの日記

日本→シンガポール→ベルリンへと流れ着いたソフトウェアエンジニアのブログ

クソコードとは何か?を写真で説明した

移転しました。

「クソコード」と言っても一体なにをもってクソとするのかは難しい。さらにほとんどのコードは一応は動いている。目の前で動いているコードに対して「クソ」と判断するからにはもうちょっと分かりやすい説明があってもいいんじゃないだろうか、と考えたので種類ごとに分けて写真で説明してみた。

変更不可能コード

f:id:tango_ruby:20160723000433j:plain
どれか1本でも配線変えたら(コード変更したら)なにが起きるのか予想がつかない。
 

開けたら最後のコード

f:id:tango_ruby:20160723000618p:plain:W400
そのまま触らなければ戸棚の中に収まっているが、扉を開けた瞬間、中身が落ちてくる。もう扉を閉めた時点で後のことは一切考えてない。
 

多重責任コード

f:id:tango_ruby:20160731093150j:plain
ひとつのコンポーネントやメソッドにこれでもかと責任が入っている。ひとつでそんなにたくさんのことはできないし、やるべきでない。
 

カッコよすぎコード

f:id:tango_ruby:20160723001054j:plain
なんか見た目だけはカッコよさげだけど、実際のところは何が書いてあるのか読みにくいし、意味不明。
 

クローンコード

f:id:tango_ruby:20160731093329g:plain
どこかのコードをそのままコピーしてあちこちに貼り付けているコード。こういうコードを読んでると「あれ?この記述、以前にもどこかで見たぞ」が連発されてしまう。
 

組み合わせ違いのコード

f:id:tango_ruby:20160731094504g:plain
本来意図していない組み合わせのコンポーネントで使われているコード。おいおいこの機能(穴)はそんな風に使うことを意図して作ったんじゃないんだけどな、と。
 

以上「クソコードとは何か?を写真で説明した」でした。



tango-ruby.hatenablog.com

tango-ruby.hatenablog.com

tango-ruby.hatenablog.com

tango-ruby.hatenablog.com