終于,工作也將近一年了,從4月份的開始實習,到現在,唉,經歷的不知道算多不多,學到的也不知道算多不多,反正現在就寫一篇總結,對自己有個認識吧。
2005年4月份的時候,辭掉了一家在廈門工資還算不錯的公司,進入了現在所在的這家公司實習,那時候是很肯定的覺得自己做的沒有錯,現在呢,我還是認為選的沒錯,只可惜,工資一下子就少了600多了。中間也拒了幾家有些名氣的公司,說實在,有時候還真不能百分百肯定,那時候選這家公司是否是最正確的選擇。
總體上,被錄用的做技術的公司的,進去分別是做這三種技術的東西,一家是Windows mobile,一些是.net,還有現在這家的J2EE。.net能學多少東西是不知道啦,不過前半年里在開發J2EE時,覺得自己真的學到很多,工作了半年以后,就有點迷茫,自己學的夠嗎?
4月份在這家公司是以實習的身份進來的,在實習的這段時間里,學會了struts和hibernate的基本應用,也用這些框架做了幾個小模塊,由于中間要用到了一個統計圖,去了解并采用了jfreechart,也算是順便學了這個開源包吧。等我向項目經理確認我可以像其他員工那樣完成任務時,才結束實習,回到學校。
7月份畢業出來,回到這家公司時,一開始做的,就是維護公司自己的OA系統。第一個周是做原有模塊的修改工作,因為在學校玩了一段時間,剛開始做的時候還真有一點生疏。
第一周的任務完成后,開始上手了,接下來,就開始增加兩個新的客服模塊了。這兩個模塊用了三周完成,這三周里面,也學會了一個不刷新技術(后來才知道,這叫AJAX),并在剩余的時間里面,比較大的收獲就是掌握struts-menu這個開源包的普通應用。
8月份的前兩周,開始做一個薪資審批的流程,也算是第一次接觸工作流了。這次做的這個模塊,并沒有學到什么新的技術,就是業務邏輯很復雜的編碼,但是想想自己也剛工作沒幾天,這對我來說,益處還是很大的。
接下來的一個月里,做的是OA上添加一個跟企業的運營平臺整合的企業注冊模塊,這個模塊一開始看業務還是很簡單的,后面功能慢慢添加,竟然做了一個月才完成,期間抽空了解了一個在線編輯HTML的東西,而我想主要的,這個模塊有很多突發事情和意外要考慮,跟以前做的那些相比,這次的這個模塊,才是真正煅煉程序員能力的編程吧。已經到9月份的中旬了,那個注冊企業模塊也終于完成了,現在回想起來,做那個模塊用的最有技術含量的東西,應該是Ajax吧(我并沒有用什么開源的框架,如果現在有人要嘲笑我說,“你只是簡單的一些不刷新,也叫Ajax,真搞笑”,那我只能說,果然不只文人相輕,做技術的也看不起做技術的。
剛做完這個企業注冊模塊,項目經理問我說:“你以前用過.net吧。”我告訴他是的。沒想到,一個任務就來了,把一個aspx+C#做的短信業務管理網站修改一下,因為里面都是適合SQL Server的數據庫,而且用到很多存儲過程,現在想遷到Oracle上。而一周后,終于把這個項目改成適合于大部分數據庫的,去掉所有存儲過程,增加了日志功能。這次的這個任務并沒有煅煉到什么J2EE的能力,不過也算再熟悉了一下.net,再次感受了.net的人性化,可惜有些功能還是沒有Jbuilder好。接下來,又是修改了一個用EJB做的工程中的一些模塊,和調整了OA中的一部分功能。期間也搭建了一個Tapetry的工程,算是感受了他一把,不過還是覺得它沒有struts好用。
接下來的這個月,是我學得最多的一個月了,公司想把以前的C/S二層結構改為Delphi做界面層,用Java做中間服務層,最后再數據庫服務器。他們最先考慮到的是,用Web service。于是我的任務就下來了,研究一下Web service,看能不能做一個框架滿足公司的要求。我起先則是用axis搭建Web service,后面發現,它實在是太復雜了,我們想要的,是一個輕便的東西。
于是就開始研究SOAP,因為Web service就是用SOAP傳輸消息的。SOAP然后是javaxml,接著是dom4j。后面自己產生一個想法,如果客戶端傳遞一個XML過來,里面描述了要調用的類名,方法名,以及傳遞的參數對象。服務端解析XML出來,利用反射和序列化XML轉化為本地化持久類,調用這個方法,再把方法返回的對象轉化成XML返回給客戶端,那么不就可以實現客戶端自由調用Java的類。
有了這個想法就很興奮,開始付諸行動。很幸運的是,我把這個框架做出來了,那時候真的很興奮,因為在我以為,那個類型的框架還從來沒有看見過,甚至想把它放到網上開源去。后來才意識到,其實我做的這個就是輕量的沒有規范的Web service。既然這樣,后面又給它增加了類似wsdl的功能,而后在優化過程中,增加了cache,大大提高了速度。測試了一下,完成同樣的功能,它的速度是axis web service的十幾倍,呵呵呵呵呵,那個叫興奮啊。那也是一次性把Java的幾項關鍵技術一起學了順便用上。
做完這個框架后,又做了兩個項目,一個交通查詢的,一個社區。這兩個項目倒也沒有像上回研究Web service那樣令人興奮的感覺了,不過還是學了很多開源的東西和技術。交通查詢很多次用到Ajax,也在做這個項目的期間,學到了幾項J2EE技術,在一次用JavaScript做樹狀控件的時候,大大了提高了Javascript一把。而在此,也總結到,其實懂不懂一些新技術并不是主要的,新技術很容易就可以用起來,而難的,就是決定用哪些技術,哪些模式,直至如何來設計自己的框架。很幸運的,在做那個社區的時候,我有了這個機會。
除此以外,做這個社區的時候其他令人激動的事情,就是寫了幾個復雜的標簽,學到了velocity和全文搜索Lucene了。
之后,就是發生一些跟技術無關的不如人意的事情了。