個體與整體哲學原理在很多學科和領域中都會得到應用,今天就看看IT行業中有哪些地方應用了個體和整體的原理。
IT行業可以分為硬體、軟體、網路三個領域,我們可以分別針對這三個領域來看下。
硬體方面,最基本的就是各種各樣的電子元件,電容、電阻等等,這些基本的元素組成了電路。隨著科技的發展,工業上採用了積體電路,把各種各樣的元件整合在一塊板子上,實現了一項功能,而這項功能是單個元件所不具備的,這正體現了整體具有個體不具備的特性的原理。而組裝過計算機的同學都知道,想要組裝一臺相容機,我們需要做的就是選購主機板、顯示卡、音效卡、CPU、記憶體、硬碟、機箱、顯示器、滑鼠、鍵盤等等組成部分,然後按照一定的方式組裝在一起,就可以成為一臺能夠輔助我們工作、學習、娛樂的計算機了,各個部分缺一不可,但又可以用類似的元件來替換。
軟體方面,在各種程式語言中,最基本的元素就是各種各樣的關鍵字和符號,加上定義常量、變數的方法,我們就可以進行最基本的過程化語言程式設計。而程式執行的最基本三種結構就是順序結構、選擇結構和迴圈結構,這三種結構不斷組合,就形成了各種各樣程式。在物件導向的語言開發中,各種各樣的變數、函式、方法組成了類、介面這些結構,進而形成了大型的軟體系統。再複雜的軟體系統也都是程式設計師們遵循各種語言之中的規律,從零開始,一行行程式碼編寫出來的。
網路中也是一樣,最基本的是各個網路裝置,可能是一臺計算機,也可能是交換機、路由器、防火牆等等,按照不同的方式組合起來(比方說星形、網狀等等),就形成了一個個網路,世界各地的網路組合在一起,就形成了大家現在離不開的Internet。有了它,我們就可以把地球變成一個村子(不由地讓我懷念當年在win95時代使用的一個臺灣開發的軟體,就叫做地球村,貌似現在已經沒有了,當初在沒有靈格斯的時代,是非常不錯的翻譯軟體呢)。而IP地址的賦予也同樣,分為四個部分,每個部分都是上一級的組成部分,是個體與整體的關係。
在以上三個方面中我們都會看到一種類似的情形,那就是最基本的元素組成稍微大一些的模組,像硬體中的積體電路、軟體中的函式或者類、網路中的區域性網路,一級一級遞增,最終形成了大型的系統。而我們經常會把這叫做模組化。這種方式也給大家帶來了非常大的方便。在硬體中,模組化之後的元件,我們可以很容易地通過插拔的方式來進行替換;軟體方面,模組化程式設計讓程式更容易維護,很多重構方法的目的也就是為了讓程式的模組化程度更好,甚至OSGi做到了一定程度的極致,所有程式都是以模組的形式存在。
其實模組化的思想並不是僅僅在這個行業中存在的,也是從傳統行業中借鑑過來的。像磚頭,就是模組化最基本的例子,有了它,我們的建築師們就不需要使用泥巴來蓋房子了。
在軟體開發的管理方面同樣也有個體與整體原理的體現。
團隊非常重要,在軟體開發中也是一樣,一般來說,一個團隊中要有各種各樣的角色,需求分析人員,設計人員,開發人員,測試人員,系統維護人員,專案經理,架構師等等,每個角色都是團隊的組成部分,都有其各自的職責。各種角色相互配合,為了共同的目標努力,才能夠讓專案成功。如果大家不能夠齊心協力,各自為戰,甚至於相互傾軋,內耗,團隊也就不能成為團隊,專案的失敗也就在所難免。
在當前流行的敏捷開發中,比方說Scrum框架中,也有對個體整體原理的應用。在做專案的時候,我們會把使用者對整個系統的需求進行分解,形成一個一個的使用者故事,然後基於使用者故事來進行評估以及進一步分解,形成程式設計師可以選擇和開發的backlog。各種各樣的功能開發完成之後,就會組合起來,形成一個完整的系統。當然這個過程可能會每天進行,那就是持續整合。
而開發的進度也是一樣,整個專案時間被切分為多個sprint,在每個sprint中我們都會完成特定的任務,並在每個階段結束的時候對情況作具體的分析和調整,持續反饋,持續改進。當所有sprint完成的時候,也就是專案完成的時候。
總之,在IT領域,個體和整體原理可謂無處不在,那麼如果我們能夠理解這個基本的原理,並使用它來指導我們的工作和學習,必定會有更好的效果。
---分割線---下面的內容同樣重要,:D----
如果您覺得這篇文章有趣或者有益,請在微信中搜尋“happyprogrammer”或者“快樂的程式設計師”,關注我的微信公眾賬號,更方便地獲得我分享的內容。
我會在其中分享自己各個方面的想法,程式設計、架構、敏捷、演說、育兒等等,目前正在寫幾個系列的文章,把自己在各個方面積累的一些經驗更加系統地分享給大家,:)