UNIX编程艺术 UNIX哲学
UNIX哲學(xué)起源于Ken Thompson早期關(guān)于如何設(shè)計(jì)一個服務(wù)接口簡介、小巧精干的操作系統(tǒng)的思考,隨著UNIX文化在學(xué)習(xí)如何盡可能發(fā)覺Thompson設(shè)計(jì)思想的過程中不斷成長,同時一路上還從其它許多地方博采眾長。
是自下而上的,注重實(shí)效,立足于豐富的經(jīng)驗(yàn)。
模塊原則:使用簡潔的接口拼合簡單的部件
清晰原則:清晰勝于技巧
組合原則:設(shè)計(jì)時考慮拼接組合
分離原則:策略同機(jī)制分離,接口同引擎分離
簡潔原則:設(shè)計(jì)要簡潔,復(fù)雜度能低則低
吝嗇原則:除非卻無它法,不要編寫龐大的程序
透明性原則:設(shè)計(jì)要可見,以便審查和調(diào)試
健壯原則:健壯源于透明與簡潔
表示原則:把知識疊入數(shù)據(jù)以求邏輯質(zhì)樸而健壯
通俗原則:接口設(shè)計(jì)避免標(biāo)新立異
緘默原則:如果一個程序沒什么好說的,就保持沉默
補(bǔ)救原則:出現(xiàn)異常時,馬上退出并給出足量錯誤信息
經(jīng)濟(jì)原則:寧花機(jī)器一分,不花程序員一秒
生成原則:避免手工hack(砍、劈、猛踢、非法侵入),盡量編寫程序去生成程序
優(yōu)化原則:雕琢前先得有原型,跑之前先學(xué)會走
多樣原則:決不相信所謂“不二法門”的斷言
擴(kuò)展原則:設(shè)計(jì)著眼未來,未來總比預(yù)想快
第4章 模塊性:保持清晰,保持簡潔
4.1 封裝和最佳模塊大小
4.2 緊湊型和正交性
4.2.1 緊湊型
4.2.2 正交性
4.2.3 SPOT原則
Don’t Repeat Youself
真理的單點(diǎn)性 Single Point of Truth
4.2.4 緊湊性和強(qiáng)單一中心
4.2.5 分離的價值
限制不僅提倡了經(jīng)濟(jì)性,而且某種程度上提倡了設(shè)計(jì)的優(yōu)雅。要達(dá)到這種簡潔性,盡量不要去想一種語言或操作系統(tǒng)最多能做多少事情,而是盡量去想這種語言或操作系統(tǒng)最少能做的事情–不是帶著假想行動,而是從零開始(禪稱為“初心”(beginner’s mind)或者叫“虛心”(empty mind))。
要達(dá)到緊湊、正交的設(shè)計(jì),就從零開始。禪教導(dǎo)我們:依附導(dǎo)致痛苦;軟件設(shè)計(jì)的經(jīng)驗(yàn)教導(dǎo)我們:依附于被人們忽略的假定將導(dǎo)致非正交、不緊湊的設(shè)計(jì),項(xiàng)目不是失敗就是成為維護(hù)的夢魘。
禪授超然,可以得教化,去苦痛。
Unix傳統(tǒng)也從產(chǎn)生設(shè)計(jì)問題的特定、偶然的情形講授分離的價值。抽象、簡化、歸納。因?yàn)槲覀兙幹栖浖菫榱私鉀Q問題,所以我們不能完全超然于問題之外–但是值得費(fèi)點(diǎn)心思,看看可以拋棄多少先入之見,看看這樣做能不能使設(shè)計(jì)變得更緊湊、更正交。這樣做下來,代碼復(fù)用經(jīng)常由此變?yōu)榭赡堋?br /> 關(guān)于Unix和禪的關(guān)系的笑話同樣也是Unix傳統(tǒng)中一個仍然鮮活的部分。這絕非偶然。
4.3 軟件是多層的
4.3.1 自頂向下和自底向上
4.3.2 膠合層
總結(jié)
以上是生活随笔為你收集整理的UNIX编程艺术 UNIX哲学的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java程序员面试应该准备什么?
- 下一篇: VB计算机中next是什么意思,VB程序