代码分层,让不同层次的代码做不同的动作。例如,常见的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。