Skip to content

Commit

Permalink
项目布局命名调整
Browse files Browse the repository at this point in the history
  • Loading branch information
leeyisoft committed Feb 17, 2020
1 parent d22ee9b commit 6e804d7
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 29 deletions.
18 changes: 8 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ tree -I '*svn|*node_module*|*git|py3|*.pyc|__pycache__|statics'
│   │   ├── const.py
│   │   ├── models
│   │   │   └── *.py
│   │   ├── filters
│   │   ├── assemblers
│   │   │   └── *.py
│   │   ├── services
│   │   │   └── *.py
Expand All @@ -35,7 +35,7 @@ tree -I '*svn|*node_module*|*git|py3|*.pyc|__pycache__|statics'
│   │   ├── modules.py
│   │   ├── services
│   │   │   └── *.py
│   │   ├── filters
│   │   ├── assemblers
│   │   │   └── *.py
│   │   ├── templates
│   │   │   └── */*.html
Expand Down Expand Up @@ -74,17 +74,15 @@ tree -I '*svn|*node_module*|*git|py3|*.pyc|__pycache__|statics'
* applications 应用rest api相关代码
* applications/common/models 公共应用数据模型层
* applications/common/services 公共应用服务层
* applications/common/filters/requests 公共应用请求过滤器层
* applications/common/filters/responses 公共应用响应过滤器层
* applications/common/assemblers 公共组装器层
* applications/common/const.py 公共应用常量
* applications/common/utils.py 公共应用助手函数
* applications/app1 独立应用
* applications/app1/handlers app1用控制器层
* applications/app1/models app1用数据模型层
* applications/app1/services app1应用服务层
* applications/app1/templates app1应用视图层
* applications/app1/filters/requests app1应用请求过滤器层
* applications/app1/filters/responses app1应用响应过滤器层
* applications/app1/handlers app1用控制器层,有路由器调用,负责接收并且校验参数
* applications/app1/services app1应用服务层,在控制器里面调用,负责一个业务逻辑
* applications/app1/models app1用数据模型层,在服务层调用,负责对一个数据库表CURD操作
* applications/app1/assemblers app1组装器层,在控制器里面调用,负责把服务层数据响应给API
* applications/app1/templates app1应用视图层,渲染service数据
* datas 数据
* datas/locales 多语言数据
* datas/json JSON数据文件
Expand Down
18 changes: 8 additions & 10 deletions README_zh.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ tree -I '*svn|*node_module*|*git|py3|*.pyc|__pycache__|statics'
│   │   ├── const.py
│   │   ├── models
│   │   │   └── *.py
│   │   ├── filters
│   │   ├── assemblers
│   │   │   └── *.py
│   │   ├── services
│   │   │   └── *.py
Expand All @@ -35,7 +35,7 @@ tree -I '*svn|*node_module*|*git|py3|*.pyc|__pycache__|statics'
│   │   ├── modules.py
│   │   ├── services
│   │   │   └── *.py
│   │   ├── filters
│   │   ├── assemblers
│   │   │   └── *.py
│   │   ├── templates
│   │   │   └── */*.html
Expand Down Expand Up @@ -74,17 +74,15 @@ tree -I '*svn|*node_module*|*git|py3|*.pyc|__pycache__|statics'
* applications 应用rest api相关代码
* applications/common/models 公共应用数据模型层
* applications/common/services 公共应用服务层
* applications/common/filters/requests 公共应用请求过滤器层
* applications/common/filters/responses 公共应用响应过滤器层
* applications/common/assemblers 公共组装器层
* applications/common/const.py 公共应用常量
* applications/common/utils.py 公共应用助手函数
* applications/app1 独立应用
* applications/app1/handlers app1用控制器层
* applications/app1/models app1用数据模型层
* applications/app1/services app1应用服务层
* applications/app1/templates app1应用视图层
* applications/app1/filters/requests app1应用请求过滤器层
* applications/app1/filters/responses app1应用响应过滤器层
* applications/app1/handlers app1用控制器层,有路由器调用,负责接收并且校验参数
* applications/app1/services app1应用服务层,在控制器里面调用,负责一个业务逻辑
* applications/app1/models app1用数据模型层,在服务层调用,负责对一个数据库表CURD操作
* applications/app1/assemblers app1组装器层,在控制器里面调用,负责把服务层数据响应给API
* applications/app1/templates app1应用视图层,渲染service数据
* datas 数据
* datas/locales 多语言数据
* datas/json JSON数据文件
Expand Down
18 changes: 9 additions & 9 deletions promise.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,28 +3,28 @@
* 异常信息务必记录到`SysLogger.error(e, exc_info=True)`记录到日志里面,便于排查错误
* 只定义了一个API 通过不同的请求方式,来执行不同的操作(<span style="color:red;">查询用get 添加用post 更新用put 删除用delete</span>) [参考](https://blog.csdn.net/dxftctcdtc/article/details/9197639)

### models层
* 所有模型通过“codegen.py”脚本自动生成,放到 applications/common/models/[model_name].py文件里,
* models层 单纯的和数据表做映射关系,可以在这里添加虚拟熟悉,格式化数据等功能;

### handlers层
* 每个App应该有自己的CommonHandler,如无必要,请直接使用 ` from trest.handler import BaseHandler `
* handlers层 接受请求参数、校验参数,请求services,响应结果,后续处理调用;
* 在handlers层不能直接调用models层
* 在handlers层不能直接调用filters层
* 在handlers层不能直接调用assemblers层

### services层
* services层 供handlers层或者其他脚本调用需要事务性的的功能,由它来引入models,操作数据库,比如用户注册功能;数据列表功能,都可以定义到services里面;
* services层 方法return 数据类型,尽量以少些代码为原则,从数据库里面出来的是 对象,就直接返回,不要特意转化为字典类型了;如果是方法从多张表里面聚合数据,返回数据类型根据事情情况确定;
* services层可以调用其他services层层;

### filters层
* filters层,只对API协议需要的数据进行格式化组装(<span style="color: red;">不在该层调用model或者其他service</span>),如果API协议没有特殊需要,可以不定义相应的filter
* filters层不可以调用其他filters层
### models层
* 所有模型通过“codegen.py”脚本自动生成,放到 applications/common/models/[model_name].py文件里,
* models层 单纯的和数据表做映射关系,可以在这里添加虚拟熟悉,格式化数据等功能;

### assemblers层
* assemblers层,只对API协议需要的数据进行格式化组装(<span style="color: red;">不在该层调用model或者其他service</span>),如果API协议没有特殊需要,可以不定义相应的assembler
* assemblers层不可以调用其他assemblers层


## 数据库相关约定
* 尽可能不连表查询,在filters层组装API协议需要的数据格式
* 尽可能不连表查询,在assemblers层组装API协议需要的数据格式
* 数据库密码经过AES加密,没有明文存储,进过AES加密的密码,格式 aes::: + ciphertext
* 数据库使用utf8mb4编码
* 数据库和时间相关的字段统一使用Unix时间戳格式 bigint(13),单位为毫秒
Expand Down

0 comments on commit 6e804d7

Please sign in to comment.