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