はてなの金次郎

Pythonエンジニアの奮闘記。Python, Django, Gitlab, Docker, AWS, k8s...

「UNIXという考え方」から学んだこと。

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

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

概要

要約

UNIXの思想・考え方を紹介します。これはソフトウェア開発全般にも通ずる考え方であり、9つの考え方を一貫して行うことで効果的なものとなります。

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

面白かった章とその理由

1章 UNIXの考え方:たくさんの登場人物たち

9つの考え方のうち移植性について述べられているのが多いのが興味深かく、直接的に述べられていなくても間接的に関係する考え方も多いです。これは常に変化し続ける世界にアプローチするための考え方であり、UNIXが広く長く使われている理由が理解できた気がしました。また、9つの考え方のうちいくつかは周囲の方から学んだものがあり、そういったものは非常に納得感が高かったです。これからは、初めて知った考え方とともに意識的に考慮できるようになりたいです。

理解できなかった章とその理由

9章 UNIXとその他のオペレーディングシステムの考え方

Atari, MS-DOS, OpenVMSUNIXの違いについては理解できましたが、それぞれの仕組みなどについてはこの章だけでは不十分だと思ったので別途調べる必要がありそうです。業務で使うことがないので優先度はそこまで高くない気がするので時間があるときにでも。現時点では違いを理解できていれば良いかなと思います。

仕事に活かせそうな知識、活かせそうな状況と活かし方

  • UNIXの考え方を適用した方が良い部分は適用する。学んだからといって他人に考え方を押し付けない。コードを読んで意図が理解できなければ聞く。状況を汲み取り適用するか判断できるようになりたい。
  • 理解しやすいコードの書き方(リーダブルコード)などは誰にとっても正しい共通の規則がありそうだが、誰にとっても正しい考え方はないと思うので注意したい。(考え方に関する激しい議論を何回か見た気がする。)
  • シェルスクリプトを勉強する。

ブクログ始めました

フォローお待ちしてます。
https://booklog.jp/users/jumpyoshi