クソコードを大量に書け!
- 下書きだと思うべし!
- いきなり清書しようとするな!
- いきなり清書しても成功しやすいのは過去に似たようなコードを書いたことがある時だけだ!
- より優れたプログラマになる為の経験をより多く積む為にも躊躇せずに様々なクソコードを量産しまくれ!
コストをかけずに書け!
- 生き続けてるコードは常に修正され続ける! 述べ修正行数が元の数倍から数十倍に及ぶのも珍しいことではない!
- 修正される前提で書け!
- 将来の修正は正確に予想できるような物ではないし修正される前提で書くってのはコストをかけず書くってこと!
- コストをかけない為に富豪的プログラミングで書け!
- コストをかけず書いてりゃ丸々ちゃぶ台返しすることになってもコスト的なダメージは最小化できる!
- かけ過ぎたコストを回収できない理想的なコードより、最悪の場合でもイチから書き直す羽目で済むコストをかけてないクソコードの方がずっとマシだ!
クソコードをそのままにするな!
- クソコードは必要な過程であって求められる結果ではない!
- 既存のクソコードは新たなクソコードを誘発する!
- 常にクソコードを浄化して清書し直し続けろ!
- 誰が書いたクソコードだろうが容赦無く直せ!
- クソコードに慈悲など要らぬ!
- クソコード、直さぬお前が、クソコーダー!
クソコードを生み出す要因を赦すな!
- クソなAPIはそれ即ちクソコードであり、クソコードの連鎖を産む元だ!
- クソなAPIは必ずラップして、クソコードの連鎖を断て!
実践にあたって
壊れていないものを直すな!
- 不用意な修正はエンバグの元であり、直すのはいまコーディングしたばかりの箇所、あるいは現在修正中の関連コードのみに留めましょう。
コストをかけすぎるな!
- 例外が無くも無いですが一般的にクソコードを完全に排除するのは明らかにオーバーエンジニアリングであり、投資したコストに見合うだけのリターンはまず得られません。コストのかかる清書はその修正がコストに見合うだけのリターンが見込めそうか一考しましょう。
- コストをかけ過ぎた綺麗なコードはそのコードが不要になってもかけ過ぎたコストを回収することはできず、またコードや設計の修正時に本来的には不要になってもかけ過ぎたコストを惜しんで削除することを惜しみ躊躇してしまう事にも繋がります。
踏み倒せる借金(技術的負債)を返すな!
- 技術的負債と呼ばれる類いのモノは実際のところその大半は踏み倒せるモノです。火が付いてる状態で悪影響を及ぼし続けてるモノならともかく、計画的に踏み倒す事も視野に入れましょう。
- 逆の視点で捉えると、いつまでもそのままになりやすいという事です。最初からあるべき形になってないと不味いというポイントは見極めてプログラミングに臨みましょう。
設計の見直しや仕様の削り込みを検討すべし!
- 望ましい形の清書がなかなかできない場合、上位の設計がクソ設計なことは良くあります。クソコードより直すべきはクソ設計です。
- 不必要な仕様はまだ残ってませんか? クソ設計より直すべきはクソ仕様です。
クソ設計について
- レイヤーがより上位というだけでクソ設計についてもここで述べてるクソコードと概ね同じ事が当てはまります。
- ただ、クソコードよりも影響が大きくなり易く修正コストも大きくなり易いので、設計がクソであることが発覚し易いようにコストをかけずに素早く進行することで傷を浅くしましょう。
果てに
- あなたがプログラマとしてのより多くの経験を積んでいけばコストをかけずにより良いコードをサラリと記述できる場面が増えていくことでしょう。