去項目中成長吧!程序員
原創在生活這條路上,雖有‘條條大路通羅馬’這一說,但是總會在一個點上交匯,在編程這條路上,我們剛開始過著前人播種后人收的的路,但是總有一天我們會有自己的想法,走自己的路,但不可否認,在有些問題上,我們又交匯在了一起。
雖然我們剛開始選擇了不同的編程語言,后來出于編程語言的種種微妙的關聯,我們又走到了同一個問題上。今天51CTO的記者以***視角為您講述一個從項目中成長的Java程序員的故事,作為編程語言排行榜持續排名***的Java語言,可想而知其開發者也并不在少數。
編程的開端
大多數人***次接觸到編程語言應該是在你大學課程開始的那一刻,我也不例外,當年開了兩門課程,一個是Java、一個就是PHP,但是Java當時很火,并且使用廣泛,用的人多了查詢問題也就方便了~那時Java給我的感覺就像是一個巨人,感覺就相當于站在巨人的肩膀上繼續前進,于是我的編程道路就這么開始了。
初級Java工程師
大學的課程內容我基本已經記不清了,只是模模糊糊的記得有一搭無一搭的聽著,哪里感興趣就多聽聽,回去多寫幾次代碼,但有些深入的地方也確實讓我覺得有點‘不可理喻’,不過我知道不懂沒關系,但是起碼基礎知識要牢固。就這樣,到了畢業前的實習期,我也算是有了一個初級Java工程師的名號。
真正開始接觸新的語言
剛開始工作時,就是人家讓你干什么,就去干什么,也不是很難,有些問題若是沒思路還可以看看別人的解決方法,或是看看以前公司項目中的一些代碼。慢慢的我開始參與了我的***個項目,這個項目也是我***次開始認認真真的接觸一個新的語言——JavaScript。JS是個頁面腳本語言,很多時候都要用它,我當時的工作內容就是用JS 來美化網頁布局和客戶端的信息驗證。
JS給我的***印象就是他的華麗,并且我可以輕輕松松的用網上的代碼來實現我需要的功能。這時我才真正意識到一個編程語言在工作中是不夠用的,每個編程語言都是工具,每一個工具都適合用來解決特定的問題。具體在工作中使用哪一種,大部分情況都是和項目類型有關。
于是項目結束后,我就開始思考我未來的編程語言之路會是個什么方向,這時一個跟我一樣做Java的同事,剛開始是為了生活為了工作才使用的JAVA,但他一直喜歡游戲,后來轉了 C++ 去開發游戲了,其中的原因當然是自己的興趣愛好了。就在我猶豫不定學習什么語言的時候,另一個項目悄然而至。
在項目中成長
這次是一個基于XP系統的員工管理項目,我的主要職責是負責管理員模塊以及協助完成主管模塊。功能是根據員工的不同級別來分配其權限,管理員可對公司員工的個人信息進行管理,包括員工編號, 員工姓名,員工性別,員工年齡,基本學歷等資料進行相關操作,可為主管分配下屬員工(運用Ajax來提示員工信息)等內容,相關的技術用到了存儲過程,觸發器,視圖,Struts2 + Hibernate + Spring + Jsp + JavaScript + Ajax。
這次的項目因為又用到了JavaScript,所以我開始格外的重視這個對我來講比較新鮮的語言,這次JS給我的感覺就他是再客戶端執行的腳本語言,這樣有些動作就不用傳回到服務器端做,節省了很大的資源,而且安全方面JS也很不錯。此時我有了一個新的認知,學習新的語言肯定是有幫助,如果以后再做其他的項目,就可以直接上手不用再學習一遍,這也是一種經驗。雖然也許只是一個項目中使用的語言,但是技不壓身。
此時,一個前輩給我了一些指點,讓我有時間可以從頭看一遍C和C++的書籍,也方便以后向其他語言轉向。此刻的我聽到別人的指點,毫不猶豫的就開始啃起了C語言,讓我明白的很多底層機制,了解了基本的程序設計思維。期間也跟了兩個別的項目,在這里也不多說了,因為沒有什么可以拿出來值得說的地方,只是在機緣巧合下接觸到了Python和 AR,卻是無意中在我一個大項目中發揮了作用。
一次大型項目
這次的項目是國內某大型保險公司的服務管理系統(雖然只是優化),這次的內容主要是由JAVA和AR(BMC remedy)兩種程序進行結合開發,進行系統的主要部分優化,以及新需求模塊的開發與運維Bug的修復。
這次目組一直困擾我們和客戶的問題難點就是用戶數據量,并發量大,導致系統經常報沒有license的錯誤。AR并發使用***達到并發3000以上。Web并發***5000人以上,所以在解決這個問題之前唯一的解決方案就是大量的申請臨時license,記憶中最多申請臨時license申請了16000個。***幾乎BMC方面已經不提供給我們臨時license,所以這個問題已經是項目組和客戶使用這個系統的一個很大的瓶頸。
也就是這個項目,讓我意識到我不知不覺的已經成長了,從以前的看別人的思路去解決問題,到現在有自己獨立的思維解決方式,并去和別人分享,欣喜若狂的我立刻記錄下了我自認為目前為止寫的最滿意的一段代碼,是一個公用導出Excel方法。(下頁為當時寫的一個手冊,附代碼)
#p#
公用類介紹
位于:
JSP頁面調用CommonExcelAction.java類中的公用導出方法
--->會去調用ExportExcel.java中的導出Excel方法
--->會去調用PraseXML.java解析配置文件方法
使用方法3部曲
1準備好查詢SQL
1. 在進行查詢操作時將sql注入到Session中,一般此語句寫在Action中
- //為導出ExcelSql保存SQL
- request.getSession().setAttribute("excelSql",strb.toString());
注意excelSql此名字不要改變
位置如下圖:
因為要在SQL已經拼接查詢條件過后再保存
頁面引入導出圖標
添加JS
- <script type="text/javascript">
- functionExportExcel()
- {
- varcount = document.QueryForm.total.value;
- if(count==0){
- alert("沒有查詢到數據");
- }else{
- if(count > 5000)
- {
- alert("查詢結果的***數限制為5000條,當前查詢結果為"+count+"條,請精確搜索條件查詢后,再導出Excel表格");
- }
- else
- {
- //導出Excel需要傳入 root此Excel的配置節點
- document.QueryForm.action = "${ctx }/commonExcelAction.do?method=exportExcelCommon&root=satisfi";
- document.QueryForm.target="_self";
- document.QueryForm.submit();
- document.QueryForm.action = "";
- }
- }
- }
- </script>
PS:每次只需要改變紅色部分satisfi這個名字和第3步的節點相對應
XML配置導出信息
- 在WEB-INF/下的exportExcel.xml文件中配置
- <!--自助單滿意度清單查詢導出Excel -->
- <satisfi>
- <!--導出的Excel文件名 -->
- <name>自助單滿意度清單查詢導出</name>
- <!--導出的Excel標題 -->
- <title>公司,自助單號,建單人,建單人部門,
- 是否確認未解決,未解決說明,服務是否滿意,服務不滿意說明</title>
- <!--導出Excel查詢的SQL字段名 PS:不要換行 -->
- <pro>GONGSI,BASESN,CREATEREN,BUMEN,ISPINGJIA,PINGJIAINFO,
- ISMANYI,BUMANYI</pro>
- </satisfi>
回頭看自己
路都是自己走出來的,這句話說的一點都沒錯,剛開始我們可以跟著別人走過的路一步一步的平穩前進,總有一天我們會覺得前人走過的路有的未必適合自己,所以我們就會岔開這條路,開辟一條屬于自己的新路。雖然我們不敢說抱著自己的夢想在這條路上前進,但是我們可以帶著想法把這條路走下去。