我的系統設計之道
道家說,道法自然,順其自然。任何事物,都有著自身的法則(規律),要充分的理解事物的法則(規律)後,順應這個法則(規律),則會事半功倍。
現代科學,從牛頓經典力學說起。牛頓的經典力學,則是屬於對法則的一個抽象模式。順應,利用這個法則,近代科學發展起著重要作用。
但牛頓經典力學,在解決經典力學的方面是適用的。在量子層面,以及相對論層面,則是不試用的。
模式,何為模式。模式(Pattern)其實就是解決某一類問題的方法論。把解決某類問題的方法總結歸納到理論高度,那就是模式。
這也就是所謂的,適合才是最好的。
那麼從這裡開始延伸,在程式設計的時候,有經典的23種設計模式,這些設計模式,對應相應的場景。可以解決相對應的程式設計問題。
那這些設計模式之上,是不是可以再抽象出一種模式,暫稱為模式之模式。
起初,利用簡單的設計模式,如經典的單例模式,工廠模式等23設計模式,來進行程式設計,這時,只是簡單的接受前人總結的模式。缺點,模式有限。
仔細思考,其實發現,這23種設計模式,全部能夠對應到現實生活。就如最簡單的工廠模式,這個和現實生活中的是一樣的。
是否可以擺脫23設計模式的限制?是否可以轉變思想,先模擬現真實模式,再來程式設計?
答案是肯定的。將需求轉變成現真實模式,真正實現程式是對現實生活的模擬,然後再來實現程式。
這裡的設計,包括程式設計,架構設計。都是可以用此方案來實現。
經過對現實具象化的模擬,實現了設計思想的轉變。但如何落地呢?
在程式設計中,最熟悉的莫過於,面向物件程式設計。在架構設計上,目前最火熱的,莫過於微服務。
那麼從這兩方面,我們就可以將現實具象化實現。但其中的面向物件,對現實的模擬還缺乏很多支撐。那麼面向智慧體程式設計Aop(Agent Oriented Programming)則可以完美實現現實具象化設計。
以上的系統,還屬於簡單系統。如設計模式中的工廠模式,角色劃分簡單,功能簡單,角色數量少,互動少。但當前IT界的發展,系統越來越複雜,特別是微服務數量一多,則其造成的系統複雜性就會非常高。
那麼簡單的從辯證角度來看,有種整體與區域性的辯證方式,可以解決此種問題。
假如我們有20個微服務,如果20個微服務之間,進行通訊,那麼會形成一個蜘蛛網一樣的網路。我們將20個微服務,化分為不同的領域,假如我們劃分為5個領域,領域組成大的微服務,那麼組織間的網路將得到極大的簡化。
那麼各個領域之下,其內部又包含幾個小的微服務,其之間有著自身的網路通訊。
這種整體與部分的辯證,也可以用到程式設計中。目前go語言結合aop設計,可以實現角色劃分。並通過領域劃分,劃分為不同的領域,在不同的領域裡包含不同的aop。不同的領域又組成大的程式。
從整理和區域性的辯證來做一些優化,只是做了一些系統的簡化處理。但依舊不能解決系統複雜度越來越大的情形。
這個情形與近代科學發展是一致的。近代科學都是以簡單系統研究為主,所出現的理論都是簡單的模式。近幾十年,複雜系統的概念將科學發展引到新的層面。
那麼我個人的思考形成過程。
從簡單的行為,到群體的行為關注。
有簡單的種群行為分析,如生物種群模型,利用微分方程來建模。最經典的就是捕魚業的持續收貨,這個只是簡單的種群模型,再複雜一點有,狼圖騰中的草原、黃羊、狼,三者的種群數量的自動調整。
這裡的是簡單的種群互相影響的行為。再複雜一點,還有群體智慧模型。如一些群體智慧演算法,遺傳演算法,粒子群演算法,蟻群演算法等等,但這些知識簡單的演算法。如利用到程式設計角度來看。利用的則是兩個東西,正反饋和負反饋。通過激勵與懲罰機制,形成群體的一個智慧。但這個需要個體到達一定的數量,形成群體。
那麼把系統資源具象成環境資源,將個體具象成黃羊、狼、螞蟻、蜜蜂等個人。整個系統便具象成了一個生態系統。
這方面的研究還有很多,比較符合IT行業的,有元胞自動機、協同學。而其中的協同學、耗散系統、超迴圈系統被統稱為新三論。也正是自組織理論。這三者的研究,可以給複雜系統的設計,提供一些理論支撐。
當前的複雜適應系統模型說的,複雜的行為並非出自複雜的基本結構, 極為有趣的複雜行為是從極為簡單的元素群中湧現出來的。生物體在共同進化過程中既合作又競爭, 從而形成了協調精密的生態系統; 原子通過形成相互間的化學鍵而尋找最小的能量形式, 從而形成分子這個眾所周知的湧現結構; 人類通過相互間的買賣和貿易來滿足自己的物質需要, 從而建立了市場這個無處不見的湧現結構。
從這段話來體現,IT系統以後越來越複雜,是否也是可以通過構建簡單的個體模組,通過一系列的,激勵與懲罰,實現系統的自足自,讓其湧現出系統智慧?
我個人認為,系統的演進,應該是殊途同歸的。也是道家所說道法歸一。IT系統的發展,勢必會像著自組織系統發展。當前就是簡單系統向複雜系統演變的奇點。把握方向,便是把握未來。
很多東西在頭腦中,便於篇幅的原因,很多都是簡單的提下。有興趣的話,可以聯絡,互相學習。
龔浩華
月牙寂-道長
Qq 29185807
2017年02月09日