【軟體研發】編碼規範和注意事項
阿新 • • 發佈:2019-10-12
資料庫定義規範
- 蛇形命名(S命名)【全小寫】
- 資料表命名:字首_模組名_實體名
注意事項
-
元件中不適合加入成員變數,自動注入的除外
- 原因:所有的元件(controller,Service,Mapper,JPA等)他們預設都是單例的都是有Spring管理的,注:上下文產生的JavaBean不是單例。
- 示例:
@Slf4j @Api(description = "使用者管理") @RequestMapping("/system/userManager") @Controller public class UserController extends BaseController<UserDO, UserService> { @Autowired private RoleService roleService; //不要這麼寫 private Result result;
- 分析:由於controller是單例模式,所以其成員變數是非執行緒安全的,可能會發生髒讀寫。
-
元件禁止同級別注入
- 原因:會導致在超類做泛型注入的時候引發迴圈引用(此結論適用於單例項Bean系統)
- 分析:基於Springboot管理的Bean是預設單例注入的(如上面的問題一般)
-
業務邏輯儘量寫在Service中
- 原因:構造輕耦合系統,由service管理業務邏輯整合Dao層操作
- 分析:控制器只負責頁面流轉和資料傳遞
-
組合或派生功能沒有對應後端某個具體的實體的解決辦法
- 原因:有些功能可能涉及到了多個數據表的資料,或者是由其他資料表的資料派生而來,此種情況下適合自建Controller、Service、Dao處理
- 分析:一切為了低耦合,鬆散的編碼抗壓能力強debug速度