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