对框架及代码的思考
2020-04-14 16:27:29 0 举报
AI智能生成
对框架与代码的思考
作者其他创作
大纲/内容
工程与设计原则
问题提前暴露
案例——在框架中对查询返回进行检查,超过200条直接抛出异常强迫程序员修改代码添加限制
采用推荐方式进行编码
案例——使用构造注入(强依赖)和setter注入(弱依赖),禁止使用字段注入和ctx.getBean
框架的设计原则
框架对代码不要有任何入侵
不能有框架代码强耦合到业务代码中
业务代码禁止调用框架接口
业务实现、框架功能分离
编码的基本原则
职责单一原则
每个方法只做一件事
做多件事的方法由多个单一方法完成
案例
一对多的数据查询
编写函数查询一的数据的函数A
编写函数查询多的数据的函数B
编写函数C调用A和B,并进行数据整合
反例:编写一对多查询查询出一对多的实例对象
依赖倒置原则
面向接口编程而不是类编程
参考Spring的工厂接口
系统改造原则
保证代码的纯净
代码中应包含纯粹的业务逻辑
反例:业务代码糅合了缓存,数据校验等操作
自动装配部分参数
约定大于配置
数据库的设置主键必须设置为唯一的long型id
技术改造实例
使用切面进行缓存管理
使用切面进行参数装配
前后端交互原则
采用Restful风格
GET
GET entity 获取实体
GET entity/list 获取实体列表
Content-Type 在设计之初必须规定好是x-www-form-urlencoded还是json
POST
POST entity 添加一个实体
POST entity/list添加多个实体
Content-Type 在设计之初必须规定好是x-www-form-urlencoded还是json
PUT
PUT entity修改一个实体
Content-Type 在设计之初必须规定好是x-www-form-urlencoded还是json
DELETE
DELETE entity删除一个实体
DELETE entity/list 删除多个实体
Content-Type 在设计之初必须规定好是x-www-form-urlencoded还是json
数据库设计原则
库表管理
主键必须是统一类型,字段名必须为id,外键必须要由有意义的id外键进行关联
小型系统中,必须设置统一字典而非一个字典一张表
约束添加
非空约束
唯一约束
平台无关
禁止使用平台相关的功能
禁止使用数据库函数和存储过程
禁止使用自增主键和序列
禁止违反最佳实践的数据库规范
禁止使用触发器和外键
索引设计
数据库常用属性与格式规定
实际使用案例
Spring
方法注入
禁止使用字段注入
强依赖使用构造注入
弱依赖使用setter注入
获取bean
禁止使用getBean来获取bean
MyBatis
禁止在方法上使用@Select等标签替代XML
全局统一处理
异常全局统一处理
SpringBoot的处理器异常统一处理
字典工具类与全局字典处理
线下与线上切换
配置文件的处理
0 条评论
下一页
为你推荐
查看更多