読者です 読者をやめる 読者になる 読者になる

TPOP principle 3.64 UNIX哲学9 - フィルタ化

プリンシプル オブ プログラミング

第3章

principle 3.64 UNIX哲学9 - フィルタ化

ソフトウェアはフィルタである

  • データを生成するのは人間
  • データにフィルタをかけて別の出力を表示するのがコンピュータ
  • 故に、まず入力ストリームと出力ストリームに着目し、そのフィルタリングとして設計を考えればよい
  • UNIXではstdin, stdout, stderrをインターフェースとしてソフトウェア同士をコネクタブルにしている

UNIX哲学・小定理

  • 環境カスタマイズ

    • 最初の学習コストが高くても、ある程度学べばユーザがチューニングできるようになる方が長く使われるソフトウェアになる
  • 軽薄短小カーネル

    • カーネルにアプリケーションを組み込んだら、そのアプリケーションを保守する人がいなくなる
  • 小文字使用

    • 小文字で短く、目に優しくする
    • ソート時に大文字が目立つ
  • 森林保護

    • ドキュメントは電子化されていなければフィルタリング出来ない
  • 沈黙は金

    • 必要な情報が無駄な情報に埋もれてはならない
    • エラーなどには基本的に沈黙し、成功したときだけ有益な出力を返す
  • 並列思考

  • 部品コラボレーション
  • 90パーセント解

    • 90パーセントを効率的に処理することを保証し、10パーセントはユーザに任せる
    • 10パーセントの、時間のかかる処理や、プログラミングしにくい処理を故意に無視する
  • 劣るが勝る

    • 単一の巨大なソフトウェアよりも、小さい劣ったソフトウェアの最大公約数で勝負する
  • 階層指向

    • 階層構造アーキテクチャ
    • 各々の階層構造で成功実績を収める
      • プロセスツリー
      • Xウィンドウシステム
      • ネットワークサービス