日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

三读《UNIX编程艺术》——UNIX哲学

發(fā)布時間:2024/8/1 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 三读《UNIX编程艺术》——UNIX哲学 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

如果在我目前的職業(yè)生涯中要選出一本對我影響最大的書籍,我一定會選擇ESR的《UNIX編程藝術》。第一次讀此書時資歷尚淺,更多的是當做一本課外讀物來看,但是隨著職業(yè)中接觸了更多不同的操作系統(tǒng),完成了更多項目產(chǎn)品的設計、架構、實現(xiàn),對書中所講內(nèi)容產(chǎn)生了更大的共鳴。在第三次讀此書之際,把書中很多有價值的思想提取出來給自己一個總結,希望也能給大家?guī)硪淮畏窒怼?/p>


本書關注的重點:不止于方法,更重乎理念。知識(方法)和專能(理念)差異巨大,憑借知識可以推斷出該做什么,而專能讓你甚至在無意之間,條件反射似的把事情做好。

  • 看看UNIX的生命力:今天,化生為Linux、BSD、Solaris、MacOS X以及好幾個其它變種的Unix,使其前所未有的強大。UNIX這種穩(wěn)定而且強大的生命力會讓你的知識投資更趨穩(wěn)定。

  • UNIX的設計理念:最終用戶永遠比操作系統(tǒng)設計人員更清楚他們究竟需要什么。它提供的是機制,而非策略。,雖然這種自由放縱主義風格會讓它失去很多非技術型用戶。但從長遠來看,這是個優(yōu)勢,因為策略相對短壽,而機制才會長存

  • 對windows的批評:在這樣的操作系統(tǒng)中,完成操作系統(tǒng)預見的任務很容易,但是完成其沒有預料到的任務,用戶不是無計可施就是痛苦不堪。但UNIX卻具有非常徹底的靈活性。

  • UNIX的hack之趣:對于程序員和開發(fā)人員來說,如果完成某項任務所需付出的努力對他們是個挑戰(zhàn)卻又恰好又在力所能及的范圍內(nèi),他們就會覺得很有樂趣。因此,趣味性是一個峰值效率的標志。充滿痛苦的開發(fā)環(huán)境只會浪費勞動力和創(chuàng)造力;只會在無形中耗費大量時間、資金、機會。

UNIX哲學

Unix哲學是自下而上的,而不是自上而下的。Unix哲學注重實效,立足于豐富的經(jīng)驗。你不會在正規(guī)方法學和標準中找到它,它更接近于隱形的半本能的知識,即UNIX文化所傳播的專業(yè)經(jīng)驗。

  • 模塊原則:使用簡潔的接口拼合簡單的部件

    • 計算機編程的本質(zhì)就是控制復雜度。

    • 用清晰的接口把若干簡單的模塊組合成一個復雜軟件。如此一來,多數(shù)問題只會局限于某個局部,那么就還有希望對局部進行改進而不至牽動全身。

  • 清晰原則:清晰勝于機巧

    • 維護如此重要而成本如此高昂;在寫程序時,要想到你不是寫給執(zhí)行代碼的計算機看的,而是給人——將來閱讀維護源碼的人,包括你自己——看的。

  • 組合原則:設計時考慮拼接組合

    • 在輸入輸出方面,Unix傳統(tǒng)極力提倡采用簡單化、文本化、面向流、設備無關的格式。

  • 分離原則:策略同機制分離,接口同引擎分離

  • 簡潔原則:設計要簡潔,復雜度能低則低

    • 來自多方面的壓力常常會使程序變得復雜,其中一種就是來自技術上的虛榮心理。

    • 過度的復雜性往往來自項目的要求,而這些要求常常基于當月的推銷熱點,而不是給予顧客的需求和軟件實際能提供的功能。

    • 要避免這些陷阱,唯一的辦法就是鼓勵另一種軟件文化,以簡潔為美,人人對龐大復雜的東西群起而攻之——這是一個非常看重簡單解決方案的工程傳統(tǒng),總是設法將程序系統(tǒng)分解為幾個能夠協(xié)作的小部分,并本能的抵制任何用過多噱頭來粉飾程序的企圖。

  • 吝嗇原則:除非別無他法,不要編寫龐大的程序

  • 透明性原則:設計要可見,以便審查和調(diào)試

    • 因為調(diào)試通常會占用四分之三甚至更多的開發(fā)時間,所以一開始就多做點工作以減少日后調(diào)試的工作量會很劃算。一個特別有效的減少調(diào)試工作量的方法就是設計時充分考慮透明性和顯見性。

  • 健壯性:健壯源于透明和簡潔

  • 表示原則:把知識疊入數(shù)據(jù)以求邏輯質(zhì)樸而健壯

    • 數(shù)據(jù)要比編程邏輯更容易駕馭。所以接下來,如果要在復雜數(shù)據(jù)和復雜代碼中選擇一個,寧愿選擇前者。更進一步:在設計中,你應該主動將代碼的復雜度轉(zhuǎn)移到數(shù)據(jù)之中去。

  • 通俗原則:接口設計避免標新立異

    • 最易用的程序就是用戶需要學習新東西最少的程序——或者,換句話說,最易用的程序就是最切合用戶已有知識的程序。

  • 緘默原則:如果一個程序沒有什么好說的,就保持沉默

  • 補救原則:出現(xiàn)異常時,馬上退出并給出足量錯誤信息

    • 軟件要盡可能從容的應付各種錯誤輸入和自身的運行錯誤。但是,如果做不到這一點,就讓程序盡可能以一種容易診斷錯誤的方式終止。

  • 經(jīng)濟原則:寧花機器一分,不花程序員一秒

  • 生成原則:避免手工hack,盡量編寫程序去生成程序

  • 優(yōu)化原則:雕琢前先得有原型,跑之前先學會走

    • 90%的功能現(xiàn)在能實現(xiàn),比100%的功能永遠實現(xiàn)不了強。做好原型設計可以幫助你避免為蠅頭小利而投入過多的時間。

    • 先制作原型,再精雕細琢。優(yōu)化之前先確保能用。

    • 先給你的設計做個未優(yōu)化的、運行緩慢、很耗內(nèi)存但是正確的實現(xiàn),然后進行系統(tǒng)地調(diào)整,尋找那些可以通過犧牲最小局部簡潔性而獲得較大性能提升的地方。

  • 多樣原則:決不相信所謂的“不二法門”的斷言

  • 擴展原則:設計著眼未來,未來總比預想快

    • 要為數(shù)據(jù)格式和代碼留下擴展的空間。

    • 設計協(xié)議或者文件格式時,應使其具有充分的自描述性以便可以擴展。

  • 所有的Unix哲學濃縮為一條鐵律

    KISS——Keep It Simple,Stupid!

    總結

    以上是生活随笔為你收集整理的三读《UNIX编程艺术》——UNIX哲学的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。