康德在《純粹理性批判》一書中,解決了重要的議題——」先天綜合判斷何以可能「的問題。
那麼,程式設計,作為一種可以用來描述、表達物件世界的抽象手段,是如何可能的?筆者不才,斗膽提出一種看法。
結構,顧名思義,結合、構成。這是正題;
像事物的陰陽和合,一陰一陽之謂道,負陰抱陽,其一體兩面的反題就是:離散性。
那麼問題來了,如果一切離散元素,都雜多的混亂堆疊在一起,程式設計作為一種通用抽象手段,也就無法成為可能了。因此,「沖氣以為和」,自然就需要其組織具有秩序性——資料結構。不難理解,為什麼亞里斯多德在談及美時,說」美就在於秩序、勻稱、明確「了。
我們常聽說,「資料結構與演算法」,為什麼資料結構和演算法會放在一起言說?就是因為結構決定性質。即資料結構,決定了演算法的範疇。也有朋友聽說過程式設計三大正規化(」結構化程式設計「、」物件導向程式設計「、」函式式程式設計「),嚴格的說,這三者放在一起並不合適,因為他們並不是在某個同一範疇下具有平級地位得。我認為,結構化程式設計是其他任何具體正規化、編碼技術手段得基本。畢竟,函式式程式設計(fp)也不能做到一行過程性、命令性語句都不寫,也不能做到乙個狀態變數都不用或者不進行賦值操作,純用閉包(封閉上下文)來描述一切行為這不現實,畢竟許多外部物件本身是有狀態得這是事實;oop就更不用贅言了,它致力於抽象看待事物得方式,有別於面向過程而是將狀態和行為進行封裝抽象;而fp致力於無***、隱藏物件、執行緒安全、使用高階函式傳遞閉包、元程式設計等最佳實踐,因此三者著眼點根本不在同一頻道。就連技術圈內引以為傲得、可以用來顯擺設計水平得」設計模式「,其實也沒啥新鮮的,無外乎是以**本身作為資料,**得組織作為其關係結構,當其用不同的組織方式進行組織時,便呈現不同的結構,有些成熟**組織結構作為一類問題得通用解決方案,形成了「套路」,也就形成了模式(某種程度上,程式設計技術起源於國外,用英文詞彙來表述更準確,如模式用pattern/schema更準確)。這裡,我只想強調,「結構化」這一形而上得理念,不侷限於事物得具體呈現和實現,但又與一切富有秩序組織而成得事物相關。結構化程式設計早在2023年由dijkstra已經論證了。卑之無甚高論,我亦不出其右。
現在回答本文章節的問題,「程式設計,作為一種可以用來描述、表達物件世界的抽象手段,其之所以可能的要義就在於「結構化」三個字上。結構化的要義,一者,在其離散性;二者在其秩序性;三者在其同構性。關於同構性,也好理解,我們在程式設計技術中經常聽到」一切皆物件「。那麼由離散的元素物件,按照一定的資料結構進行組織,構成物件後,他本身也可以作為物件進行封裝,繼續作為更大的物件的基本組成元素(以使離散性在更大級別上具有一致性),這一過程往往是同構的,只是我們考察物件時,經常」斷章取義「的在不同的層次或者說是不同級別上有不同的語境,這便是我們常說的術語——上下文/命名空間之類的概念。這就好像我們用不同倍數的顯微鏡去觀察物件的微觀世界一樣;正所謂」其大無外,其小無內「,只是取決於觀察者所處的位置罷了。
明了以上的理念後,對我們理性地認知事物,是有莫大幫助的。舉例來說,我們搞技術的,要保持不斷學習。不僅橫向要學習產品設計,架構設計,行業知識等,縱向也要經常學習各種層出不窮迭代快速的新技術新框架,為什麼有些人能輕鬆駕馭新知識、新工具?為什麼有人在解決疑難雜症問題時,能快速定位解決?就是因為其具有結構化的思維。說白了,就是反思問題、認知事物時是有章法的。空間上,按照範疇劃分,進行正交、完全分類,不重複,不遺漏(mece法則);時序上,有條理、有邏輯,次第分明。久而久之,加以熟練後就形成了一種自覺或直覺。如此,對於處理生活和工作中的問題,就會更加有條不紊、有的放矢。還是拿程式設計來舉例,比如對於我們使用一套陌生的框架/庫時,首先要了解其封裝了什麼東西,其基礎原理是什麼,伴隨其開放的api的組織、配置檔案項的組織等一定是結構化的(換言之,凌亂不好用的api也不會流行起來)。總之,在我們考察物件時,瞄準「結構化」,是有所助益的。
結構化 半結構化和非結構化資料
在實際應用中,我們會遇到各式各樣的資料庫如nosql非關聯式資料庫 memcached,redis,mangodb rdbms關聯式資料庫 oracle,mysql等 還有一些其它的資料庫如hbase,在這些資料庫中,又會出現結構化資料,非結構化資料,半結構化資料,下面列出各種資料型別 結構化資料 ...
結構化 半結構化和非結構化資料
在實際應用中,我們會遇到各式各樣的資料庫如nosql非關聯式資料庫 memcached,redis。mangodb rdbms關聯式資料庫 oracle,mysql等 另一些其他的資料庫如hbase,在這些資料庫中。又會出現結構化資料。非結構化資料。半結構化資料,以下列出各種資料型別 結構化資料 可...
結構化 半結構化和非結構化問題
結構化程度 是指對某一決策問題的決策過程 決策環境和規律,能否用明確的語言 數學的或邏輯學的 形式的或非形式的 定量的或定性的 給予說明或描述清晰程度或準確程度。按照決策問題的結構化程度不同把決策問題分成結構化問題 半結構化問題和非結構化問題三種型別。1 結構化決策問題 結構化決策問題相對比較簡單 ...