Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
UNIX哲学
Search
nikawa2161
December 16, 2025
14
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
UNIX哲学
nikawa2161
December 16, 2025
More Decks by nikawa2161
See All by nikawa2161
Node.js Subpath imports
nikawa2161
0
21
Sagaパターン入門(続編)
nikawa2161
0
30
Sagaパターン入門
nikawa2161
0
40
沖縄観光とPostgreSQL排他制約の話
nikawa2161
0
35
20251209_プログラミング原則の学び
nikawa2161
0
25
自分のコードを数年ぶりに読んだら
nikawa2161
0
19
ユーザーインタビュー分析に参加して得られたことと気づき
nikawa2161
0
24
oEmbedとは?
nikawa2161
0
93
はじめまして、にかわです
nikawa2161
0
20
Featured
See All Featured
The Invisible Side of Design
smashingmag
302
52k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
4k
Building an army of robots
kneath
306
46k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
62
44k
Are puppies a ranking factor?
jonoalderson
1
3.5k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
For a Future-Friendly Web
brad_frost
183
10k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
840
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
160
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
220
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.9k
Transcript
1 ✎ UNIX思想・哲学 プリンシプルから学ぶ、普遍的な設計原則 2025.12.16 | 技術勉強会
• 本日のアジェンダ INDEX UNIXとは何か 01 UNIXの歴史 02 UNIX哲学の原則 03 まとめ
04 2
01 CHAPTER ONE UNIXとは 3
UNIXの特徴 古参OSの一つで、現代のOSの基礎となっている 主な特徴 堅牢性: 信頼性の高いシステム設計 シンプル: 無駄のない軽量な構造 影響力: 多くのOSの土台となった 01
UNIXとは 4
OSの系統図 UNIXから派生したOSは現在も広く使われている 01 UNIXとは 5
02 CHAPTER TWO UNIXの歴史 6
MULTICSプロジェクト 多目的OSの超大型プロジェクト MIT・ベル研究所・GEの三者協力で開始 仮想記憶、プロセスなど革新的アイデア プロジェクト肥大化により、ベル研が撤退 その後継として、UNIXが生まれた 02 UNIXの歴史 7
UNIXの誕生 トンプソンとリッチーの創作 ベル研のトンプソンとリッチーがゲームで遊ぶために OSを自作したのが始まり MULTI UNI(対比的な命名) シングルタスクのシンプルなOS 02 UNIXの歴史 8
C言語とUNIXの普及 移植性の向上が成功の鍵 初期:アセンブリ言語で実装(移植性が低い) トンプソンがB言語を開発 → リッチーが改良してC言語を生み出す → UNIXをC言語で書き直し 結果: 移植性・保守性が飛躍的に向上し、普及
02 UNIXの歴史 9
03 CHAPTER THREE UNIX哲学 10
UNIX哲学とは UNIXを支え続ける設計思想 古くから存在し、今も第一線で使われている普遍的な哲学 UNIXで採用されたアイデアは、 現代のソフトウェア開発にも活かされている 03 UNIX哲学 11
9つの原則 UNIX哲学は以下の定理としてまとめられている 1. 小は美なり 2. レバレッジ・ソフトウェア 3. 一つ一つ仕事 4. シェルスクリプト活用
5. 速攻プロトタイプ 6. 対話インタフェース回避 7. 効率性より移植性 8. フィルタ化 9. データはテキスト 03 UNIX哲学 12
小は美なり 小さいソフトウェアが優れている理由 4つのメリット 理解が容易: 1つのことに集中、コードがシンプル 保守が容易: わかりやすいコードは保守しやすい 軽量: メモリ占有が少なく、性能が向上 組み合わせやすい:
柔軟な対応が可能 03 UNIX哲学 13
小は美なり:コード例 小さい例(Good) export const yenToMan = (yen: number) => Math.round(yen
/ 10000); export const formatManYen = (yen: number) => `${yenToMan(yen)}万円`; 明確: 各関数の役割が一目瞭然 大きい例(Bad) export const formatManYenBig = ( yenInput: unknown, opts: FormatOptions = {} ): string => { // バリデーション、オプション処理 // 複数の責務を持つ // ... return `${man}${unit}`; }; 複雑: 理解に時間がかかる 03 UNIX哲学 14
速攻プロトタイプ 早期にプロトタイプを作成する 完璧な仕様書を待つより、失敗から学ぶを優先 3つのメリット 前提の誤りを早期に発見できる 要件不備による手戻りを減らせる 早い段階から改善を始められる 「待つは時間の浪費」 03 UNIX哲学
15
効率性より移植性 移植性を優先する設計 ハードウェアが変わっても、ソフトウェアを継続使用 なぜ重要か ハードウェアは必ず古くなる 別環境への移植コストを削減 ソフトウェアの価値を維持 03 UNIX哲学 16
効率性より移植性:例 効率優先(Bad) export const saveToken = (token: string) => {
localStorage.setItem("token", token); }; localStorageに直接依存 移植性優先(Good) type TokenStore = { save(token: string): void; load(): string | null; }; export const saveToken = ( store: TokenStore, token: string ) => { store.save(token); }; 保存先を差し替え可能 03 UNIX哲学 17
レバレッジ・ソフトウェア 既存ツールを組み合わせて大きな成果を出す 原則 車輪の再発明を避ける 小さな部品を繋ぐ(グルー言語の活用) 巨大な一体型を作らない 少ない労力で、最大の成果を実現する 03 UNIX哲学 18
レバレッジ・ソフトウェアの概念 03 UNIX哲学 19
まとめ 学んだこと UNIXの起源: ゲームがきっかけで誕生 普遍的なアイデア: 今も多くのOSで活用 設計指針: 理由を知ることで適用しやすくなる 小さく: 小さく作って、にかわのように合成していこう
実践のポイント 小さく作り、組み合わせる ことで柔軟なシステムを構築 まとめ 20
21 ✎ ご清聴ありがとうございまし た | 技術勉強会|2025.12.16