UNIX編程藝術

出版時間:2006-8  出版社:人民郵電出版社  作者:雷蒙德  頁數:525  字數:729000  
Tag標簽:無  

內容概要

本書主要介紹了UNIX系統(tǒng)領域中的設計和開發(fā)哲學、思想文化體系、原則與經驗,總結了UNIX發(fā)展史上成功的經驗和失敗的教訓、經過時間驗證的編碼策略以及普遍適用的實用工具。本書由著名的UNIX編程大師、開源運動領袖人物之一Eric S. Raymond傾力多年編寫而成,匯集了UNIX之父Ken Thompson等13位UNIX先鋒的經典評論。本書內容涉及領域文化、軟件開發(fā)設計與實現(xiàn),覆蓋面廣、內容深邃,完全展現(xiàn)了作者極其深厚的經驗積累和領域智慧,是UNIX領域中一本不朽的經典名著。

作者簡介

Eric S.Raymond從1982年開始從事UNIX開發(fā)。作為開源社區(qū)文化的倡導者和呼吁者,他在《大教學與市集》中發(fā)表了這場運動的宣言,同時他還編輯了《新黑客詞典》一書。

書籍目錄

ⅠContext  1 Phoilosphy:Philosophy Matters  2 History:A Tale of Two Cultures  3 Contrasts:Comparing the Unix Philosophy with othersⅡDesign  4 Modularity:Keeping It Clean,Keeping it Simple  5 Textuality:Good Protocols Make Good Practice  6 Transparency:Let Threre Be Light  7 Muliprogramming:Separating Processes to Separate Function  8 Minilanguages:Finding a Notation That Sings  9 Generation:Pushing the Specification Level Upwards  10 Configuration:Staring on the Right Foot   11 Interfaces:User-Interface Design Patterns in the Unix Environment  12 Optimization  13 Complexity:As Simple As Possible,but No SimplerⅢ Implementation  14 Languages:To C or Not To C?  15 Tools:The Tactics of Development  16 Reuse:On Not Reinventing the WheelⅣ Community  17 Portability:Software Portability and Keeping Up Standards  18 Documentation:Explaining Your Code to a Web-Centric World  19 Open Source:Programming in the New Unix Community  20 Futures:Dangers and OpportunitiesA Glossary of AbbreviationsB ReferencesC ContributorsD Rootless Root:The Unix Koans of Master FooColophonIndex

圖書封面

圖書標簽Tags

評論、評分、閱讀與下載


    UNIX編程藝術 PDF格式下載


