1. 程式人生 > >面向(過程、物件、元件、服務)程式設計

面向(過程、物件、元件、服務)程式設計

軟體發展中的幾個概念:

面向物件程式設計(Object-Oreinted Programming) 是一種程式設計正規化。指在設計程式時大量運用類例項物件的方式。OOP一旦在專案中被運用,就成了時刻要考慮的東西。

基於元件開發(Component-Based Development) 是一種軟體工程實踐,設計時通常要求元件之間高內聚,鬆耦合。其介面可能是OO的,呼叫方式可能是以Service的方式。基

於元件開發關注系統層次、子系統邊界和子系統間通訊的的設計,處於程式碼層面但不像OOP的一樣是時刻需要運用的東西。

面向服務架構(Service-Oreinted Architecture) 是將軟體設計成一組可互操作的服務的一套原則或方法論。通常在考慮系統架構時才會觸及SOA。

面向XX就是為了解決系統成長過程中遇到問題,而採用的一些正規化。

舉例來說:你開始給一個企業做MIS系統。
當這個企業來很小的時候,用簡單的面向物件程式設計,資料庫+服務端+瀏覽器已經滿足需求。不需要考慮面向元件開發和SOA.

慢慢的,這個企業長大了,當初簡單的mis系統,變得越來越複雜和龐大。系統中有很多重複功能的程式碼。當這些功能模組的業務有變化時是你頭疼的時候:程式碼中有很多地方要修改,遇到新員工,有時總是改不全。系統上線問題越來越多,需求響應時間也越來越長。經常被客戶罵:他X的,這麼簡單的需求搞了半個月都上不了線。去年xxxxxxx兩天就上線了。
此時,你會考慮怎麼把系統中那些重複的程式碼統一起來。你會考慮到元件化,即“面向元件”。你把一個個比較獨立的業務模組約定好介面,開發成元件。以後再有類似的功能模組,直接呼叫這個元件,即節省開發成本,又容易維護。

後來,企業變成了集團公司。已經上線了很多套各種各樣的mis系統。雖然大部分系統都實現了元件化。但做為一個集團公司,仍然有很多共同的業務,不同mis系統中有很多功能重複的模組。此時又面臨業務升級困難,難以使用的問題:一個需求可能要涉及很多套mis系統的升級。同時每套系統都有獨自的介面,客戶錄入一個數據,要開啟N個頁面,要登陸N次,叫苦不迭。各種資料不一致的問題接踵而來。
SOA來啦。架構師把各個系統功能類似的模組抽象成服務,重複的模組再也沒有了,不同系統間互相呼叫服務介面。以前要自己寫一大堆程式碼,現在搞清楚介面,直接呼叫另一套Mis系統的服務介面就 OK了。也有了單點登陸,有了portal,有了搜尋服務,有了知識庫等等。

但是問題又來了:
總有一些很重要的服務,所有的系統都會依賴它,它出一點問題,所有系統都停轉。你開始考慮雙機,熱備,負載均衡。
以前用的IBM的主機+Oracle資料庫+EMC的儲存,再後來買更貴的效能更好的。慢慢的你發現,企業掙的錢都他媽的給了IOE。你開始考慮分散式,開始考慮使用開源產品。
---------------------
作者:此間的年少
來源:CSDN
原文:https://blog.csdn.net/zxxssdsd/article/details/49358445
版權宣告:本文為博主原創文章,轉載請附上博文連結!