だぐざの大釜

データサイエンス他いろいろ学んだ備忘録

『UNIXという考え方』はプログラミングのバイブルである

www.ohmsha.co.jp

UNIX的なものの考え方とは何か? OSの背後にある哲学を、9つの定理と平易な言葉で説く OSを使いこなすためには、その背後にある「哲学」を理解することが必要です。本書では技術的詳細には立ち入らず、その代わりに、今まで文章で表されることが少なかったUNIXの考え方を、9つの「定理」にまとめて平易な言葉で明らかにしています。

150ページほどの薄い本ではあるが、システムのあるべき姿や開発のテクニックが詰まっていた。

Unixというコンピューティングシステムの設計思想や哲学をまとめた本ではあるが、他の分野にも応用できる考え方が多く、それほどプログラムやシェルスクリプトに詳しくなくても読み進めることができた。

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

小さなもの同士なら組み合わせが簡単!

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

不要な部分を減らせる。実行速度が速く、シンプルで柔軟である。

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

効率的な設計には欠かせない。良いものを作るには試行錯誤あるのみ

定理4:効率より移植性

効率の良いプラグラムはすばらしい!だが、技術の進化とともに新しいプログラムが出現する。

移植の簡単なプログラムこそ長く使われる。

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

前定理より移植性のあるプログラムは重要であるが、それ以上に移植性のあるデータも重要である。

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

プログラムを再利用することで、比較的短時間に開発することが可能になる

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

シェルスクリプト1行でソースコード9353行分が実行できる、つまり、1行で9353倍のパワーを発揮する!!

シェルワンライナー160本ノックという本もあって面白い。 www.amazon.co.jp

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

使いやすいかもしれないが、ユーザーを拘束することになる。移植性が損なわれる。

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

ソフトウェアの本質はデータを処理することである。