2009-12-13 12:17 35人閱讀 評論(0) 收藏 舉報
半個月以來自己一直在實驗室里搞java.對java的數據結構和反射概念有了一點的理解。Java的數據結構是 ADT,簡單的形容就是一面墻,隔著用戶,可以進行的操作都在接口內部(interface),這讓我聯想到了在 spring的 sessionFactory中的beans都是interface或者是非final類型的類,因為只有這樣,變量才能夠進行實例化操作,在底層只有jdk的interface在工作,非常復雜的Ioc容器概念和反射概念其實就是對接口的管理,ADT是什么?似乎就是數據庫中的字段和對應的類,一系列的概念都在Model-->Dao—>Service-->Web中產生,作為初學者,我感到這些概念讓我措手不及。例如Servlet是怎樣到applicationContext找到自己想要的內容,以及AOP的設計思路是怎樣在Domain和DAO滲透的,去理解hibernate和Spring是怎樣解耦的?
這一切似乎都在告訴我java很復雜,這幾天我加入了幾個JAVA愛好者的QQ群,和他們交流的時候,問題很嚴重,就是聽不懂大家究竟在討論什么?Swing和SWT組在討論桌面控件,SSH組在討論怎樣將Struts1.X轉化為Struts2,以便更好的整合。光是解決SSH中兩個jar的沖突,我就發了兩次帖,到論壇上進行求助,和一個北大青鳥的學java的朋友交流,他說:java很難。
java是很難的,但是,在多年以前,大家還在用筆記本進行軟件開發,在cmd下調試的時候,是簡單的么?越來越多的框架和越來越多的工具都在告訴我們,java在變得簡單,只是java處理的問題變難了。在學習hibernate的時候,體驗最大的就是入門很難,但是目前學習的整個過程,自己去真正寫代碼的時候很少,全自動的對數據庫的操作進行了一層又一層的封裝,我們最后得到的是服務層的函數。在Struts Action中進行DelegatingActionProxy,在后臺進行sessionFactory注入,問題就解決了。于是我們看到還是一個完美的ADT,即不多什么也不少什么。而在Myeclipse中更是集成了spring,hibernate和struts的GUI開發能力,在做Jsp頁面跳轉的時候,就是畫圖的模式寫代碼。
那究竟是什么地方難呢?針對我自身的情況總結為以下幾點,這也是也后繼續學習的時候必須注意的。
1.對API的使用幾乎為0.很多問題,debug到最后,都可以在API上找到問題解決方案,這是前人的經驗和JDK 的 source決定的,所以,一定要學會看API,多去瀏覽英文的網站,應為英文的網站上的解答大都是從console看信息,然后去API找答案的,而我就是google。導致自己不會看控制臺里的內容。
2.熟悉概念,例如對反模式的理解可以更好的理解數據庫是如何CRUD的。可以觸使自己解決看起來復雜,其實很簡單的問題,就像在iBatis中,大量的原始SQL語句都要自己去寫,這樣可以使自己在做的過程中看見SQL是怎樣映射過去的,但是針對hibernate的HibernateDaoSupport,不知道它是怎樣轉化過去的。
3.學習使用Junit和Ant。在整個的過程中,是不斷迭代的過程,循環監測和模塊調試很重要,整個結構起碼有三層的時候,調試起來,只通過tomcat的窗口終究不知道哪里出了問題。而Junit和Ant都是通過annotation來完成的。所以,學會使用這些工具迫在眉睫。
4.多交流,CSDN的論壇是個好地方,第一次去CSDN是google過去的,當時是學習MFC的時候,對消息映射的機制了解不好,鏈接過去的。而最近我發現,被動的鏈接到論壇其實得到的東西很少,瀏覽的時候,不妨多去論壇。記得曾經有人說,簡簡單單學java,天天上CSDN。
這是我最近學習上的一點總結,歡迎大家交流、指正和分享體會。