當前位置:
首頁 > 最新 > UNIX編程藝術:17點哲學原則

UNIX編程藝術:17點哲學原則

2015年4月3日的舊文,重發一下。

前面的小文中多次提到Eric S. Raymond,他是公認的Unix編程大師、開源運動領袖人之一,通俗點說叫老牌黑客,美國憤青。今天我們就來看看他寫的最有名的書The Art of UNIX Programming中文版譯名為UNIX編程藝術。包括Unix設計者在內的多位領域專家也為這本書貢獻了寶貴的內容。看看書的封面,很有意思。一中國老夫子和一中國小學生,作者藉此表明此書背後所想說明的經驗和智慧。這本書名里有藝術這個詞,所以書中沒有講述編程的細節,而是講看起來似乎很玄乎的方法和理念,通過野史和坊間傳說來傳遞文化。具體來說,通過場景、設計、工具和社區這四個部分講述了Unix系統領域中的設計和開發哲學、思想文化體系、原則與經驗。今天小編主要和大家聊聊UNIX哲學。簡單來說,就是下面這張圖。

細細來說,17個原則如下。

1、Rule of Modularity: Write simple parts connected byclean interfaces.

1、模塊原則:使用清晰的介面拼接簡單的組件。

正如,BrianKernighan 曾經說過,"計算機編程的本質就是盡量控制(降低)程序的複雜度"。編寫複雜而龐大的軟體,唯一的方法,就是控制並降低程序的整體複雜度,用清晰的介面把若干的模塊組合成一個複雜軟體。各模塊之間要減少耦合,這樣在對局部進行改動時不會牽動全身。

2、Rule of Clarity: Clarity is better than cleverness.

2、清晰原則:清晰勝於奇巧。

為了減少後期程序的維護成本,要養成良好的編程習慣。不僅添加良好有用的注釋,也在選擇演算法和實現時考慮未來的可擴展性。嘿嘿,不要以為自己寫的程序不會忘記。本人寫代碼N多年的體會就是,我很容易忘記自己寫的代碼。有點想念閱讀那些優雅而清晰的代碼的日子了。

3、Rule of Composition: Design programs to be connected toother programs.

3、組合原則:設計時,要考慮程序之間的連接。

考慮讓程序彼此之間能有效通信,程序彼此獨立,具有組合性。

4、Rule of Separation: Separate policy from mechanism;separate interfaces from engines.

4、分離原則:策略同機制分離,介面同引擎分離。

這樣做,策略靈活,可以適應用戶需求的改變;而且任何策略的改變不會影響到整個機制。

5、Rule of Simplicity: Design for simplicity; addcomplexity only where you must.

5、簡潔原則:設計儘可能簡潔,複雜度能低則低。

不炫耀那些下三濫的技巧,不用噓頭,簡潔為美,以簡潔至上。這也是Unix文化的精髓。

6、Rule of Parsimony: Write a big program only when it isclear by demonstration thatnothing else will do.

6、吝嗇原則:除非別無他法,否則,不要去編寫龐大的程序。

不編寫龐大而複雜的程序,不利於維護。

7、Rule of Transparency: Design for visibility to makeinspection and debugging easier.

7、透明原則:設計要可見,以便檢查和調試。

充分考慮透明性、易見性和簡潔性。能快速了解軟體的功能和實現方法。軟體有監視其自身運行狀態的功能。簡潔,利於測試監視工具和調試腳本。

8、Rule of Robustness: Robustness is the child oftransparency and simplicity.

8、健壯原則:健壯的程序源於透明與簡潔。

程序越簡潔,越透明,內部邏輯易於理解,程序就越健壯。

9、Rule of Representation: Fold knowledge into data soprogram logic can be stupid androbust.

9、表示原則:把知識放入數據,以便邏輯結構質樸而健壯。

將代碼的複雜度轉移到數據中去。通過數據建模,可以實現邏輯結構清晰。

10、Rule of Least Surprise: In interface design, always dothe least surprising thing.

10、通俗原則:介面設計避免標新立異。

介面設計按照用戶最可能熟悉的功能介面和相似應用程序建模。關注傳統的慣例,緩和學習曲線。

