UNIXという考え方最終更新:2009.05.02

書籍情報

書籍目次

UNIXの考え方:簡単なまとめ

  1. スモール・イズ・ビューティフル
  2. 一つのプログラムには一つのことをうまくやらせる
  3. できるだけ早く試作を作成する
  4. 効率より移植性
  5. 数値データはASCIIフラットファイルに保存する
  6. ソフトウェアの梃子を有効に活用する
  7. シェルスクリプトを使うことで梃子の効果と移植性を高める
  8. 過度の対話的インタフェースを避ける
  9. すべてのプログラムをフィルタにする

定理1:スモール・イズ・ビューティフル

要約

NOTE

ここで言われる小さなプログラムとは、「機能セットの小さなプログラム」を指す。別にCode Golfのようなプログラムを推奨しているわけではない。

「小さなプログラムは他のツールと組み合わせやすい」はインターフェースが統一されたコマンドラインアプリケーション故のことだろうか?

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

要約

NOTE

本文ではlsコマンドのレイアウト機能について言及している。lsコマンドの本質的な機能は、ディレクトリの内容を一覧表示する事でありレイアウトに関する機能は本質的なものではないので、別のプログラムとして実装すべきであるとしている。

定理3:できるだけ早く試作を作成する

要約

NOTE

試作以前の段階(設計書や要求定義書上にしかプログラムが存在しない状態)では、全ては憶測に過ぎず、しかも人によって解釈が異なることさえ起こり得る。早い段階の試作(プロトタイプ)作成によって、プロジェクト関係者の合意(解釈の一致)が期待される。

この項はアジャイル開発プロセスやXPの概念と一致している。まずは試作品を作成し、そこから得られたフィードバックを反映していく手法を推奨している。

人間による三つのシステム - システムの生誕から熟成まで

定理4:効率より移植性

要約

NOTE

アーキテクチャの収斂やマルチプラットフォームなコンパイラや仮想マシン上で動作するプログラミング言語の登場で、移植性は今日ではそれなりに満足できる水準を得ていると思う。この本が書かれた当時は特定のアーキテクチャに依存したプログラムがゴロゴロしていた(リソース的な制約もあった)ので、殊更移植性を強調しているのだと思う。

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

要約

NOTE

データの移植性にはプレインテキストが最適であるという思想は、今日ではXMLに見ることが出来る。マイクロソフトでさえ、OfficeシリーズのフォーマットをXMLベースに転換した。

余談だがプレインテキスト主義者はExcel原理主義者を常に苦々しく思っている。

定理6:ソフトウェアの梃子を有効に活用する

要約

NOTE

現在でも十分に通用する概念。最近ではRSSやWEBサービスAPIを利用したマッシュアップアプリがそれにあたるだろうか。

定理7:シェルスクリプトを使うことで梃子の効果と移植性を高める

要約

NOTE

個人的にはシェルが移植できる環境なら、その他のプログラムが動作するのに必要なコンパイラやライブラリも移植できるのでは? とも思う。多分、現在よりもコンピュータの環境が多様だった時代のことなのだろう。

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

要約

NOTE

GUI全盛の今日ではこの定理を単純に当てはめるのは少し難しいかもしれない。しかし、ソフトウェア開発の現場に限って言えば、でこの定理は今でも受け継がれている(自動ビルドや自動テストなど)。

クライアントアプリではこの定理を適用するのは難しいかもしれないが、サーバ側で動作するアプリケーションには現在でも完全に適用が可能(むしろ自動化が必須)。

定理9:すべてのプログラムをフィルタにする

要約

NOTE

GUIアプリでさえ、ユーザーからの入力をフィルタするプログラムの結合によって成り立っているという概念。故にプログラムはシンプルで無くてはならない。

inserted by FC2 system