這是我三年前寫的一篇小心得,過了三年后回過頭想一下,感覺自己隨著自己的角色發(fā)生的改變后,考慮問題的角度已經(jīng)有所不同了。[]內(nèi)中的內(nèi)容是我新添加的
學(xué)習(xí)編程已經(jīng)有好些年了,接觸到的各種的API也不少,有面向操作系統(tǒng)的API,有中間件的API,有時(shí)也要自己寫一下API供別人調(diào)用.學(xué)習(xí)API自然就成了日常的功課。就好比學(xué)習(xí)武功一樣,各路門派,各式招式,都有一個(gè)從入門,精通,到騰飛的階段。
學(xué)習(xí)編程已經(jīng)有好些年了,接觸到的各種的API也不少,有面向操作系統(tǒng)的API,有中間件的API,有時(shí)也要自己寫一下API供別人調(diào)用.學(xué)習(xí)API自然就成了日常的功課。就好比學(xué)習(xí)武功一樣,各路門派,各式招式,都有一個(gè)從入門,精通,到騰飛的階段。
初級,立刻上手,出結(jié)果。 對于API一般都會有很多文檔,這些文檔都比較詳盡的把API的來由,使用,注意事項(xiàng)都描述清楚。在這個(gè)層次,讀文檔是第一位的,但是為了提高效率,立桿見影,還需要從讀例子入手。 通過簡單的例子,可以立即對API的使用獲得十分感性的認(rèn)識,同時(shí)很多代碼立刻就能為你的應(yīng)用開發(fā)提供直接的支持,這樣學(xué)習(xí)效率會大幅提高。 還有就是當(dāng)看一些缺乏文檔描述的API時(shí),如果不確定API的具體行為,也可以從API所提供示例代碼入手,同時(shí)也可以進(jìn)一步驗(yàn)證你對API的功能理解。
[以前是使用CORBA做應(yīng)用開放, 可以算是API的使用者, 現(xiàn)在由于我的工作是做 CXF的開放,成了實(shí)現(xiàn)JaxwsAPI的開發(fā)者, 現(xiàn)在對API的認(rèn)識雖然不能算是已經(jīng)騰飛了,但是感覺API其實(shí)算是你對系統(tǒng)架構(gòu)的設(shè)計(jì)體現(xiàn). 其實(shí)API也不是一成不變的, 好的API應(yīng)該是易于理解和使用的, 因?yàn)槎xAPI目的是為了用戶能夠方便快捷的使用你所設(shè)計(jì)的程序庫,這樣可以幫助使用者快速掌握你所設(shè)計(jì)的框架,能夠真正地用戶的生產(chǎn)效率.]
中級,對API爛熟于胸
一般到達(dá)這一層次,所追求的目標(biāo)就是將API用到最恰當(dāng)?shù)牡胤?。通過體驗(yàn)API各種參數(shù),以及調(diào)用方式的不同,理解API的使用特點(diǎn),可以用API來進(jìn)行思考,解決你的問題。猶如練刀和練劍一樣,通過對你所用的兵器的體驗(yàn)、練習(xí),達(dá)到人刀(劍)合一的地步。 為了熟悉API,需要對API的描述文檔,或者是API后面的具體實(shí)現(xiàn),有很深入的認(rèn)識。這往往是建立在大量的API使用基礎(chǔ)上的。換句話來說,就是要多用,多想,多做項(xiàng)目,在實(shí)戰(zhàn)中提高自己。 對于API文檔來說,有面向業(yè)務(wù)的(規(guī)范了詳細(xì)的業(yè)務(wù)流程),也有面向系統(tǒng)實(shí)現(xiàn)的(如CORBA、J2EE的規(guī)范),這些都是從初級菜鳥向大俠級人物升級的必備物件,也是成為資深專家練功秘笈哦。 高級,無招勝有招 API,只是為了解決某些問題,而提供的某種途徑。到這一層次,API以及轉(zhuǎn)換成為你解決問題一種手段,而你在對具體問題思考的過程中,除了能夠進(jìn)行高度的概括(架構(gòu)系統(tǒng)框架),也能進(jìn)行很細(xì)致的思考(具體的實(shí)現(xiàn)代碼)。對于你來說,面對問題,你所想到的不是具體的API,而是整個(gè)問題解決之道。
[以前我作為API的使用者,是使用CORBA進(jìn)行有應(yīng)用開發(fā), 現(xiàn)在我作為CXF的開發(fā)要實(shí)現(xiàn)JAXWS定義的API, 算是API的另一種使用者. 到現(xiàn)在我還是很希望這個(gè)問題解決之道的提法. API就象我們平時(shí)寫作使用的詞匯句式, 是我們思維的 Building Block, 我們可以用小的Building Block 構(gòu)建一個(gè)非常漂亮的文章. 軟件開發(fā)和寫文章很類似. 我們解決某些問題或者是實(shí)現(xiàn)一個(gè)User Story的過程,就是將這樣那樣的API搭配組合,構(gòu)建映射成為我們的具體的領(lǐng)域模型. 而這里Building Block就是API. 組合構(gòu)建的過程就是我在前面提到的道]
為了達(dá)到這一層次,需要長時(shí)間的學(xué)習(xí)和深入的思考以及開發(fā)經(jīng)驗(yàn)的積累。
呵呵這也許是大家追求目標(biāo)吧,所以我們還需要繼續(xù)不斷的練功啊。
新聞熱點(diǎn)
疑難解答