毎週1冊技術書を読んでブログでアウトプットすることを目標にしており、今回は第13弾です。
今回は、UNIXという考え方―その設計思想と哲学 を読んでまとめました。
50年近く使われ続けているOS、UNIXの設計思想と哲学を分かりやすく解説している技術書です。
有名な起業家 けんすうさんもオススメされています。
割と人生観に影響を与えた本なんですが「UNIXという考え方」は、プログラミングとか技術とかわからない人でもなんとなく読めると思うのでオススメです。https://t.co/59GNsgQUhK
— けんすう👀🚀 (@kensuu) February 20, 2018
プログラミングの知識がなくてもサクッと読めるので、UNIXの設計思想・哲学について興味がある方は是非読んでみてください!
- 作者: Mike Gancarz,芳尾桂
- 出版社/メーカー: オーム社
- 発売日: 2001/02/01
- メディア: 単行本
- 購入: 40人 クリック: 498回
- この商品を含むブログ (145件) を見る
- 第1章 UNIXの考え方:たくさんの登場人物たち
- 第2章 人類にとって小さな一歩
- 第3章 楽しみと実益をかねた早めの試作
- 第4章 移植性の優先順位
- 第5章 これこそ梃子の効果!
- 第6章 対話的プログラムの危険性
- 第7章 さらなる10のUNIXの考え方
- おわりに
第1章 UNIXの考え方:たくさんの登場人物たち
-
UNIXの考え方の定理
-
-
スモール・イズ・ビューティフル:小さいものは、大きいものにはない利点がいくつもある。小さいもの同士なら、簡単に独特の便利な方法で組み合わせることができる
-
-
-
1つのプログラムには1つのことをうまくやらせる:1つのことに集中することで、プログラムに不要な部分を無くせる。不要な部分があると、実行速度が遅くなり、不必要に複雑になり、融通が効かなくなってしまう
-
-
-
できるだけ早く試作する:あらゆるプロジェクトにおいて試作は重要。一般的に、試作は設計全体のうちのほんの一部として扱われているが、UNIXにおいての試作は、効率的な設計に欠かせない重要な一部である
-
-
-
効率より移植性を優先する:現代のソフトウェア設計では、プログラムに移植性があることは当たり前のこととなっている。これはUNIXの考え方のうち、他のシステムにも広く取り入れられているものの一つである
-
-
-
過度の対話的インタフェースを避ける:いくつかのコマンドは、ユーザーを拘束するインタフェースを持つ。そのコマンドを実行してしまうと、実行中に他のコマンドを実行することはできない。つまり、そのコマンドの実行中は、ユーザーはそこを離れられなくなってしまう。そのため、この類のものは拘束的ユーザーインタフェースと呼ばれる
-
第2章 人類にとって小さな一歩
-
プログラムには、過多にならないように適切にコメントを付ける。サブルーチンを短く保つ。必要最小限のコードだけにまとめる。このような努力をして初めて、保守しやすい小さなプログラムとなる
-
作ったときには予期できなかったことに対しても、小さなプログラムなら直ちにそれに対処することができる
第3章 楽しみと実益をかねた早めの試作
-
最初の仕様から変更がないプロジェクトなどは稀である。最初からうまくやろうとするより、最初はうまくいかないと考えて対処した方が賢明である。後で大幅な変更に取り掛かるよりは、開発の初期段階で変更を行う方がはるかに安上がりとなる
-
「ソフトウェア開発に終わりはない。あるのはリリースだけだ」
第4章 移植性の優先順位
-
よいプログラムは死なず、ただ新しいハードウェアに移植される
-
プログラムを移植しやすく、データを持ち運びやすくしておくことで、ソフトウェアに長期的な価値が生まれる。移植性を最優先に設計するべき
第5章 これこそ梃子の効果!
-
既存のアプリーションをゼロから設計し直すことは、模倣ではあっても創造とは言わない。むしろこれを避けることで、新しい、わくわくするような設計世界への扉が開かれる
-
ある作業を自動化すると、そこに梃子の原理が働く
第6章 対話的プログラムの危険性
-
拘束的プログラムは、どこかで人間と対話することを想定しているため、ソフトウェアの梃子の効果を利用できない
-
プログラムから発生するデータの受け取り手が人間ではなく、別のプログラムかもしれないことを念頭に置いておく
-
プログラムに何ができるかという内向きのことばかり考えず、プログラムがどういう場所に入り込めそうかを考える。そうすれば、そのプログラムを一部とする大きな全体が見えてくる
第7章 さらなる10のUNIXの考え方
-
90%の解を目指す。90%の解とは、難しい部分を故意に無視することを意味している。難しい部分とは、問題の中で高くつく部分、時間のかかる部分、実装しにくい部分である。一番難しい10%を無視してよいのであれば、世界中のほとんどの問題はすぐにでも解決できる。これがUNIXの成功の一因である
-
UNIXの考え方とは、常に将来を見据えながらオペレーティングシステムとソフトウェアの開発にアプローチすることである。そこでは、常に変化し続ける世界が想定されている。将来は予測できない。一日ごとに今日が昨日になっていく日々を過ごしながら、将来に適応し、前進し続けなければならない。UNIXの理念とは、将来に向かうアプローチの一つである。その本質は柔軟であり続けることである。嵐が何度やってきても、風に揺れる木は折れることはない
おわりに
ここまで読んでいただきありがとうございます。
UNIXに関わらず設計思想全般に関する内容だったので、とてもいい勉強になりました。
本書自体140ページ程度でサクッと読めてしまうので、興味を持った方は是非お手に取って読んでみてください!(Kindle版が無いのは残念...)
- 作者: Mike Gancarz,芳尾桂
- 出版社/メーカー: オーム社
- 発売日: 2001/02/01
- メディア: 単行本
- 購入: 40人 クリック: 498回
- この商品を含むブログ (145件) を見る
次は、Team Geek ―Googleのギークたちはいかにしてチームを作るのか を読む予定です。
Googleのマネージャーによる、チームで働くノウハウについての本です。
評判のいい本なので読むのが楽しみ!
来週も頑張ります。