1. 程式人生 > >【軟體研發】編碼規範和注意事項

【軟體研發】編碼規範和注意事項

資料庫定義規範

  1. 蛇形命名(S命名)【全小寫】
  2. 資料表命名:字首_模組名_實體名

注意事項

  1. 元件中不適合加入成員變數,自動注入的除外

    • 原因:所有的元件(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是單例模式,所以其成員變數是非執行緒安全的,可能會發生髒讀寫。
  2. 元件禁止同級別注入

    • 原因:會導致在超類做泛型注入的時候引發迴圈引用(此結論適用於單例項Bean系統)
    • 分析:基於Springboot管理的Bean是預設單例注入的(如上面的問題一般)
  3. 業務邏輯儘量寫在Service中

    • 原因:構造輕耦合系統,由service管理業務邏輯整合Dao層操作
    • 分析:控制器只負責頁面流轉和資料傳遞
  4. 組合或派生功能沒有對應後端某個具體的實體的解決辦法

    • 原因:有些功能可能涉及到了多個數據表的資料,或者是由其他資料表的資料派生而來,此種情況下適合自建Controller、Service、Dao處理
    • 分析:一切為了低耦合,鬆散的編碼抗壓能力強debug速度