




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、4J代碼規范1 性能級別規范1.1 對潛在的業務級異常捕獲處理打印日志,參照spring源代碼1.2 controller或service層需要數據校驗,確保系統安全,具體在哪一層校驗需確認1.3 業務處理代碼只能出現于service層,確保事務安全與mvc結構清晰,如jsp, controller都不能有1.4 嚴禁循環中連接數據庫,確保一次請求不產生過多的數據庫連接1.5 使用sql直接進行統計查詢等業務復雜度較低的操作,確保java代碼的可讀性與java內存性能1.6 業務復雜的操作會涉及到多次數據庫連接,包括多表查詢,更新等,這種情況盡量避免,可以將部分業務合并在一個sql中,或者使用
2、存儲過程1.7 sql語句避免直接使用“ *”,除非在外層語句1.8 不允許單一的 count 語句使用 orderby , limit , count(*)1.9 查詢時分組、排序、條件、結果字段影響效率時,應該跟組長或DBA討論是否需要建立索引1.10 Java代碼不允許sql參數字符拼接方式,必須使用預編譯方式(除非參數絕對不發生變化),確保數據安全與查詢效率1.11 表間關聯字段類型一致,確保索引不會失效1.12 mysql中沒有函數索引,所以查詢時盡量不要有索引列的函數,如 substr(create_date, 1,6) = substr('20110728', 1
3、,6)實質是等于某月改寫為create _date >=to_char(last_day(add_months(to_date('20110728','yyyymmdd'),-1) + 1,'yyyymmdd')and create _date <= 該月最后一天1.13 編寫sql時避免大表的全表掃描,盡量走索引,正確使用left join,right join,join對數據和效率影響2 代碼基本規范2.1 數據庫所有字段都為大寫,單詞之間用 分隔2.2 在所有JSP JAVA代碼中,如果是一個數據庫字段對應的變量,則名稱和數據庫
4、字段名稱相同2.3 在JAVA JSP中,除了與數據庫字段對應的變量以外的所有變量,都以小寫字母開頭駝峰式命名,變量中各單詞之間不要空格,不要有其它字母,例如 helloWorld 是正確的 HelloWorld、hello_world 這些都是錯誤的。2.4 代碼提交到SVN時,在提交界面中,請寫清修改的原因、事項2.5 在處理日期型的數據字段時,注意不要隨意書寫,要兼容ORACLE勺寫法2.6 在使用GROUP BYg句的時候,要注冊兼容ORACLE勺寫法2.7 凡是牽扯到數據持久化的代碼都要封裝到dao層,切不可以在bean或者其他的層中寫操作數據庫的代碼。3 代碼書寫原則3.1 JSP
5、頁面中,盡可能不寫或者少寫JAVA代碼3.2 所有JS代碼,者B寫在JSP頁面的上方3.3 所有JSP代碼、JS代碼,都要寫上完善的注釋,因為這部分代碼,會被經常改動。4 文件命名規范在日常與客戶交流或者寫文檔時,請不要隨意的寫一個文檔名稱,隨意的文檔名稱,會導致文檔的無序、混亂,不易管理與查找。同時,在發與客戶文檔時,一個好的文檔名稱,也有助于客戶理解與奠定好的客戶印象。文檔、文件夾,命名的大體格式為:日期_客戶(可選)_主題_補充(可選)_版本(可選)注意:各主題之間用下劃線隔開日期:兩位年 兩位月 兩位日。例如:101128客戶:客戶名稱或者項目名稱。例如:IT報修平臺主題:能夠說清文檔
6、的主題、內容。 例如:解決不顯示按鈕的 BUG。首頁設計。測試報告補充:對特殊事宜的補充說明。例如:更新了首頁。增加了欄目頁面。IE8。 1024分辨率。WEBSPHERE。 ORACLE。版本:定義系列事件的版本,如 2.1,大變化個位加一,小變化小數加一。在版本號前加上V,例如V1.0V0.2文檔名稱中的各數據,他們的優先級為:日期 > 客戶 > 主題 > 補充 > 版本也就是說,如果文檔標題中,即有主題與補充時,應該先寫主題,再寫補充。以此類推。更新包要盡量做到只更新有效的文件,別什么都往里放5 開發注意事項5.1 希望刪除項目中的文件時,一定要在eclipse中
7、進行,不要在外面刪除,在外面刪除會導致版本庫同步失敗5.2 不要經常去在eclipse中部署應用,正常的開發,一年都不用去部署一次,只要第一次部署后,后面跟SVN同步,然后頁面不顯示直接整體刷新工程,或者清除tomcat緩存。 而重新部署則會導致一些代碼的丟失5.3 請務必使用Dreamweaver編輯網頁文件、JS文件,不要直接在 eclipse中編輯。因為在 DW中編輯,可以更有效的保證網頁的設計視圖不會代碼 破壞!在使用 DW編輯時,可以使用 DW的同步功能,將項目指向eclipse主工程,同時同步到 tomcat中。這樣修改了文件,2邊都會進行修改6 添加、修改、注釋代碼6.1 注釋包
8、括復雜邏輯代碼段、業務代碼段、不容易理解的變量、方法、類6.2 在原有的代碼基礎上添加某一個方法或者某一段代碼,除了要寫上代碼的注釋外還有把添加人以及當前的日期寫上;除此之外還要寫上添加這 段代碼或者方法的目的。6.3 在原有的代碼中修改某一個方法或者某一段代碼,除了要寫上代碼的注釋外還有把修改人以及當前的修改日期寫上;除此之外還要寫上修改這 段代碼或者方法的目的。6.4 在原有的代碼中發現有錯誤或者是與當前的代碼不吻合,不要把別人的代碼刪除了??梢宰⑨專⑨尯笠獙懮袭斍叭掌谝约白⑨屓撕妥⑨尩哪?的。6.5 所有頁面J§都盡量寫在頁面的上部,并且要寫上完整的注釋X</table
9、><script>function pageInit()selectInit('SEX',"$param.sex");selectInit('AGE','$param.age');selectInit('LOCAL_PROVINCE','$vince');selectInit('LOCAL_CITY','$param.city');selectInit('LOCAL_COUNTRY','$param.co
10、untry');document.getElementById("many").value = "$param.many" </script><jsp:include page="bottom.jsp" /><!-FOOT 的結束-></body>改進 建議JS放到卜面,其它人下次找 BUG寸很容易忽略此處的代碼V移至head區域7 整潔的代碼7.1 定義有意義的變量名、方法名,做到望文生義,一目了然。杜絕 int id1 = 0; public String init()之類的
11、代碼。id1和init()都不能告訴讀者這 是干嘛用的7.2 命名類,方法,變量慎用簡寫,除非大家都公認,而且名字盡量包含業務信息而不是邏輯概念,如返回人員列表時,使用userList而不是result7.3 禁止大段的、層次過深的if-else代碼。每段if語句塊一屏之內必須結束。不能出現超過 3層白if判斷。7.4 每個方法盡量只做一件事,杜絕瑞士軍刀式的方法,方法有很多功能,但是用法復雜,并且大多數人不知道怎么用。7.5 不要通過傳type的方法讓一個方法有兩種功能。如果確實需要,則要在此方法之上重構幾個方法,分別實現type參數的意義,例如:public void setQueueSt
12、ate(int ID, int STATE) throws DataAccessException / 設置狀態public void setQueueStateFail(int ID)/ 設置失敗狀態 STATE=-1public void setQueueStateSuccess(int ID)設置成功狀態 STATE=1讀者在實際調用的時彳II不需要去理會STATE參數的含義,通過方法名即可直達此方法的含義。7.6 杜2b boolean型參數的方法,如果確實需要則必須重構,表明此 boolean 參數的含義。不要在思考此參數的含義上花費時間。7.7 沒用的代碼段不要注釋,直接刪除。我們
13、有版本控制,不需要注釋保留代碼7.8 代碼中不要亂換行。換行的意思是隔斷不同語義的代碼,合理的換行可以幫助讀者理解你的代碼,不合理的則會幫倒忙。例如:private void exeMultiHtmlCache(HttpSetvletRequest request, HttpServletResponse tesponse) throws DataAccessExceptionHtmlQueueBean bean = new HtmlQueueBean ();Collection queueCol 1 = tiean. getQueueList () ; /待靜態化的頁面信息集K靜態化成功的隊
14、列工DCollection successQueueIdList. - new ArrayL 1st.();if(null=queueCol1) return ;設置隊列的狀態為正在進行beanisetQueueStateBusy(queueColl);執行靜態化Iterator it = queueColl,iterator();while(it . hasWext() ) HtmlQueueVO VO = tHtmlQueueVO) it. next ();待靜強化的頁面信息V。執行靜態化 返回成功的隊列工int id = cacheHtml(request response,VO);記錄成功的ID集合if(id>0successQueueIdList.add(id):bean,delQueueByldList (successQueueldList) ;,/"刪除已經成功靜態化的反列 每一步操作
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論