無論什麼系統變大了之後,就會有一系列問題。面向XX就是為了解決系統成長過程中遇到問題,而採用的一些正規化。舉例來說:你開始給一個企業做MIS系統。 當這個企業來很小的時候,用簡單的面向物件程式設計,資料庫+服務端+瀏覽器已經滿足需求。不需要考慮面向元件開發和SOA.慢慢的,這個企業長大了,當初簡單的mis系統,變得越來越複雜和龐大。系統中有很多重複功能的程式碼。當這些功能模組的業務有變化時是你頭疼的時候:程式碼中有很多地方要修改,遇到新員工,有時總是改不全。系統上線問題越來越多,需求響應時間也越來越長。經常被客戶罵:他X的,這麼簡單的需求搞了半個月都上不了線。去年xxxxxxx兩天就上線了。此時,你會考慮怎麼把系統中那些重複的程式碼統一起來。你會考慮到元件化,即“面向元件”。你把一個個比較獨立的業務模組約定好介面,開發成元件。以後再有類似的功能模組,直接呼叫這個元件,即節省開發成本,又容易維護。後來,企業變成了集團公司。已經上線了很多套各種各樣的mis系統。雖然大部分系統都實現了元件化。但做為一個集團公司,仍然有很多共同的業務,不同mis系統中有很多功能重複的模組。此時又面臨業務升級困難,難以使用的問題:一個需求可能要涉及很多套mis系統的升級。同時每套系統都有獨自的介面,客戶錄入一個數據,要開啟N個頁面,要登陸N次,叫苦不迭。各種資料不一致的問題接踵而來。SOA來啦。架構師把各個系統功能類似的模組抽象成服務,重複的模組再也沒有了,不同系統間互相呼叫服務介面。以前要自己寫一大堆程式碼,現在搞清楚介面,直接呼叫另一套Mis系統的服務介面就 OK了。也有了單點登陸,有了portal,有了搜尋服務,有了知識庫等等。但是問題又來了:總有一些很重要的服務,所有的系統都會依賴它,它出一點問題,所有系統都停轉。你開始考慮雙機,熱備,負載均衡。以前用的IBM的主機+Oracle資料庫+EMC的儲存,再後來買更貴的效能更好的。慢慢的你發現,企業掙的錢都他媽的給了IOE。你開始考慮分散式,開始考慮使用開源產品。先寫到這兒。
無論什麼系統變大了之後,就會有一系列問題。面向XX就是為了解決系統成長過程中遇到問題,而採用的一些正規化。舉例來說:你開始給一個企業做MIS系統。 當這個企業來很小的時候,用簡單的面向物件程式設計,資料庫+服務端+瀏覽器已經滿足需求。不需要考慮面向元件開發和SOA.慢慢的,這個企業長大了,當初簡單的mis系統,變得越來越複雜和龐大。系統中有很多重複功能的程式碼。當這些功能模組的業務有變化時是你頭疼的時候:程式碼中有很多地方要修改,遇到新員工,有時總是改不全。系統上線問題越來越多,需求響應時間也越來越長。經常被客戶罵:他X的,這麼簡單的需求搞了半個月都上不了線。去年xxxxxxx兩天就上線了。此時,你會考慮怎麼把系統中那些重複的程式碼統一起來。你會考慮到元件化,即“面向元件”。你把一個個比較獨立的業務模組約定好介面,開發成元件。以後再有類似的功能模組,直接呼叫這個元件,即節省開發成本,又容易維護。後來,企業變成了集團公司。已經上線了很多套各種各樣的mis系統。雖然大部分系統都實現了元件化。但做為一個集團公司,仍然有很多共同的業務,不同mis系統中有很多功能重複的模組。此時又面臨業務升級困難,難以使用的問題:一個需求可能要涉及很多套mis系統的升級。同時每套系統都有獨自的介面,客戶錄入一個數據,要開啟N個頁面,要登陸N次,叫苦不迭。各種資料不一致的問題接踵而來。SOA來啦。架構師把各個系統功能類似的模組抽象成服務,重複的模組再也沒有了,不同系統間互相呼叫服務介面。以前要自己寫一大堆程式碼,現在搞清楚介面,直接呼叫另一套Mis系統的服務介面就 OK了。也有了單點登陸,有了portal,有了搜尋服務,有了知識庫等等。但是問題又來了:總有一些很重要的服務,所有的系統都會依賴它,它出一點問題,所有系統都停轉。你開始考慮雙機,熱備,負載均衡。以前用的IBM的主機+Oracle資料庫+EMC的儲存,再後來買更貴的效能更好的。慢慢的你發現,企業掙的錢都他媽的給了IOE。你開始考慮分散式,開始考慮使用開源產品。先寫到這兒。