规范-编码规范总结(微信分销系统)
為什么80%的碼農都做不了架構師?>>> ??
項目整體架構技術棧
Spring、SpringMVC、MyBatis、MySQL、JSP、OSS、定時器、微信相關接口
項目目錄結構總結
只要在二個或二個以上地方用到的代碼必須抽取處理,抽取工具類。
校驗方式和業務代碼混合在一塊不方便于代碼的維護。這里建議都使用hibernate-validator來做分組校驗,可以提高校驗的可讀性和擴展性,或者使用aop做公共部分的業務做統一的校驗處理。
這里的中文提示切記不要這樣寫,因為這里的校驗提示不是在一個地方用到,提示在添加和修改會同時用到,所以切記重復使用二次或二次以上的代碼要進行抽取,用常量類中統一處理。
統一提示頁面,該頁面用來處理所有form表單提交的同步請求(區別于一些ajax異步請求),對應ajax異步請求建議采用前端封裝一個統一提示的模態框用于前端的一些參數校驗和異步響應的后臺提示。
controller 調用service 的insert接口,建議不要再封裝一個其他的BaseModel,然后再用BaseModel的返回值處理,這種寫法對應經常用這種方式的可以,但對于一些其他的陌生這種開發方式的人來說提影響開發效率的。這里建議,調用service返回的???待總結
切記controller中的請求路徑一定要有一定的規范,這樣代碼即美觀有方便維護,每個模塊要劃分明確,也便于做權限管理。
最好都生成一個package-info.java 并在這個java類中填寫一定的模塊介紹,方便代碼的維護,這樣當你10年后回來看自己的代碼也不會那么迷茫了。
首先用mybatis-generator 自動生成代碼速度快,但都建議生成xml代碼后進行一定的調整,調整可以如下:
1. 多使用xml代碼片段(表名,表列名,多條件查詢)
2. update一般都是根據主鍵id來局部更新的,所以寫一個update就可以了,用if判斷一下再去更新。
3. 生成的代碼中都是對參數做了jdbcType類型處理了,建議都去掉,可以提供代碼的擴展信息(隨便添加字段就不用擔心類型寫錯了)
前后臺交互封裝成對象的方式:
1. 前臺是通過ajax異步請求請求后臺路徑或在app接口開發的時候,建議可以采用如下正確的寫法2。
2. 封裝比較合適的相應參數
不管是mapper接口中還是service接口中保存和更新需要設置返回值嗎?但你設置返回值的時候保存成功必然返回值為1,但保持失敗必定是拋出jdbc操作數據庫異常,所以我這里建議使用不設置返回值且不用返回值來處理業務邏輯,成功代碼執行完成,失敗捕獲異常返回給前端。需要證實
在同一個service方法中涉及到二個或二個以上更改數據操作的方法中必須設置回滾事務操作,不然會造成數據的不一致。當有一個select和一個insert的時候可以不做回滾處理,因為不會影響數據的一致性。
在頁面的分模塊管理也盡量常用統一的命名和和controller請求路徑的機制命名,方便代碼的定位和編寫代碼的效率。比如listView,可以在多個模塊中來回拷貝,改個標題名可以用了。還有就是對應一些如:頁面頂部或底部div盡量都抽取出來,做代碼的復用,這樣就不用再多個頁面中來回改了,改一個頁面就可用,減少bug數量,提高效率。
在每個頁面的公共頭部分加入公共代碼basePath這樣就能在多個頁面中取這個值用于不同頁面的請求url了。
定義統一異常處理,針對不同的異常來統一處理,這個時候在service就可以自定義異常類來統一處理異常,這個時候在service操作異常后就直接拋出自定義的異常就行,在controller也不要對異常進行處理了。
盡量在數據庫中不要用int來存身份和角色相關的屬性,這樣沒有文檔誰都看不懂,使用varchar就行,就是多占點空間而已,但對于代碼的可讀性和可維護性提高不少,即使你數據庫中使用的時候int來存儲,切記在代碼中也要使用常量屬性來定義類型,并寫上注釋。
切記一切上傳功能(oss)都要抽取工具類,且抽取方式要合理,不要把一切代碼都寫在service中,這樣代碼可讀性不高。
在上傳oss功能中,當上傳的時候(先上傳,然后再把上傳后的url插入到數據庫中),當在插入數據庫的時候失敗切記一定要刪除之前上傳的圖片,不然后來的oss文件根本沒法維護。還有就是上面的那個問題,insert失敗后是直接拋出異常還是返回0,直接拋出異常下面的代碼就是永遠都不會走的代碼就沒有任何意義了。
service 可以使用void 不用自己再封裝baseModel 了,然后一些業務異常就拋出自定義的異常,如果是操作過程中沒有拋出任何異常,就在controller直接業務操作成功。
對應controller中的多個查詢因為不會涉及到事物一致性,所有就直接查詢實體存放到model中就行。
轉載于:https://my.oschina.net/qrmc/blog/1927292
總結
以上是生活随笔為你收集整理的规范-编码规范总结(微信分销系统)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用 Portainer UI 管理 D
- 下一篇: java信息管理系统总结_java实现科