社内で読書会をやってみたので、ちょっとした感想を書いてみます。
UNIXという考え方
今回取り上げた本です。
読書会やってみた
「緩い感じの読書会をやりたいなぁー」と思い立ち上げてみました。
参加者がいないと一人もくもく会参加者0人になるなーと内心ドキドキしていましたが、参加者がいて良かったです。
参加してくれた方々ありがとうございました。
内容を語ってみる
そもそもUNIXを語る前に普段親しんでいるLinuxとの違いは?ということから軽く説明をしました。
- UNIXは、もっとも古いOSの一つでいろいろなOSの土台になったOS
- LinuxはUNIXを参考にして作られ親戚のようなもの
- リーナス・トーバルズというフィンランドの人が発明した。この方はGitの発明者でもあるすごい人
リナックスチョットデキルの人、作った人なのに「チョットデキル」Tシャツを着て話題になった(ネタを説明するの忘れてたああ残念)
Miroのマインドマップにまとめて解説をしました。
とっっってもオススメのツールです。これがないと発表とかできない身体になってしまいました()
UNIX哲学
本書では基本的な9つの定理が紹介されていますが、個人的に「これは是非とも読書会の成果として、持ち帰って貰いたい」と思う4つの哲学について解説をしました。
スモール・イズ・ビューティフル
小さいものは美しいという考え方です。(そのままの意)
小さいプログラムのメリット
- 小さいからコードがわかりやすい
- 小さいから保守しやすい
- システムにやさしい: 少ないリソースですむ
- 組み合わせがしやすい:柔軟性に富んだプログラムを作ることができる。(マイクロサービスに通ずる考え方では?)
一つのプログラムには1つのことをうまくやらせる
- 一つのことに集中させることで小さなプログラムを作ろうという試み
- オブジェクト指向での単一責任原則に似てますね
できるだけ早く試作する。
試作をしなければいけない理由
- 学ぶことができる(何がうまくいき、何がうまくいかないかに気付ける)
- 変化にたいして早く舵取りをできる
- 90%なら早くできる(試作をして90%を目指す) ※さらなるUNIXの考え方の一つですが、超訳しました。
効率より移植性
- 最も効率の良い方法は移植性がかける(それ独自のプログラムになってしまう)
- プログラムは進化して拡張していくもの移植性が高くないとプログラムとして生き残れない
- 階層的な考え方はオブジェクト指向にも通ずるものがある ※さらなるUNIXの考え方の一つですが、超訳しました。
まとめ
最後にこの本で個人的に一番グッときたポイントを紹介します。
覚えておいてほしい。ソフトウェアは、実は作るものではなく、成長していくものなのだ。成長したソフトウェアを新しいハードウェアにも移植できればそのソフトウェアの価値は上がる。新しいハードウェアは頻繁に現れる。移植性の高いソフトウェアは、すぐにその新しいアーキテクチャの長所を利用できる。そこで、試作では効率より移植性を優先させる。この結果、移植できるものは生き残る。それ以外のものは、やがて時代に取り残されてしまうだろう。<第八章 132ページ抜粋>
「実は作るものではなく、成長していくもの」この言葉にはハッとしました。
視座を高く持った時、確かに成長していくものですね、なるほど!
本書は2001年発行と少し古い本で現在ではそぐわないような点もあるのではないかとは思いますが、それ故に原理原則のような哲学的な本だなと感じました。
とても薄い本(一般的な技術書に比べて)なのでサクッと読めると思います。
是非とも本書を手に取って読んでみてください。おしまい。