程式設計師你為什麼這麼累【續】:編碼習慣之Controller規範

王聰聰發表於2018-01-16

第一篇文章中,我貼了2段程式碼,第一個是原生態的,第2段是我指定了介面定義規範,使用AOP技術之後最終交付的程式碼,從15行到一行,自己感受一下。今天來說說大家關注的AOP如何實現。

先說說Controller規範,主要的內容是就是介面定義裡面的內容,你只要遵循裡面的規範,controller就問題不大,除了這些,還有另外的幾點:

所有函式返回統一的ResultBean/PageResultBean格式 原因見我的介面定義這個貼。沒有統一格式,AOP無法玩。

ResultBean/PageResultBean是controller專用的,不允許往後傳!

Controller做引數格式的轉換,不允許把json,map這類物件傳到services去,也不允許services返回json、map。

一般情況下!寫過程式碼都知道,map,json這種格式靈活,但是可讀性差,如果放業務資料,每次閱讀起來都比較困難。定義一個bean看著工作量多了,但程式碼清晰多了。

引數中一般情況不允許出現Request,Response這些物件 主要是可讀性問題。一般情況下。

不需要列印日誌 日誌在AOP裡面會列印,而且我的建議是大部分日誌在Services這層列印。

規範裡面大部分是 不要做的項多,要做的比較少,落地比較容易。

ResultBean定義帶泛型,使用了lombok。

程式設計師你為什麼這麼累【續】:編碼習慣之Controller規範

AOP程式碼,主要就是列印日誌和捕獲異常,異常要區分已知異常和未知異常,其中未知的異常是我們重點關注的,可以做一些郵件通知啥的,已知異常可以再細分一下,可以不同的異常返回不同的返回碼:

分頁的PageResultBean大同小異,大家自己依葫蘆畫瓢自己完成就好了。

貼一個簡單的controller(左邊的箭頭表示AOP攔截了)。請對比程式設計師你為什麼這麼累?裡面原來的程式碼檢視,沒有對比就沒有傷害。

程式設計師你為什麼這麼累【續】:編碼習慣之Controller規範

本文作者:曉風輕 原文連結:https://zhuanlan.zhihu.com/p/28717374 版權歸作者所有,轉載請註明出處

相關文章