面向?qū)ο笫?0年前后興起的編程方法,,后來進(jìn)化為組件方式,03開始國外的不少公司開始推進(jìn)SOA的方法,,這里不作名詞解釋,,就是說一下我所理解的對(duì)象、組件和服務(wù),。 很早就看到國外所謂的面向?qū)ο缶幊?,國?nèi)也很多人都在學(xué)習(xí)面向?qū)ο缶幊?,究竟什么是面向?qū)ο螅瑐€(gè)人覺得每個(gè)人理解的方式和方法 都是不同的,。C語言不是面向?qū)ο蟮恼Z言,,但不代表C不能按照面向?qū)ο蟮姆椒ň幊蹋珻++是面向?qū)ο蟮?,但是很多程序員寫的程序并不是面向?qū)ο?,所以不是用面向?qū)ο蟮恼Z言就能夠編寫出面向?qū)ο蟮某绦颍P(guān)鍵是寫程序的人,。 后來陸續(xù)開始面向組件的編程,,有了COM、DCOM,、CORBA等等方法,,于是有很多程序員開始學(xué)習(xí)組件編寫,寫了很多不是組件的組件,,不理解為什么要面向?qū)ο?,為什么要把程序?qū)懗山M件,就不可能掌握組件的編程原則,,那肯定是寫不好程序的,。 SOA是什么,網(wǎng)絡(luò)上一堆的材料不用我來描述,,但是怎么把系統(tǒng)規(guī)劃符合SOA,,這才有可能設(shè)計(jì)好SOA。 下面我說一下自己的理解,,不一定對(duì),,希望方家指教。我覺得很重要的一點(diǎn)是程序不是編寫完成發(fā)布了就結(jié)束了的,,更多的是要在程序的整個(gè)生命周期內(nèi)維護(hù)好,,維護(hù)期的需求變化造成的代碼量遠(yuǎn)比初期編寫的時(shí)候的代碼量大,所以程序的開發(fā)完成只是生命的開始,,所以怎么讓這個(gè)生命活得更長,,更健康是我們?cè)谝婚_始編寫的時(shí)候采用的方法有很大的關(guān)系。 面向?qū)ο笫腔诖a重用的需要,,我剛開始寫程序的時(shí)候,,書上就說要寫成函數(shù),各種各樣的函數(shù)支持程序的工作,,負(fù)責(zé)完成一個(gè)簡(jiǎn)單的功能,,后來就發(fā)現(xiàn)函數(shù)的重用還不能解決代碼不斷修改的需要,于是修改了函數(shù)的入口參數(shù),,函數(shù)越來越多后代碼就變得很凌亂,。面向?qū)ο缶湍軌蛟诟叩膶哟紊辖鉀Q函數(shù)方式編碼的問題,。把一個(gè)form作成對(duì)象,,對(duì)象內(nèi)部即便是凌亂的,,也不會(huì)對(duì)外部代碼產(chǎn)生影響。 組件是基于功能的編程方法,,或者可以說規(guī)劃組件是系統(tǒng)設(shè)計(jì)的一個(gè)重要步驟,,怎么把一個(gè)需求拆分成多個(gè)組件,每個(gè)組件再按照面向?qū)ο蟮姆椒ň幊?。組件的編程實(shí)現(xiàn)方法也是軟件工程越來越大,,多個(gè)程序員協(xié)同完成一個(gè)任務(wù)的有效方法。 隨著系統(tǒng)規(guī)模的不斷擴(kuò)大,,一個(gè)系統(tǒng)的實(shí)現(xiàn)需要更多的人參與,,單純用組件的方法來規(guī)劃系統(tǒng)已經(jīng)不合適了,編程工具的使用1-3個(gè)程序員就可以完成一個(gè)組件的代碼,,組件之間的調(diào)用也越來越復(fù)雜,,服務(wù)的模式即SOA模式就是解決組件間的關(guān)系問題,把系統(tǒng)拆分為不同的服務(wù),,各個(gè)服務(wù)間的接口在一開始就進(jìn)行規(guī)劃,,服務(wù)內(nèi)部包含各種組件,有可能一個(gè)組件在二個(gè)不同的服務(wù)內(nèi)工作,,但是其歸屬首先是歸屬到各個(gè)服務(wù)中,。SOA的方法首先是方法論上的進(jìn)步,尤其是系統(tǒng)設(shè)計(jì)上的問題,,回過頭看幾年前作的東西,,如果能夠一開始就用服務(wù)的概念來規(guī)劃,系統(tǒng)的生命期會(huì)更長,。
|
|