用戶評論 (總計35條)

 
 

  •   令狐沖學劍,先學劍招,再學劍意,這本書就是這個意思。書中并沒有太多關于技術理論的探討,如果需要學習Unix編程,可以看Unix高級編程之類的書,或者LInux編程白皮書當入門也可以,這本書需要對Unix的設計思路有一定了解才可以,比如,到底什么叫“簡單”,什么才是最適合的接口,程序應該做什么,不應該做什么。如果你只會用Windows,理解起來可能有些困難,因為有些思維上的東西與Windows是格格不入的。不過如果你了解Unix或者Linux,那么可以看一看這本書,不僅是技術,更多的是習慣。比如,看了這本書,一個很沒有頭緒的項目就讓我想出了方案。項目中有一堆根本不粘邊的功能模塊,而在細節(jié)的地方卻需要通信。沒有人能預測這些“細節(jié)”是否會變成下一期的核心功能??戳诉@本書,我才明白,應該把所有功能做成小軟件,在一定程序上,這些小軟件還可以獨立運行,但可以通過統(tǒng)一的接口粘合成整套系統(tǒng)?,F(xiàn)在這個系統(tǒng)正在開發(fā)中,狀態(tài)不錯。早就讀過這本書,是中文版的,看到這本書就快買下來了,哪怕是紀念也好,最起碼也應該讀一讀英文原版。值得不斷地去讀,這本書,加上算法導論,還有計算機程序設計的藝術,都是值得一生珍藏的好書。讀這本書,需要了解Unix,Linux的哲學思維,但不需要你一定是高級程序員。這本書不僅值得程序員去讀,也適合中國做IT項目的客戶,項目經理,產品經理去讀,同時也適合大學生去讀。比如,有些人只知道用Word打字,一個通知十來個字也用Word,發(fā)個郵件也用附件,這本書同時也會教會你,文本文件才是最節(jié)省資源,并且是全“宇宙“統(tǒng)一的通信接口。真的是一本好書??雌饋恚袆蛹舆^癮,同時還會有點傷感,為我周圍的人對Unix,KISS的不理解而傷感。好書不用我夸,大家自然知道。
  •   大牛經典!!
  •   居然都沒中文版的了,不過內容確實很充實,組織得也很好。英文寫得可能比較地道,畢竟很多都是經驗之談而不只是具體技術介紹,讀起來還是有些吃力。
  •   很好甚強巨
  •   對Linux歷史以及文化都很有涉及開源的鼓吹者在此基礎上闡述了Unix編程中的原則和思想
  •   外表上有撕掉膠布的膠的殘留物,黃黃的。書側面很臟,比我用過的二手書都臟,很失望。我原本不想在書評上寫這些無關的話,但是我覺得再好的書,如果買到就是個破爛的,怎么也不能高興起來,所以我希望你看到了這些能對你有所參考。我不能說所有的書都臟,但是我的書確實很不好。
  •     之前讀過《Linux/Unix設計思想》一書,加上這些年使用Linux的經驗,對Unix的一些思想有所了解。讀這本書就是一個老牌黑客給你講各種經驗和故事,穿插著上古時期的各種大神尊者的趣事。
      
      1.6章的目錄總結了Unix的設計哲學:
      
      1.6 Unix哲學基礎 11
      1.6.1 模塊原則:使用簡潔的接口拼合簡單的部件 14
      1.6.2 清晰原則: 清晰勝于機巧 14
      1.6.3 組合原則:設計時考慮拼接組合 15
      1.6.4 分離原則: 策略同機制分離,接口同引擎分離。 16
      1.6.5 簡潔原則:設計要簡潔,復雜度能低則低 17
      
      1.6.6 吝嗇原則: 除非確無它法,不要編寫龐大的程序。 18
      1.6.7 透明性原則:設計要可見,以便審查和調試 18
      1.6.8 健壯原則: 健壯源于透明與簡潔。 18
      1.6.9 表示原則: 把知識疊入數據以求邏輯質樸而健壯 19
      1.6.10 通俗原則:接口設計避免標新立異 20
      1.6.11 緘默原則:如果一個程序沒什么好說的,就保持沉默 20
      1.6.12 補救原則: 出現(xiàn)異常時,馬上退出并給出足量錯誤信息 21
      1.6.13 經濟原則: 寧花機器一分,不花程序員一秒 22
      1.6.14 生成原則: 避免手工hack,盡量編寫程序去生成程序 22
      1.6.15 優(yōu)化原則: 雕琢前先得有原型,跑之前先學會走 23
      1.6.16 多樣原則:決不相信所謂“不二法門”的斷言。 24
      1.6.17 擴展原則: 設計著眼未來,未來總比預想快。 24
      
      總結成一個詞就是: KISS.
  •     最近這段時間比較忙,利用業(yè)余時間看完了這本書。雖然書中講到的很多例子都是上古文物,我沒有用過,不過原理都是相通的,對我的啟發(fā)很大。比如無所不在的KISS原則,實踐中慢慢體會到的SPOT原則,無不產生共鳴。下面是這些原則的一些筆記和個人理解。
      
      1. 模塊原則
      
      為什么要模塊化?計算機編程的本質就是控制復雜度。而模塊化可以降低整體復雜度,即使出現(xiàn)問題也只是局限于局部,方便維護。
      
      緊湊性和正交性是模塊化的兩個重要特性。對于現(xiàn)代項目來說,跨度一般都很大,完全達到緊湊性是非常困難的,只能盡量采用。
      
      正交性是指程序中每個動作有且只有一個方法,正交性的程序不但會減少程序中的副作用,而且從另一個方面達到緊湊性。SPOT(single point of truth)是指任何知識點在系統(tǒng)內應當只有一個唯一明確權威的表述。不要重復自身。重復會導致前后矛盾。重構的原則性目標就是提高正交性。
      
      2. 清晰原則
      
      所謂大巧不工,重劍無鋒。程序的清晰性比奇技淫巧更重要。選擇算法和實現(xiàn)時應考慮可擴展性和可維護性,復雜的bug容易產生bug,難以閱讀維護。同時在項目中養(yǎng)成注釋代碼的良好習慣。
      
      3. 分離原則:
      
      策略同機制分離,接口同引擎分離。策略是易變的,靈活的;機制是穩(wěn)定的。策略與機制混在一起會有兩個負面作用:1.使策略死板,難以適應用戶需求變化。2.任何策略的改變都極有可能動搖機制。而分離開來可以在探索新策略時不去改變已有機制。
      
      實現(xiàn)策略與機制分離的常用方法就是用腳本語言驅動的c語言實現(xiàn)機制,打包成庫。整個應用程序的控制流程則有腳本語言來控制,這就是策略。比如我們公司的產品就是策略機制分離的典型應用。底層引擎由c和c++實現(xiàn),lua做接口,上層流程用lua腳本實現(xiàn),用戶可以在一定范圍內自己設計流程。
      
      不過上層策略和下層機制分離并沒有那么容易,不管是從上到下還是從下到上的設計方向都有弊端。當上層的策略與下層的機制產生沖突時就可能需要中間膠合層來匹配。膠合層應該盡可能薄,薄膠合層是分離原則的升華。C語言是薄膠合層的典型范例,而面向對象語言則屬于厚膠合層,特別是繼承層數太多時,會嚴重增加復雜度。
      
      4. 簡潔原則
      
      出現(xiàn)越復雜,產生bug的概率就越高,排錯也越困難。以簡潔為美,拒絕花哨臃腫的程序。Keep it simple, stupid!
      
      5. 透明性原則
      
      透明性是針對程序的行為而言的,如果程序行為在一定程度上可以預測,那么程序就是透明的??娠@性指的是程序的功能很清楚,容易明白做了什么,怎么做的。比如Linux內核具有透明性,我們知道具有什么行為,但是不具有可顯性,因為源碼太復雜難懂了。
      
      6. 健壯原則
      
      健壯性指程序不僅在正常情況下運行良好,而且在超出設計者設想的意外條件下也能運行良好。盡量讓程序的內部邏輯更易于理解,使其透明化和簡潔化,最好避免程序出現(xiàn)過多特例和邊界條件。
      
      7. 表示原則
      
      數據比代碼邏輯更清楚明了,設計時主動將代碼的復雜度轉移到數據中去,選擇偏于維護和操作的數據。數據驅動編程是unix編程的重要組成部分。
      
      8. 通俗原則
      
      接口設計避免標新立異。最易用的程序就是用戶需要學習東西最少的程序,一定避免表面相似但內部卻不同的情況,比如重載函數內部行為變化太大。
      
      9. 緘默原則
      
      設計良好的程序將用戶的注意力視為有限的寶貴資源。信息內容應該符合最大驚奇原則,只對確實是異常的情況加以說明。如果調試需要,可以添加多級開關,發(fā)布時啟用最高級別開關。
      
      10. 補救原則
      
      出現(xiàn)異常時,馬上退出并給出足量錯誤信息。軟件在發(fā)生錯誤時如果沒有及時發(fā)現(xiàn),將會埋下嚴重的隱患。軟件應該能夠從容應付各種錯誤,如果做不到,就應該明確終止。有些時候程序不應該去容錯,比如輸入為空時最好直接退出并保留恢復機制和錯誤信息,處理輸入后再重啟,而不是檢查輸入是否為空,當數據出現(xiàn)問題卻恰好不為空時將會產生非常隱晦的錯誤。
      
      11. 優(yōu)化原則
      
      過早優(yōu)化是萬惡之源。先制作原型,再精雕細琢,優(yōu)化之前先確保能用,不要為蠅頭小利投入過量時間。
      
      同步于
      http://www.cnblogs.com/coderkian/p/3581468.html
      
  •     這本書,斷斷續(xù)續(xù),花了兩年的時間才基本看完一遍,因為時代過于久遠,其實很多內容并不能產生共鳴和體會,但是單單那些能體會到的,就有足夠的理由買來看這本書了。很多有趣的Unix的歷史、很多軟件開發(fā)的指導原則、對文本格式的偏執(zhí)、數據驅動、進程間通信、性能優(yōu)化原則、可移植性確保了生命力等。 對于我個人來講有一點是非常印象深刻的:代碼重用的關鍵在于透明性,而開源是實現(xiàn)透明性的有效方式。
  •      別人的評價都很高,我看的中文版,感覺翻譯的有的地方看的不順暢!自己也是程序員,感覺好多詞看著拗口,但是大體意思是看了,作者洋洋灑灑寫了許多哲理及軟件及系統(tǒng)的設計原則,最震撼我的是里面說c++ 及別的語言有許多的不合理地方,我們當時學習c++等等別的都是認為就應該是這樣,作者功力深厚批判的很多東西!
  •     目前讀到了第13章,中文版的。
      如果想了解Unix的哲學,并且從多個視角去了解Unix,無疑,TAUP是一個很好的起點。
      不管是Unix的設計原則,還是Unix的誕生歷史,ESR都信手拈來。
      每個章節(jié)的組織都是松耦合的,這也給了讀者極大的閱讀自由!
      
  •     內容涵蓋從philosophy 到 practical issues。
      其實K.I.S.S. 的概念很簡單,容易理解,但是就知道K.I.S.S. 的概念是遠不夠的,理解并運用K.I.S.S. 才是我們的最終目標。本書包含的很多Case study 非常值得一看,里面包含了多年實踐的經驗,已經對未來軟件設計的指導, very nice.
  •     如果有人完全了解了某種事物,他就有一種不吐不快的沖動,想把了解的一切細節(jié)告訴所有人,這就是我讀完這本書的感受。
      
      閱讀這本書需要一個前提,就是你認可“Unix哲學”是正確命題,也就是說這本書是寫給Unix愛好者的——是寫給特定人群的書。
  •     這本書已經不是一本技術書,已經深深闡述到哲學層面了,很多次抑制不住想讀它的沖動,每次去讀,都失望而歸,因為其中語言容易理解,意境卻很難參透。隨著工作經驗的增長,偶爾有人推薦,還是回去讀它,終于逐漸讀懂了一點點。
  •     畢竟Linux的修養(yǎng)有限,估計以后再看的時候,會更好的體會這本書想傳達的內容。
      畢竟Linux的修養(yǎng)有限,估計以后再看的時候,會更好的體會這本書想傳達的內容。
      畢竟Linux的修養(yǎng)有限,估計以后再看的時候,會更好的體會這本書想傳達的內容。
  •     如果早三年就去讀,我的人生必將不同。如果早五年來讀,大概我還讀不懂。
      
      寫程序做項目,許多事情沒有經歷過,是很難體會的。(剛寫了一大段攻擊C++的文字,怕引起圣戰(zhàn),就刪了。此處省略300字。)
      
      好吧,總之,不論經驗豐富還是初出茅廬,都建議讀一讀。也建議過一兩年再撿起來重讀一次,將有不同的感悟。
      
  •     從作者寫書到我讀這本書已經事隔十年。 對于一個使用linux有2年的人(其實我一直不認為經驗年限和對一件東西的了解程度有線性關系),我閱讀完之后的感受是:有些觀念很深入我心,有一些卻不了解,或者根本提不起興趣看。
      還是說說那些深入我心的感悟。
      1,機制和策略的分離,每個程序只做一件事,并且把它做好。這個觀點作者多次提到??梢詮膬蓚€經典實例來說明:(1)linux/unix內核API設計:與windows相比,linux的系統(tǒng)調用確實設計的簡潔而且每件事只有對應的API,每個API只對應與一件事。那么其實這些系統(tǒng)調用就提供給我們機制,剩下要完成什么功能(策略)就很自由的取決與我們的需求。(2)x window:這個更是可以解釋機制和策略分離,在x window底層提供各種機制,具體的GUI著由高層程序員調用API(機制)來完成策略。GNOME,KDE就是具體的策略。
      2,作者對CLI(commend line interface)軟件的配置的解釋也是讓我對它有更抽象,高層次的理解。 一個unix軟件的配置有幾個方面:系統(tǒng)配置腳本,用戶個人配置腳本(dot 文件),命令行參數(分為 - 和 --)。
      3,作者對于微型語言和腳本語言的理解。其實作者多次交叉提到,涉及的方面也挺多。首先,語言由功能的不同可以分為:描述性語言(html,xml等),具體的功能語言(C,C++,java,python等)功能性語言本質上都可以用來完成任務,由于其語言特性,它們擅長不同領域。其中不得不說的是:關于GUI程序的腳本接口問題。一個GUI程序對于高級用戶,程序員來說,最可能的使用瓶頸就是缺少腳本接口了。這樣復雜的任務就必須依靠一系列的點擊來完成,而且很容易點錯。合理的設計就應該有腳本語言或者說微型語言可以控制它,這方面的經典就是SQL,作為控制數據庫的微型語言,無疑比GUI點擊要好,這點估計初學者也會這樣認為。
      好了,其實挺多的有用的觀點的,作者能以這么高觀點來看問題,而且能把它寫下來成書確實不容易。
  •     
      http://herpolhode.com/rob/ugly.pdf
      
      The Good, the Bad, and the Ugly: The Unix! Legacy
      
      high-level programming language
      hierarchical file system
      uniform, unformatted files (text)
      separable shell
      distinct tools
      pipes
      regular expressions
      portability
      security
      
      雖然很短但是感覺超過了本書。
  •     以前學c基礎的時候就看了一遍taoup,里面的例子都沒接觸過,依然感覺收獲很多,記住了KISS,了解了unix哲學,對一些東西有了個模糊的概念,始終深刻地影響著的我的編程時的一些想法。
      
      最近剛學完unix系統(tǒng)編程,昨晚再次翻看taoup,有些東西能真的感覺到了,感慨萬千,打算細看apue的期間再讀一遍taoup,太好的書。
      
      好書要趁早看,好書會看多遍,學習那一階段錯過后再看就相逢恨晚了
  •     原著成書于2003年,而且作者說寫了5年。從2003到現(xiàn)在2011已經又8年了,許多事情又變化了。。。
      這本書在學校就讀過,但當時也就是讀過一遍,略微記住幾個名詞而已,比如KISS和文本化,現(xiàn)在回想下,這兩個概念對自己影響確實蠻深的,當初沒有白讀。最初閱讀時,好多軟件都沒有接觸過,也談不上寫過多少代碼,書中好多東西也就那么過眼了一遍而已,在把書還給圖書館時就囑咐自己將來一定要再讀。
      現(xiàn)在不一樣了,離開學校從事軟件開發(fā)實踐也兩年多了,很多工具都用過了,也有了新的認識,也仍有不少工具尚未接觸。正好上半年部門組織讀書,就推薦購買了這本2011年版的,工作閑暇加上昨天下雨不愿出門又看了一遍。
      譯者說作者是美國憤青,應該說是Unix憤青、Unix死忠,很多地方偏激了點或者教條了點,真應該到unix以外的世界走走。當然作者畢竟大師級明白人,20.3節(jié)中把Unix的問題都數落了一遍。畢竟unix基本已死,就是承繼其衣缽的Linux占有率也就1個百分點,另一個親戚MaxOS X和iOS日益興隆8個點了。
      有人批評作者老高抬自己的fetchmail,哈哈,這個嘛,羅馬城不是一個人建成的,你不能期盼作者什么都懂。我在看書也老聯(lián)想自己開發(fā)的那幾個小工具,給別人舉例也愛提它們。畢竟作者對fetchmail知根知底啊,如果作者舉個不太熟悉的例子萬一說錯了豈不招來更大的爭議。
      1.6節(jié)那17個原則全部值得牢記于心,如若真的記不住全部,那就記住KISS這個單詞吧,若不滿足一個詞那就再來句David Gelernter的話——美是抵御復雜的終極武器。什么是美?清晰、簡單、真相、省力,這就是Unix哲學的全部。
      
      說說03年到現(xiàn)在變化的東西吧:
      1、OOXML繼ODF后成為了最新的國際文檔標準,這是XML格式和“文本+壓縮”解決方案的重大成果。除了XML,更美的json也是有標準的。
      2、版本管理工具方面:svn已成最廣泛使用的準工業(yè)標準工具;Linus開發(fā)了Git取代了BitKeeper用來管理linux源代碼,而且以Git為老大Mercurial和bazaar等墊后的DVS已大有替代svn之勢。
      3、語言方面。javascript日益光鮮,Python更加強大,Ruby的吸引力也還算不錯,但還是作者345頁評論的“似乎很有前途”。另外Lua作為可嵌入語言崛起了,Object C背靠MacOS X和iOS攻城掠地。google都推出了Go語言,不能怪作者獨守unix一隅,只能說這個世界變化太快。
      再批評下作者吧:
      4、編輯器和IDE方面。你就用下IDE會死啊?Eclipse、NetBeans和Visual Studio等。大工程還得靠IDE來提高生產力。
      5、產品要大賣,還得靠大方漂亮的GUI。
      
      
      
      ----------補充一些寫作、翻譯和印刷遺憾-----------
      1、中文目錄1.6.2和1.6.4的章節(jié)標題中冒號是半角的吧,而其他15個標題都是全角的。
      2、420也最后一行那個是C1I還是ClI,下次記得印刷成CLI。
      3、308頁13.2.4節(jié)最后一句話,維->難。
      4、470也說C語言是弱類型語言,這個翻譯錯誤太大了。
  •     這是一本關于unix開發(fā)哲學的書籍。也是一本歷史書籍。你既可以從中了解unix/linux一路走來的歷史,也可以了解到她背后的哲學,以及那些來龍去脈。
      
      在作者看來,基于同行評審的代碼檢查與查看是unix興起的基本要素,尤其在unix與TCP/IP融合后,unix的文化也發(fā)生了變化。直到開源運動的興起,新unix,即linux,的出現(xiàn),標示這場運動的一大成就并意味著一個巨大的里程碑。任何閉源的unix都走向失敗,而開源的則走向成功。
      
      對于個os的歷史和基因屬性也給的比較明確,最典型的如Mac OS/X,當代OSX有著高度的BSD UNIX混血,但也有Mac OS的特性。 NT倒是自成一家,從其他體系上發(fā)展而來。但現(xiàn)在都往POSIX上面靠了。
      
      腳本和code故事也是一種糾結,基于文本比基于二進制要好,進程協(xié)作比一個大塊頭要好,Break是其中的關鍵,微型語言如reg、js是重要的,少吃多干還是多次多干并沒有定論。
      
      工具是重要的,文檔則在全面HTML化和標記化,許可證MIT和BSD是善良的,GPL那是很兇的,命名規(guī)范是要注意的,_和數字是不能隨便瞎用的。foobar-1.1.2.i386.bin.tar.gz要比foo_bar1.1.2.i386.tar.gz好。
      
      configure / make / make install是一個咒語。configure的目的是生成make文件,當然是根據機器的情況生成。
      
      UNIX的GUI是不行的,CLI是很行的,結構更是很好的,所以再優(yōu)秀的os也有需求和UNIX融合的。
      
      更重要的,在產品背后的是開發(fā)產品的人。
  •     這是一本圣經一樣的宗教讀物。
      你可以藉由它來了解unix/linux這個宗教群體的思維模式,至于是否要遵從它的教義進行實踐,請慎之又慎。
      ==============================
      Linus Torvalds不光是對C++有意見,他對“抽象”倆字的意見就大得很。
      不過這也容易理解,Linux文化的特征就是hacker傳統(tǒng),他們分不清也不想分清programmer與user的區(qū)別,所以不論你是職業(yè)程序員還是家庭主婦,要想用linux,你就只能把自己當作一個hacker。
      
      輕視抽象的結果就是:
      當一個家庭主婦坐到一臺Linux機器面前的時候,她看到的是和天才程序員Linus Torvalds看到的一樣赤裸裸的機器……
      
      The Art of UNIX Programming中,Eric S. Raymond再次有意無意地顯示了Torvalds們對于抽象的態(tài)度(5.1 The Importance of Being Textual)。
      
      保持配置文件being textual的理由竟然是為了能夠用普通的文本編輯器來編輯它們。
  •     剛開始翻的時候覺得,全是碼字代碼沒幾行,覺得很水,看過之后才發(fā)現(xiàn)絕對是一本好書.對UNIX程序設計又有了新的認識.
  •     我承認有些書看過之后確實讓人脫胎換骨,只要你愿意去轉變思維方式!我最早認識這本《Unix編程藝術》是在大學階段,那時候以為就是本unix的手冊呢!但是不知道為什么在一些經典書的尾頁上總是推薦這本書,直到最近才鼓起勇氣去查查內容,好家伙,這種書就是我要找的!可憐的是我現(xiàn)在才發(fā)現(xiàn),還好我還有幾十年的活頭!以前用Cygwin的時候總覺得別扭,現(xiàn)在找到病根兒了——沒看這本(哲學)書!對了!我沒說錯,這是本哲學書,不局限任何一種語言!這本書像《The Pragmatic Programmer》一樣震撼這我,好久沒看到這么偏執(zhí)的書了!真是一種享受(當然不偏執(zhí)的人看了以后會覺得作者就是個瘋子)!建議每個程序員都買一本,然后做好重生的準備......
  •     在OO和OP決策的浪潮中, 我們該如何取舍? 為什么OP可以有如此優(yōu)越的特點, 可以維系Unix發(fā)展這么多年? 毫無疑問Unix是一個完美的軟件項目, 不是其效率有多高, 而是其令人嘆服的生命周期, 圍繞Unix開發(fā)的的那些經典的軟件, 他們存在了一些共同的特點, 這些在很多的面向OO的設計中, 也不經意中提及, 但是, 你可以在這本書中,找到一個最深入的答案。 總有一些讓你為之喝彩的經典總結. 我的評價只有兩個字: 力薦!
  •     這本書買的比較晚,卻是趕在其他書之前最先讀完。前前后后估計讀了三個月有余,當然因為中途有好看的小說插隊,以至于耽擱了不少。
      
      這個標題很容易讓人以為和那部曠世巨作一樣,還好通過評論,已經知道是一種思想的闡述。所以剛才,當我把書放回書架的時候,猶豫了一下,還是放在《代碼大全》的旁邊,畢竟總的來說,他們是同一類型的,只是《代碼大全》關注的是細節(jié),而《Unix編程藝術》是一種大的宏觀的實踐,至于是否最佳實踐,當然是仁者見仁的問題了。
      
      感受了KISS原則,像追星一樣這段時間把msn的簽名都改成Keep !t S!mple and Stupid 。畢竟這個原則深得我心,因為我也是一個程序員的緣故吧。
      
      工作需要,有時候在linux或者unix上操作,那些小巧實用的工具讓工作輕松不已。但是開發(fā)機畢竟還是windows的機器,時常會想去尋找unix工具的替代版本,比如說tail,那時候很是感慨的和一個做.net的同學宣揚這些工具的好處,宣揚linux系統(tǒng)多么的善解人意。
      
      雖然自己不是unix程序員,但是unix的好多理念其實早就脫離unix本身,這一點也是感受頗深的,尤其在opensource領域。所以當讀到后期,真的是有種廢寢忘食的感覺了。凌晨一點才依依不舍的放下書本,熄燈睡覺,早上8點還坐在沙發(fā)上捧著該書。
      
      從上不難看出,我對本書的推崇,不過好玩的是,當我讀完最后一部分《無根之根》的時候,合上書本,心里卻在想,是不是要把它當作二手書賣掉?讀過了,領會了,其實一切都那么簡單,在合適的時候去貫徹就行了,至少對我而言不會像其他書一樣去反復翻閱——書架上待讀的書實在太多了
  •     昨晚看了一下關于yacc和lex的部分,里面把預處理叫做前處理,難道是用某個程序翻譯的?這部分我?guī)缀跏恰白x”下來的,但還是不懂,于是看了英文版的
  •     3.1.3 Cooperating Processes
       it would not have been trivial without the fundamental unifying notion of the process as an autonomous unit of computation, with process control being programmable.
      
      這句被翻譯成了:……進程是自主運算單元的統(tǒng)一性記號……
      
      你能明白這里的“統(tǒng)一性記號”是什么意思嗎?notion只有“記號”的意思?這里使用的是“概念”的含義,即“……將進程視為一種自治性運算單元的概念……”
      
      
  •     我從圖書館無意間找到的書,這幾天大概的看了看.. 感覺好多都看不懂.. 不過文字真的很是有味道,不枯燥~~
  •   翻譯水平不敢恭維啊,應該買另一個版本的unix編程藝術
  •   ppt最后一頁內容:
    1.What is the best thine about UNIX?
    A: The community.
    2.What is the worst thing about UNIX?
    A: That there are so many communities.
    耐人尋味之。。。
  •   這本書是taoup吧..
  •   我覺得還是不要認為看這一節(jié)能把YACC&LEX搞明白,畢竟一小節(jié)想把這2個工具搞明白似乎有點難。
    可以參考其他書籍。
    等會用YACC&LEX回頭再看這一節(jié)是否會好一點。
  •   我在看manual。原本也不是想通過它了解bison的,只不過看到上面在說這個,就先看了一下。
  •   Good point, I will not buy this translated version.
 

250萬本中文圖書簡介、評論、評分,PDF格式免費下載。 第一圖書網 手機版

京ICP備13047387號-7