1. 枚舉類的使用:當定義的某個字段有多種狀態值或表示值時,能夠建立一個枚舉類將全部狀態表示出來,並供其餘使用到該字段的方法統一調用。枚舉類定義可參考 '/banking-dbbp-product-comp/src/main/java/com/vivebest/banking/dbbp/product/comp/Enums/ProductTypeEnum.java'。
2. 異常處理,在調用其它項目接口時必定要進行異常處理,在拋出異常時須要使用logger.info()對異常進行打印,異常處理格式以下
3. 日誌打印不用轉換成json對象再輸出,若是是打印實體類對象在編寫時直接構建toString()方法便可,方式是 右鍵實體類--> Source --> Generate toString()。
4. 後臺日誌打印主要有info和debugger兩種形式,在進入後臺Action時使用logger.info()打印信息,在拋出異常前使用logger.info()打印信息,調用其它方法是使用logger.debugger()來打印信息。info主要是用來判斷參數信息是否正確,debugger主要用來查看程序走到了哪一步。
5. 打印日誌時要使用佔位符‘,’,不建議使用字符串拼接‘+’的形式,使用‘+’是字符串拼接,會浪費系統資源,後期調整爲error級別時,仍會進行字符串的運算,在進行壓力測試的時候或者是高併發的狀況下,影響系統的性能。使用‘{}’符進行佔位,效率比較高,方便往後日誌篩選與查看。
6. 自定義異常處理時,異常的定義要規範化,同時要包含必定的業務含義,使代碼具備可讀性。
7. 有返回值的實體類或者List和Map都不能使用New()操做,直接在定義時直接初始化=null便可,如: List resultList = null或者直接 List<PublishAuditor> resultList = publishAuditorService.query(publishAuditor);使用New()操做會消耗額外資源。
8. 刪除操做、插入操做和更新操做都不須要有返回值接收,查詢操做時選擇適當的容器來進行接收查詢數據。
9. 日期類型的轉換有公共的Utils類中有方法能夠直接調用,能夠避免手寫轉換,在第三方jar包 org.apache.http.client.util.DateUtils中可直接時候,使用方法爲 Date date = DateUtils.parseDate()。
10. 在Action執行完數據庫操做後向前臺返回數據時,不須要手動自定義標識符,系統框架會自動返回前臺可識別的標識符。不須要特地putResponse出執行成功或失敗的標識,平臺級的報文中會有resultType爲N的,同時前端會對錯誤進行處理的。
11. 當從前臺接收到的某個字段須要常常作轉換或者處理時,能夠在定義接收該字段的實體類中的Set()方法中進行處理,避免了在其餘層頻繁處理。
12. Action層主要負責業務和模塊的組裝,用來寫業務的流程。Service層用來進行具體的業務操做和數據處理。當Action接收到參數時,在Action進行數據的組裝。Action層處理大的業務邏輯,即主要業務邏輯流程的串接,Service層作具體的小業務的流程,以及數據的處理等
13. 在使用MyBatis在XML裏面編寫SQL語句時,須要聯表查詢並編寫多個Join語句時,應該把每一個Join語句單獨成行,方便一眼看出關聯了哪些表。以下:
14. 對於數據的組裝和賦值,應多使用工具類,如dozzer 或者beanUtils中的些對象之間的賦值,儘可能減小set方法。使代碼具備簡潔、可讀性。
前端代碼
1. 前端的組件如tab id或者name進行命名的時候要有明確含義,儘可能避免tab-一、tab-2這種無心義的命名。
2. 編寫JS文件時要在對應頁面下建立JS文件夾,而且JS文件也要有適當的註釋,關鍵字段和方法也應加上註釋。
3. 在一個頁面有多個Tab展現不一樣的加載數據時,能夠給tab添加定時器,在點擊一個tab後對後面的tab進行預加載,沒必要一次性加載所有數據,也沒必要只有點擊以後才加載數據。
4. 當前端頁面屢次用到同一個組件的某個屬性時,能夠添加一個class id,並在CSS或經過Jquery來進行統一控制。