本文共 2015 字,大约阅读时间需要 6 分钟。
Atitit 效率提升法细则 v3 t028.docx
Atitit 提升效率细则
目录
查询与简单数据操作直接QL解决
复杂逻辑可以通过脚本 sql 或类似工作流 逻辑引擎的东东来消除
避免散落在多处,实现业务层接口统一化
实现数据层接口统一化
综合流程
综合数据类业务查询操作实践
JPQL》>jpql AST》 转换为sql ast 》转换为sql ,执行,返回数据
Webdav远程编辑器模式 + sp
语言级别 | 具体实现 | 范例(分组查询操作日志) |
5g
| 完全自然语言实现 | 查询操作日志表,按照人员id分组,然后统计每个人的操作次数 |
4.9g
| 基本自然语言,可用注解标识出精确化归一化,方便解析识别构造AST | @q查询@t操作日志表,按照@grp(人员id)分组,然后统计每个人的@sum操作次数 |
4.5g
| 受限自然语言(ql语法) 比较严格的NL自然语言语法 | 查询(操作日志表).按照分组(人员id).获取(人员id,记录条数) |
4gl
| (mybatis xml ,sql 工作流 规则引擎等 ) | Select 人员id,count(id) From 操作日志表groupby 人员id |
3.5 | 各种script (js python Php等) |
|
3gl | Java net c# golang等编译型语言 |
|
2gl | C c++类 |
|
1gl | Asm汇编 |
|
sql 或类似工作流 逻辑引擎的东东来消除
1.2.效果概览
查询表格(操作日志表),条件( 操作人=小新),and(时间=2018),排序(时间),翻页(页数=7,每页=50)";
经过全面的解析,转换为sql
SELECT * FROM 操作日志表 WHERE 操作人 = '小新' AND 时间 = '2018' ORDER BY 时间 LIMIT 50 OFFSET 300
特别是管理类系统(包括web系统后台管理系统),可以不用中间层中转。。直接客户端收发sql, 业务逻辑也可放在客户端处理。瘦服务端
数据库 nosql mongodb 直接json 对用redis
范式设计主要是为了减少数据冗余,对存储空间简约有帮助,时过境迁,今天存储已经很便宜。。适当的反范式设计同时也可提升性能与开发效率
根据团队规模,公司规模,项目需求来定制方案完善
语言选择java net js python php xml sql等
比如微服务的nginx模式,dobbo模式,springcloud模式多种实现方案
数据分片的 msql oracle实现模式,读写集群,分区机制模式,分库,数据库中间件模式
Share jdbc mycat等
大公司的解决方案慎用,绝大部分不适合中小公司,过重
可支持sp里面调用
处于安全考虑,复杂业务多语句放入后端,第一条语句作为触发机制,然后可以使用触发器级联下级sp业务。。这样就解决了jpql处理复杂业务的问题
或者使用mybatis调用 selectid 解决得了。。
也可以窜入sp id,直接调用,免部署
转载地址:http://rramf.baihongyu.com/