【讀書筆記】linux編程藝術

來源:互聯網
上載者:User

一、哲學

1、Rule of Modularity: Write simple parts connected by clean interfaces.
1、模組原則:盡量使用簡潔的介面套和簡單的組件。
2、Rule of Clarity: Clarity is better than cleverness.
2、清晰原則:清晰勝於取巧。
3、Rule of Composition: Design programs to be connected to other programs.
3、組合原則:設計時,要考慮串連組合。
4、Rule of Separation: Separate policy from mechanism; separate interfaces from engines.
4、分離原則:策略同機制分離,介面同引擎分離。
5、Rule of Simplicity: Design for simplicity; add complexity only where you must.
5、簡潔原則:設計儘可能簡潔,複雜度能低則低。

6、Rule of Parsimony: Write a big program only when it is clear by demonstration that  
nothing else will do.
6、吝嗇原則:除非別無他法,否則,不要去編寫龐大的程式。
這點,跟上第5點差不多,以簡潔為美,不要刻意去編寫龐大而複雜的程式。

7、Rule of Transparency: Design for visibility to make inspection and debugging easier.
7、透明原則:設計要透明可見,以便審查和調試。
充分考慮透明性、顯見性、簡潔性。

8、Rule of Robustness: Robustness is the child of transparency and simplicity.
8、健壯原則:健壯的程式源於透明與簡潔。
程式越簡潔,越透明,程式就越健壯。

9、Rule of Representation: Fold knowledge into data so program logic can be stupid and  
robust.
9、表示(法)原則:把知識疊入資料,以求邏輯結構質樸而健壯。
建模,以求邏輯結構清晰。

10、Rule of Least Surprise: In interface design, always do the least surprising thing.
10、通俗原則:介面設計,避免標新立異。
程式的好壞由使用者來評判,最簡單易用、最通俗易懂的程式,往往是最受使用者歡迎的程式。

11、Rule of Silence: When a program has nothing surprising to say, it should say nothing.
11、緘默原則:如果一個程式沒什麼好挑剔的,那就保持沉默。
程式不要有多餘冗雜的部分,盡量簡潔為上,不需要的多餘功能,就不要有。

12、Rule of Repair: When you must fail, fail noisily and as soon as possible.
12、補救原則:出現異常時,馬上退出並適當給出足夠的出錯資訊。
儘可能讓程式以一種容易診斷出錯誤的方式終止掉。

13、Rule of Economy: Programmer time is expensive; conserve it in preference to machine  
time.
13、經濟原則:寧可多花機器一分,也不浪費程式員一秒。
時刻記住,程式員的時間是寶貴的,不要無故浪費一分一秒。

14、Rule of Generation: Avoid hand-hacking; write programs to write programs when you can.
14、產生原則:避免手工hack(直譯了),儘可能編寫程式,讓程式去產生程式。
程式規格越簡單,設計者就越容易做對。

15、Rule of Optimization: Prototype before polishing. Get it working before you optimize it.
15、最佳化原則:雕刻前先要有模型,跑之前,要先學會走。
先製作原型,再精雕細琢。最佳化之前,先確保能用。否則,一切美妙的最佳化,都是白搭。
或者如,極限編程大師 Kent Beck所說,先求運行,再求正確,最後求快。

不要一味的去考慮那些蠅頭小利的所謂效率提升,盡量不要去過早最佳化,是一切萬惡之根源。

16、Rule of Diversity: Distrust all claims for "one true way".
16、多樣原則:絕不要去相信什麼所謂"不二法則"的言論。
即使最出色的軟體,也常常會受限於設計者的想象力。
愛因斯坦曾說過一句話,這個世界缺乏的不是技術,而是想象力。

沒有人能聰明到把所有的東西,都能事先預言安排好。

17、Rule of Extensibility: Design for the future, because it will be here sooner than you  
think.
17、擴充原則:設計要著眼於未來,因為有時未來來的要比想象中的快。

二、曆史-雙流記

1983年 Richard M.Stallman建立了GNU項目

1986年 發明patch的larry wall開始開發Perl語言

一開始unix系統被AT&T SUN IBM掌控,一份源碼許可證要4萬美元

1991年 linus torvalds 宣布了linux項目

1992年 386BSD 發布

在舊學派的unix開發人員中,部分聰明者注意到,做了多年的平價Unix之夢從一個意想不到的方向悄然城鎮。

它既不是來自AT&T,也不是SUN,或者任何一個傳統廠商,也不是出自學術界有組織的工作成果。它就這樣從Internet的石頭縫中跳了出來,渾然天成,以令人驚奇的方式重新規劃拼裝了Unix的傳統元素。

駭客的起源和曆史:1961-1995

從社會性而言,他們年輕,天資過人,幾乎全是男性,獻身編程達到癡迷的地步,決不墨守成規--後來被人們喚作“極客(geek)”。他們往往也是頭髮蓬鬆的嬉皮士和准嬉皮士。他們有遠見,把電腦看作構建社區的工具。他們讀Robert Heinlein和J.RR.Tolkien的書,參加複古協會,雙關語說起來沒完,拋開這些怪癖,他們中的許多人都躋身世界上最聰明的程式員之列。

1995年,linux找到了自己的殺手級應用----開源的web伺服器Apache

用自由軟體是因為它運行得更好,而不是說“用自由軟體是因為所有軟體都該是自由的”

“開源”明顯要用一個意識形態中性的公眾標籤來取代Stallman鐘愛的“自由軟體”

在Unix曆史中,最大的規律就是:距開源越近就越繁榮。

過度依賴任何一種技術或者商業模式都是錯誤的----相反,保持軟體及其設計傳統的靈活性才是長存之道。別和低價而靈活的方案較勁。

三、unix哲學和其他哲學對比

unix統一性的理念或象徵最重要一點: “一切皆檔案”模型及在此基礎上建立的管道概念。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.