LoginSignup
17
20

More than 5 years have passed since last update.

『UNIXという考え方』読書録

Posted at

定理

スモール・イズ・ビューティフル

  • 小さなプログラムは分かりやすい
  • 小さなプログラムは保守しやすい
  • 小さなプログラムはシステムリソースにやさしい
  • 小さなプログラムは他のツールと組み合わせやすい

一つのプログラムには一つのことをうまくやらせる

  • 一つのことに集中することで、プログラムに不要な部分をなくせる

できるだけ早く試作する

  • 試作によって学ぶ
  • 早い試作はリスクを減らす

効率より移植性

  • プログラムを速くすることに時間をかけない
  • 最も効率の良い方法は、ほとんどの場合移植性に欠ける
  • 移植性のあるソフトウェアは、ユーザーのトレーニングを時間も減らす
  • よいプログラムは死なず、ただ新しいハードウェアに移植されるのみ

数値データはASCIIフラットファイルに保存する

  • データにも移植性を持たせる

ソフトウェアを梃子として使う

  • よいプログラマはよいコードを書く。偉大なプログラマはよいコードを借りてくる
  • 独自技術症候群を避ける
  • コードを他人が梃子として使うのを認める
  • すべてを自動化する

シェルスクリプトによって梃子の効果と移植性を高める

  • シェルスクリプトにはおそろしいほどの梃子の効果がある
  • シェルスクリプトは梃子の効果で時間も節約する

過度の対話的インターフェースを避ける

  • 拘束的プログラムはユーザーを人間と想定している
  • 拘束的コマンドパーサは、大きく醜い
  • 拘束的プログラムは「大きいものは美しい」的アプローチをとる
  • 拘束的プログラムは、他のプログラムと結合するのが難しい
  • 拘束的ユーザーインターフェースはスケーラビリティに欠ける
  • 拘束的ユーザーインターフェースは、ソフトウェアの梃子の効果を利用できない

全てのプログラムをフィルタとして設計する

  • 全てのプログラムはフィルタである

小定理

  • 好みに応じて自分で環境を調整できるようにする
  • オペレーティングシステムのカーネルを小さくする
  • 小文字を使い、短く
  • 紙のドキュメントを用いない
  • 沈黙は金
  • 同時に考える
  • 部分の総和は全体よりも大きい
  • 90パーセントの解を目指す
  • 劣るほうが優れている
  • 階層的に考える
17
20
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
20