代碼分層,讓不同層次的代碼做不同的動作。例如,常見的MVC分層等。從代碼的目錄結構就大概能瞭解到代碼是如何分層,每層大概功能是什麼。
最近的項目,代碼分層結構如下:
|——API Server
|———— server.js - 程序入口,加載必要系統初始化數據、middleware、router等
|———— package.json
|———— const/ - 常量,根據業務邏輯,將變量按不同的file存放
|———— config/ - 配置文件,根據環境變量來獲取、合併配置文件
|———— deploy/ - 自動化發佈腳本,分爲發佈到demo和live
|———— routers/ - api路由,根據文件名自動加載
|———— controllers/ - 控制器,連接路由和業務處理邏輯
|———— bll/ - 業務邏輯處理層,複雜的業務邏輯主要在該層實現(business logic layer)
|———— dal/ - 數據訪問層,和DB打交道的操作都在這一層完成(data access layer)
|———— models/ - 這層只是MVC中的很小部分,負責數據表的映射
|———— middlewares/ - 中間件
|———— lib/ - 工具、插件、第三方服務都放這裏,如果繼續臃腫下去,必須再次分層
|———— jobs/ - 定時任務
|———— i18n/ - 國際化,error message、提示語等
|———— test/
代碼層次清晰了,可以大大的增加可讀性,節約讀代碼的時間。例如,新同事加入時,根據約定好的代碼層次,就能很輕鬆的找到相關的function。