KISS(Keep It Simple, Stupid)

コードはシンプルにしろ、愚か者よ。
コードが無秩序になってしまう。
建築での、less is more(より少ないことは、より豊かなこと)と意味が似ている。

DRY(Don’t Repeat Yourself)

繰り返してはいけない。
コードリーディングが難しくなるから。

YAGNI(You Aren’t Going to Need It)

それはきっと必要にならない。
必要になるであろうコードを記述しても使わないことがほとんどであるから、必要なものだけ書くのがいい。

PIE(Program Intently and Expressively)

意図を表現してプログラミングせよ。
コードだけがソフトウェアの動作を正確かつ完全に知るための手がかりだから、コードそのものに意図が反映されるべきある。
書きやすさよりも読みやすさを意識すべき。
本質を見抜き、他者の視点を意識せよ。

SLAP(Single Level of Abstraction Principle)

抽象化レベルを統一せよ。
コードの抽象化概念を意識し、同一のレベルのもので分離する。
文章でいうと、序文、目次、セクション、章、段落、文、引用のように、そのコードはどのレベルにあるかを意識し、コードを分ける。
そうすることで、要約性と閲覧性をもたらす。
内容を書くことと、内容をわかりやすく伝えるための構成を考えることは別の作業でどちらも重要。そのモードの切り替えを意識する。

OCP(Open – Closed Principle)

オープン・クロースドの原則。
コードの変更を波及させず、コードを変更してもその他のコードになるべく影響を及ぼさないように依存関係を最小限にする(カプセル化などもこれに該当する)。
これはつまりコードの変更に柔軟に対応できるようにするということ。
より具体的には、クライアント、サーバーの2つのプログラムがある場合、直接接続するのではなく、間にインターフェースを作成し、そのインターフェースのプログラムを変更するだけで様々な挙動を変更できるようにする。
これはリスク管理、関係性の事前理解につながる。

名前重要

コーディングにおいては命名こそが最重要ということ。
他者へのUIの提供とも取れる。
わかりやすさ、検索のしやすさ、誤解のなさ、汎用性(特定の人しかわからないものは避ける)を意識する。