Atitit 效率提升法细则 v3 t028.docx
Atitit 提升效率细则
目录
1. 目标 2
1.1. 配置化增加扩展性 尽可能消除编译 方便增加 调整业务逻辑 2
1.2. 统一接口(参数传递完整化,同时附加传递xml selectid) 2
1.3. QL动态通用化,消除mybatis内大量的查询与简单操作类似sql 2
1.4. 尽可能消除部署 2
1.5. Scheme free 3
2. 提升语言级别4gl 4.5gl 5G 3
2.1. 语言开发效率与可读性级别表 3
2.2. Sql,存储地方可选择放在mybatis xml 或者数据库sp(可以免部署),都可以实现免编译目标,配置化 3
2.3. 业务逻辑尽可能使用4gl(比如sql 工作流 规则引擎等类似东东) 3
2.4. 业务逻辑适当的使用脚本3.5g等实现 3
3. 动态化 统一化 适当抽象化 4
3.1. 动态语言 适当的使用脚本(js php xml sql等) 4
3.2. 动态接口 ,统一接口 4
3.3. ,动态对象 4
3.4. servless模式 4
4. 利用现有机制配置化 5
4.1. 利用Mybatis实现业务逻辑配置化(脚本化工作流模式) 5
4.2. 多利用数据库 view sp 触发器等机制实现配置化 5
4.3. 多利用数据库user与权限配置机制实现权限配置 5
4.4. 多使用数据库的各种约束校验机制 unique索引,外键,触发器 约束等机制 5
4.5. 多使用数据库定时器 5
4.6. 跨库调用,可以把次模式看成看成一个调用socket非文本模式接口即可( 通过数据库驱动) 5
4.7. 使用脚本实现配置化 5
4.8. 多利用数据库报表功能 5
5. 前后端数据查询操作语言QL 5
5.1. 自定义QL 4.5g 5
5.2. Jpql不错 替代rest的一个选择 6
5.3. 受限sql 6
5.4. Apijson等 6
6. 设计简化 6
6.1. 简化流程与层次 6
6.2. 客户端直连数据库,瘦服务端 6
7. 数据传输与存储层面的优化 6
7.1. Scheme free模式 多使用nosql json 半结构化数据 6
7.2. Mysql5.7以上可多多 使用json数据 6
7.3. 子母表设计可使用json集合模式等 6
7.4. 适当的反范式设计 6
8. 优先选择最简单方案(高中低三挡方案定制) 7
9. 使用java js来扩展sql 与mybatis 7
9.1. 使用mybatis提供的ongl调用java 7
9.2. 使用自定义event模式来进行 7
10. 问题 7
10.1. 复杂业务与多语句的问题 7
目标配置化增加扩展性 尽可能消除编译 方便增加 调整业务逻辑
查询与简单数据操作直接QL解决
复杂逻辑可以通过脚本 sql 或类似工作流 逻辑引擎的东东来消除
统一接口(参数传递完整化,同时附加传递xml selectid)
避免散落在多处,实现业务层接口统一化
QL动态通用化,消除mybatis内大量的查询与简单操作类似sql
实现数据层接口统一化
综合流程
综合数据类业务查询操作实践
JPQL》>jpql AST》 转换为sql ast 》转换为sql ,执行,返回数据
尽可能消除部署
Webdav远程编辑器模式 + sp
Scheme free提升语言级别4gl 4.5gl 5G语言开发效率与可读性级别表Sql,存储地方可选择放在mybatis xml 或者数据库sp(可以免部署),都可以实现免编译目标,配置化业务逻辑尽可能使用4gl(比如sql 工作流 规则引擎等类似东东)业务逻辑适当的使用脚本3.5g等实现动态化 统一化 适当抽象化动态语言 适当的使用脚本(js php xml sql等)动态接口 ,统一接口,动态对象servless模式利用现有机制配置化利用Mybatis实现业务逻辑配置化(脚本化工作流模式)多利用数据库 view sp 触发器等机制实现配置化多利用数据库user与权限配置机制实现权限配置多使用数据库的各种约束校验机制 unique索引,外键,触发器 约束等机制多使用数据库定时器跨库调用,可以把次模式看成看成一个调用socket非文本模式接口即可( 通过数据库驱动)使用脚本实现配置化
sql 或类似工作流 逻辑引擎的东东来消除
多利用数据库报表功能集成化Wolrd excel等少量数据情况下直接集成化excel,免得开发ui与crud概念,只需要读取就可以了直接json配置化通用配置化等多使用proper配置化文件 与ui集成前后端数据查询操作语言QL自定义QL 4.5g
1.2.效果概览
查询表格(操作日志表),条件( 操作人=小新),and(时间=),排序(时间),翻页(页数=7,每页=50)";
经过全面的解析,转换为sql
SELECT * FROM 操作日志表 WHERE 操作人 = '小新' AND 时间 = '' ORDER BY 时间 LIMIT 50 OFFSET 300
Jpql不错 替代rest的一个选择受限sqlApijson等设计简化简化流程与层次客户端直连数据库,瘦服务端
特别是管理类系统(包括web系统后台管理系统),可以不用中间层中转。。直接客户端收发sql, 业务逻辑也可放在客户端处理。瘦服务端
数据传输与存储层面的优化Scheme free模式 多使用nosql json 半结构化数据Mysql5.7以上可多多 使用json数据
数据库 nosql mongodb 直接json 对用redis
子母表设计可使用json集合模式等适当的反范式设计
范式设计主要是为了减少数据冗余,对存储空间简约有帮助,时过境迁,今天存储已经很便宜。。适当的反范式设计同时也可提升性能与开发效率
优先选择最简单方案(高中低三挡方案定制)
根据团队规模,公司规模,项目需求来定制方案完善
语言选择java net js python php xml sql等
比如微服务的nginx模式,dobbo模式,springcloud模式多种实现方案
数据分片的 msql oracle实现模式,读写集群,分区机制模式,分库,数据库中间件模式
Share jdbc mycat等
大公司的解决方案慎用,绝大部分不适合中小公司,过重
使用java js来扩展sql 与mybatis使用mybatis提供的ongl调用java使用自定义event模式来进行
可支持sp里面调用
问题复杂业务与多语句的问题
处于安全考虑,复杂业务多语句放入后端,第一条语句作为触发机制,然后可以使用触发器级联下级sp业务。。这样就解决了jpql处理复杂业务的问题
或者使用mybatis调用 selectid 解决得了。。
也可以窜入sp id,直接调用,免部署
Atitit 效率提升法细则 v3 t028.docx Atitit 提升效率细则 目录 1. 目标 2 1.1. 配置化增加扩展性 尽可能消除编译 方便增加 调整业务逻辑 2 1.2. 统一接口
如果觉得《Atitit 效率提升法细则 v3 t028.docx Atitit 提升效率细则 目录 1. 目标》对你有帮助,请点赞、收藏,并留下你的观点哦!