關於Unix哲學

2021-08-30 03:00:46 字數 1281 閱讀 2026

先講兩個很老的小故事。

第乙個故事。

有一家日本最大的化妝品公司,收到了使用者的投訴。使用者抱怨買來的肥皂盒是空的。這家公司為了防止再發生這樣的事故,很辛苦地發明了一台x光檢查器,能夠透視每乙個出貨的肥皂盒。

同樣的事故,發生在一家小公司。他們的解決方法是買一台強力的工業電扇,對著肥皂盒猛吹,被吹走的就是空肥皂盒。

第二個故事。

美國太空總署(nasa)發現在太空失重狀態下,航天員無法用墨水筆寫字。於是,他們花了大量經費,研發出了一種可以在失重狀態下寫字的太空筆。猜猜看,**人是怎麼解決的?(答案在本文結尾處。)

********************=

這幾天,我在看unix,發現很多人在談「unix哲學」,也就是開發unix系統的指導思想。

wikipedia上列出了好幾個版本,不同的人有不同的總結。發明管道命令的doug mcilroy總結了三條,而eric s. raymond則在the art of unix programming一書中,一口氣總結了17條(英文版,中文版)。

但是我發現,所有人都同意,「簡單原則」——盡量用簡單的方法解決問題——是「unix哲學」的根本原則。這也就是著名的kiss(keep it ******, stupid),意思是「保持簡單和笨拙」。

下面就是我對「簡單原則」的筆記。如果你想最簡單地完成一項程式設計任務,我認為可以從四個方面入手:

1. 清晰原則。

**要寫得盡量清晰,避免晦澀難懂。清晰的**不容易崩潰,而且容易理解和維護。重視注釋。不為了效能的一丁點提公升,而大幅增加技術的複雜性,因為複雜的技術會使得日後的閱讀和維護更加艱難。

2. 模組原則。

每個程式只做一件事,不要試圖在單個程式中完成多個任務。在程式的內部,面向使用者的介面(前端)應該與運算機制(後端)分離,因為前端的變化往往快於後端。

3. 組合原則。

不同的程式之間通過介面相連。介面之間用文字格式進行通訊,因為文字格式是最容易處理、最通用的格式。這就意味著盡量不要使用二進位制資料進行通訊,不要把二進位制內容作為輸出和輸入。

4. 優化原則。

在功能實現之前,不要考慮對它優化。最重要的是讓一切先能夠執行,其次才是效率。「先求執行,再求正確,最後求快。」(make it run, then make it right, then make it fast.)90%的功能現在能實現,比100%的功能永遠實現不了強。先做出原型,然後找出哪些功能不必實現,那些不用寫的**顯然無需優化。目前,最強大的優化工具恐怕是delete鍵。

***************===

答案是,**人用鉛筆。

(完)

關於Unix哲學

這幾天,我在看unix,發現很多人在談 unix哲學 也就是開發unix系統的指導思想。wikipedia上列出了好幾個版本,不同的人有不同的總結。發明管道命令的doug mcilroy總結了三條,而eric s.raymond則在the art of unix programming一書中,一口氣...

Linux 關於Unix哲學

reference 先講兩個很老的小故事。第乙個故事。有一家日本最大的化妝品公司,收到了使用者的投訴。使用者抱怨買來的肥皂盒是空的。這家公司為了防止再發生這樣的事故,很辛苦地發明了一台x光檢查器,能夠透視每乙個出貨的肥皂盒。同樣的事故,發生在一家小公司。他們的解決方法是買一台強力的工業電扇,對著肥皂...

Unix哲學基礎

摘自 unix程式設計藝術 unix哲學起源於ken thompson早期關於如何設計乙個服務介面簡潔 小巧精幹的作業系統的思考,隨著unix文化在學習如何盡可能發掘thompson設計思想的過程中不斷成長,同時一路上還從其它許多地方博採眾長。unix哲學說來不算是一種正規設計方法。它並不打算從電腦...