原則1:你無法斷定程式會在什麼地方耗費執行時間。瓶頸經常出現在想不到的地方,所以別急於胡亂找個地方改**,除非你已經證實那兒就是瓶頸所在。
原則2:估量。在你沒對**進行估量,特別是沒找到最耗時的那部分之前,別去優化速度。
原則3:花哨的演算法在n很小時通常很慢,而n通常很小。花哨演算法的常數複雜度很大。除非你確定n總是很大,否則不要用花哨演算法(即使n很大,也優先考慮原則2)。
原則4:花哨的演算法比簡單演算法更容易出bug、更難實現。盡量使用簡單的演算法配合簡單的資料結構。
原則5:資料壓倒一切。如果已經選擇了正確的資料結構並且把一切都組織得井井有條,正確的演算法也就不言自明。程式設計的核心是資料結構,而不是演算法。
1.模組原則:使用簡潔的介面拼合簡單的部件。 // 保證了靈活性
2.清晰原則:清晰勝於機巧。// 保證了可讀性
3.組合原則:設計時考慮拼接組合。//復用**
4.分離原則:策略同機制分離, 介面同引擎分離。 //保證層次化結構
5.簡潔原則:設計要簡潔,複雜度能低則低。
6.吝嗇原則:除非確無它法,不要編寫龐大的程式。 //效率,簡潔
7.透明性原則:設計要可見,以便審查和除錯。
8.健壯原則:健壯源於透明與簡潔。
9.表示原則:把知識疊入資料以求邏輯質樸而健壯。
10.通俗原則:介面設計避免標新立異。
11.緘默原則:如果乙個程式沒什麼好說的,就沉默。
12.補救原則:出現異常時,馬上退出並輩出足夠錯誤資訊。
13.經濟原則:寧花機器一分,不花程式設計師一秒。
14.生成原則:避免手工hack, 盡量編寫程式去生成程式。
15.優化原則:吊住前先要有原型,跑之前先學會走。
16.多樣原則:絕不相信所謂「不二法門」的斷言。
17.擴充套件原則:設計著眼未來,未來總比預想來得快。
哲學與中國哲學
在21世紀第乙個十年中,中國哲學界所開展的乙個重要討論,就是中國哲學合法性問題討論。這一討論是以一種看似假問題討論的形式出現的,其中所涉及的有意義的問題,實際上並不是有沒有 中國哲學 而是中國有沒有西方 philosophy 意義上的 哲學 能不能採用西方哲學的研究正規化研究中國哲學,以及如何更好地...
設計的哲學
主要內容 一 基礎目標 設計乙個統一的網路系統,可以保證更高的整合度,提供更好的效能。多路傳輸使用分組交換實現,網路通過閘道器進行互聯。二 二級目標 1 即使網路和閘道器失效,網路通訊必須能夠繼續。2 網際網路必須支援多種通訊服務 3 網際網路絡結構必須能夠適應多種網路硬體 4 網際網路結構必須允許...
花瓣的哲學
有一位花販告訴我,幾乎是所有的白花都很香,愈是顏色艷麗的花愈是缺乏芬芳,他的結論是 人也一樣,愈樸素單純的人,愈有內在的芳香。有一位花販告訴我,夜來香其實白天也很香,但是很少聞得到,他的結論是 因為白天人的心太浮了,聞不到夜來香的香氣。如果乙個人白天的心也很沉靜,就會發現夜來香 桂花 七 裡香,連酷...