UNIX哲学
透明性を求めてデザインせよ。調査とデバッグが簡単になる。
開発者は将来そのプロジェクトに参加する開発者が、自分の思考プロセスを明瞭に理解できるように書き、有効な入力と正しい出力を容易に識別できる入出力形式を使用することによって、可視性と発見性を設計する必要がある。デバッグにかかる時間を短縮し、プログラムの寿命を延ばすことを目的としてる。
ポリシーをメカニズムから分離せよ。インターフェースをエンジンから分離せよ。
開発者はプログラムのメカニズムとプログラムのポリシーを分離する必要がある。一つの方法として、プログラムをフロントエンドのインターフェースと、そのインターフェースが通信するバックエンドのエンジンに分ける等がある。メカニズムを崩さずにポリシーを変更できるようにし、結果的にバグの数を減らすことを目的としている。
洗練させる前に原型(プロトタイプ)を作れ。最適化する前に原型が動くようにせよ。
開発者はソフトウェアを磨く前にプロトタイプを作るべきである。開発者がわずかな利益のために過剰な時間を費やすことを防ぐことを目的とする。
明瞭さは独創性よりも良い。
開発者が最も意志疎通を図るべき相手はコンピュータではなく、プログラムを読み、保守を行う自分を含めた開発者であるかのようにプログラムを書くべきである。このルールは、将来そのコードを扱う人にとって、コードが読みやすく、理解しやすいものにすることを目的とする。
知識をデータに織り込め。するとプログラムのロジックをつまらなくて頑丈なものにできる。
開発者は選択に迫られたとき、プログラムの手続き的なロジックよりも、データをより複雑にすることを選択すべきだ。なぜなら、人間にとって複雑なデータは、複雑なロジックに比べて理解しやすいからだ。プロジェクトに携わるどの開発者にとってもプログラムを読みやすくすることで、プログラムの保守を可能にすることを目的とする。