11、Rule of Silence: When a program has nothing surprisingto say, it should say nothing.

11、緘默原則:如果一個程序沒什麼好挑剔的,那就保持沉默。

不顯示不重要的信息,合理使用用戶的注意力。

12、Rule of Repair: When you must fail, fail noisily and assoon as possible.

12、補救原則:出現異常時,馬上退出並適當給出充分的出錯信息。

程序儘可能從容應對各種錯誤輸入和自身的運行錯誤。如果做不到,儘可能讓程序以一種容易診斷出錯誤的方式終止掉。

13、Rule of Economy: Programmer time is expensive; conserveit in preference to machine time.

13、經濟原則:寧可多花機器一分,也不浪費程序員一秒。

程序員的時間是寶貴的,不要無故浪費一分一秒。教會機器做更多低層次的編程工作,就可以節約程序員的時間了。

14、Rule of Generation: Avoid hand-hacking; write programsto write programs when you can.

14、生成原則:避免手工hack,儘可能編寫程序,讓程序去生成程序。

使用代碼生成器讓細節工作自動化。這樣便於避免出錯。

15、Rule of Optimization: Prototype before polishing. Getit working before you optimize it.

15、優化原則:潤色代碼前先要有模型,在優化前,先確保能用。

先製作原型,再精雕細琢。優化之前,先確保能用。磨刀不誤砍柴工。

或者如,極限編程大師Kent Beck所說,先求運行,再求正確,最後求快。

系統性地調整。

16、Rule of Diversity: Distrust all claims for "onetrue way".

16、多樣原則:決不相信所謂"不二法則"的言論。

即使最出色的軟體,也常常會受限於設計者的想像力。堅持Unix的傳統,廣泛採用多種語言、開放的可擴展系統和用戶定製機制。

17、Rule of Extensibility: Design for the future, becauseit will be here sooner than youthink.

17、擴展原則:設計要著眼於未來,因為有時未來來的比想像中的快。

為數據格式和代碼留下擴展的空間。設計協議或是文件格式時,應使其具有充分的自描述性以便擴展。設計代碼時,要有組織架構設計,便於將來的開發者增加新功能。

Eric在書中說,Software design andimplementation should be a joyous art, a kind of high-level play. 希望你能體會到這種快樂。

下一次,我們聊聊書中的第二部分設計,看看如何將Unix哲學的原理應用到設計與實現。

歡迎關注我的微信公眾號

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 上海成趣信息科技 的精彩文章:

TAG:上海成趣信息科技 |

您可能感興趣

技嘉X470 AORUS GAMING7 WIFI開箱:工業風的藝術品
BOTTEGA VENETA重新打造「合作的藝術」——2018春夏系列廣告特輯「數字優先」
旅居的藝術——2018 LV OBJETS NOMADES系列香港展
SOULGOODS 開啟 X-LARGE 2018 CHINA TOUR 北京站,藝術家打造 RIMOWA 概念傢具
科技與藝術,HUAWEI P20系列國行版開箱體驗
北京798 BRIC藝術空間
2018米蘭傢具展與藝術家PHILLIP K.SMITH III合作
韓國新銳藝術家推介:HWANG HYE JUNG
藝術匯 ART FRONTIER 專訪
插畫:美國藝術家JOHN HENRY作品
24小時:鄭容和-東方神起-EXO-CBX-《百想藝術大賞》MC-《漂亮姐姐》-WINNER
冠軍藝術 NIKE推出ART OF A CHAMPION
首屆3.3ART SCENE公共藝術季即將亮相三里屯3.3文化廣場
康佳8k分體及A2藝術電視新品亮相AWE2018
典型案例4/10 (類型:藝術類,學校:愛默生學院)
2018QS藝術與設計專業排名,RCA三度斬獲第一,學藝術類專業首選英國
ZERO-G夢想男團成員祖懷、斯然 出席上海時裝周LABELHOOD 2018 A/W先鋒時裝藝術節
藝術級史詩聯名 OFF-WHITE x 村上隆超限量發售正式來襲!
EDITION APARTMENT奧克蘭的藝術家公寓
藝術匯 ART FRONTIER 展評