設計,是「需求上升到機制」的過程和結果。不是針對一個需求,而是設計一種機制,容納和集成一類類似需求。基於需求,超越需求。算法
設計須要在安靜的環境裏,反覆剖析事物的內在結構和規律,洞悉事物之間的關聯,而後用精煉的方式表達出來。設計是一門科學,爲學必當嚴謹。併發
設計的基本原則是: 關注點分離。分佈式
設計的基本思想是: 分解、抽象、組合。設計
設計的基本要素是: 語義與結構。
遞歸
平鋪、嵌套、鏡像、迭代、彎曲、組合。索引
分而治之、遞歸、組合、預處理。隊列
量級結構的處理:由基本結構經過極大量重複性平鋪而組成,經過分治策略處理。好比百萬級或億級列表數據的處理,一般採用併發、並行、分佈式的算法來處理。算法仍然是基本的算法,只是將海量數據的量級結構分解成若干個更小量級的結構,採用算法分別處理,而後將每一個子結構的處理結果組合起來。字符串
複雜結構的處理: 由若干個基本結構經過任意方式的嵌套和組合而組成,經過遞歸技術來處理。 先將複雜結構分解爲若干基本結構的有規律性的嵌套和組合,針對每一種基本結構使用合適的算法處理獲得子結果,而後經過遞歸和組合的方式來組合子結果獲得最終結果。基礎
索引: 對於量級結構,經過多級索引,對相應的值集進行預處理和預存儲; 當須要查詢或操做的時候,就直接從索引指向的存儲裏去得到或操做相應數據。
二叉樹
基礎、力、規律,變化;前後、並列、上下、順序、併發、多因子影響、機率相關性、單因子決定、量變、質變、傳承、進化。
基礎是不可分微粒的組合,表現爲物質;力是物質組合產生的關聯;分裂與組合是基礎的最基本的力;力的約束是承載負荷;規律是承載負荷的設計;物質的組合按規律的運動即爲變化。變化有量變;量變生質變,質變有分化。變化是以量子的形式躍遷到新的狀態。
基礎的分裂和組合生前後;前後有並列;並列有分化生上下;上下生依賴;依賴生影響;影響生相關;相關有分化生決定與傳承;傳承有分化生進化。