- airbnb-base的eslint代码风格检查
- babel 代码转换
- mocha/sinon/power-assert 单元测试
- mongoose/mongodb
- koa/koa-body/koa-session/koa-router
- ajv 数据校验
- debug 输出日志
建议选用面向对象的语言,假设node的环境,建议选择:typescript
单一职责,完成一个事件,往外投递事件 模块间的通信——通过事件 高层订阅事件,模块启动前注册事件
订阅事件,投递事件,开始分发事件
用例不涉及事件的订阅、投递与分发
实体要有唯一ID来判断是否一样 有唯一ID为创建,没有为初始化构建实体
- share/base
- modules
- users
- domains // 实体和值对象
- entity
- errors // 或者把这个放在用例中
- valueObjects //
- repos // 数据仓库
- mappers // 建立数据仓库与实体、DTO(响应回去的对象)的关联,中心是实体
- services // 服务 ??
- dtos // 数据传输对象 或者放在用例
- cases // 用例
- errors // 各用例共享的error
- dtos // 各用例共享的dtos
- users // 用户相关用例
- app // 工程入口