UNIXという考え方―その設計思想と哲学 を読んだ

人間とウェブの未来 - Linuxエンジニアを目指して入社一年目にやって役にたったと思う事 で紹介されていた書籍のうちのひとつ。

原版は90年代前半くらいに出版されていて、今から20年前くらいに書かれた本だった。

小さいソフトウェアを組み合わせて大きなソフトウェアをつくるのがとにかく良いことで、 ひたすら、下記のワンライナーみたいなのがいかに最高かが書かれている。

$ tail -10000 access_log | cut -f 1 -d ' ' | sort | uniq -c | sort -nr | head -10

UNIX勉強するときにだいたいそういうことは勉強するんだけど、ある日気づいたら忘れてしまっていて、今つくってるソフトウェアにどんどん機能を追加していたりする。 もしくはシェルスクリプトを30行ぐらい書けばすむことをいろいろなオプションを処理させるためにがんばってRubyで書いたりする。 YAPCでしゃべったサーバ管理ツールのメトリクス収集する実装も、ジョブキューとか持ち出さずに、gnu parallel とPerlスクリプトの組み合わせで十分だったんじゃないかという反省も生まれてる。

運用エンジニアという職種上、いろいろなツール/ミドルウェアを組みあわせて目的を達成することが多いので、自分でアプリケーションを実装する場合も、他のツールとの組み合わせをよく考えて、てこの原理をうまく行かせるような設計にしたい。

UNIXという考え方―その設計思想と哲学

UNIXという考え方―その設計思想と哲学