1. 程式人生 > >關於維度、計算機、周易的漫思

關於維度、計算機、周易的漫思

前情提要

這是從我的前一篇部落格結束後,發散聯想的思緒飄飛過來的一篇部落格。 這是上篇部落格的連結上篇部落格 上篇部落格主要是解決了一個有迴路的重新整理頁面重複提交資料的bug,這篇主要是由此而展開的聯想,一些胡思亂想罷了(其實我覺得是精妙劍法)。

正文部分

下面就開始我飄飛的思緒了 話說我覺得維度是一個比較廣泛了概念,它在物理裡面是自由度,在計算機裡面就是一個變數,宣告一個變數就把程式提高了一個維度。 一個以MVC分層的web程式專案,有三個層面,M:模型層(程式核心如資料庫列表),V:檢視層(頁面等眼前的部分),C:控制器層。 而維度在這個web程式中,0維度表示這個專案還沒建立,還不存在,一旦我有了想法,開始設計這個專案,並建立了出來,就成了1維度,這時是一個綜合體,沒有MVC三層之分,沒有時間空間之別,沒有天地升降之比;但我也可以將這整個web程式專案寫在一個源程式檔案裡,這就是1維度,也可以說是MVC合成一體,時間空間整成一團,天地陰陽歸於一處。但這樣不現實。 1維度變成2維度,是將這一個原始檔裡的東西一分為二,就像時間空間的產生(時間為陽,空間為陰,因為陰為物質,陽為功能),就像天地初分(天為陽,地為陰,有物質的天體為陰,天體在軌道上執行為陽),就像一個Java類(屬性為陰,方法為陽)。 在上篇部落格中遇到的問題就是一個迴路中的入口和出口的整理的問題,就像一個程式的設計要可以不斷的向裡面新增新的功能,就像一個作業系統要不斷的等待使用者的指令,這裡面就有這個迴路的問題,程式要加新功能,還要區別於程式的開啟和退出;作業系統等待使用者的指令,還要區別於系統的開機和關機,這就是迴路的入口和出口的問題,不錯,它是一個死迴圈,但是這個死迴圈有一個開始的入口和結束的出口同時存在。上篇中解決問題的思路也是將1維變成2維,將閉環迴路的這個圈,砍兩刀變成兩條首尾相連的線,這個圈就變成了兩條線,兩個連線點,這樣在不是一個源程式的1維中,而在控制層和其他層的2維中時,就可以通過在兩個連線點設定初始值來區分是哪個入口和出口進來或出去的了,就像作業系統可以區分是開機進來到桌面的,還是使用者輸入指令並處理後進來到桌面的了,這樣就解決了上篇中重新整理頁面重複提交的問題了。 反觀這個過程,發現2維的世界規則就是由一個整體分成兩部分,這兩部分要首尾相連形成閉環(也就是陰陽互根的太極圖),一般這兩部分也要擁有的是彼此沒有的功能,就像控制器層控制業務流程,而其他層不能控制這個主流程,其他層負責資料處理,而控制層不必擔心,還有就是這個2維的閉環可以加進來新的維度(即一個自由度),也可以減少一個自由度變成1維。 2維變成3維,將控制層以外的再按照功能分為不同的層(維度),這時每個維度的特點就是彼此功能獨立,相互不干擾,每一個功能模組(維度)與控制器形成的就是一個2維的世界(此時已是被砍了兩刀的圈2維了),這時候將控制器按業務邏輯的流向走下去,就加了一個類似時間的維度,其實這個“時間”維度是預設就有的,只要是在這個web程式專案的世界裡,其他功能模組與控制器互動,只是連線了一個點,也就是程式沒有上線執行的狀態。 由此由0維沒有專案,到1維建立專案,到控制器層的一個源程式整體,再到有其他新功能模組與控制器互動的2維,再到程式執行起來,控制器層跑起來的3維,此時已經形成了一個完整的3維世界了,剩下的就是向這個控制器層不斷的加入新功能模組了,加入一個就是一個新的自由度,因為我可以在控制器中自由的選擇是否啟用這個新的功能(即二進位制0和1)。到了3維就可以穩定的新增新維度了,所以周易用三個爻表示八個卦,每個卦代表一類物(雷風山澤,天地水火),因為這個物都是在一個3維世界中的不同的個體或維度,再往上加也是在一個程式專案里加一個功能,或是一個程式片段里加一個變量了。至此,3維世界的作用法則就是天地之間自由翱翔,一個程式內自由取值。如果再多加幾個變數,有n個維度在這個3維世界中,那他們之間的相互作用又是n維之間的法則了,由此可看,一個web程式專案內是由0到n維同時存在的。只不過是站在哪個片段上看它罷了。因為3維的世界還是這個時空,裡面的個體卻是不同的時空作用關係。 為什麼會演變成0到n維,因為現在萬物互聯,分散式成了流行,不再是C語言的結構化程式設計的天下了。

未完待續

後面還有由3維減到0維的聯想,下次再補上。。。

記錄修改時間