博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Atitit 效率提升法细则 v3 t028.docx Atitit 提升效率细则 目录 1. 目标 2 1.1. 配置化增加扩展性 尽可能消除编译 方便增加 调整业务逻辑 2 1.2. 统一接口
阅读量:2075 次
发布时间:2019-04-29

本文共 2015 字,大约阅读时间需要 6 分钟。

Atitit 效率提升法细则 v3 t028.docx

Atitit 提升效率细则

 

目录

 

 

 

  1. 目标
    1. 配置化增加扩展性 尽可能消除编译 方便增加 调整业务逻辑

查询与简单数据操作直接QL解决

复杂逻辑可以通过脚本 sql 或类似工作流 逻辑引擎的东东来消除

    1. 统一接口(参数传递完整化,同时附加传递xml selectid)

避免散落在多处,实现业务层接口统一化

    1. QL动态通用化,消除mybatis内大量的查询与简单操作类似sql

实现数据层接口统一化

综合流程

综合数据类业务查询操作实践

JPQL》>jpql AST》 转换为sql ast 》转换为sql ,执行,返回数据

 

    1. 尽可能消除部署

Webdav远程编辑器模式 + sp

    1. Scheme free

 

  1. 提升语言级别4gl 4.5gl 5G

 

 

语言级别

具体实现

范例(分组查询操作日志)

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汇编

 

 

    1. Sql,存储地方可选择放在mybatis xml 或者数据库sp(可以免部署),都可以实现免编译目标,配置化
    2. 业务逻辑尽可能使用4gl(比如sql 工作流 规则引擎等类似东东)  
    3. 业务逻辑适当的使用脚本3.5g等实现

 

  1. 动态化 统一化 适当抽象化
    1. 动态语言 适当的使用脚本(js php xml sql等)
    2. 动态接口 ,统一接口
    3. ,动态对象 
    4. servless模式

 

  1. 利用现有机制配置化
    1. 利用Mybatis实现业务逻辑配置化(脚本化工作流模式)
    2. 多利用数据库  view sp 触发器等机制实现配置化
    3. 多利用数据库user与权限配置机制实现权限配置
    4. 多使用数据库的各种约束校验机制 unique索引,外键,触发器 约束等机制
    5. 多使用数据库定时器
    6. 使用脚本实现配置化 

 sql 或类似工作流 逻辑引擎的东东来消除

    1. 多利用数据库报表功能
  1. 集成化
    1. Wolrd excel等
    2. 少量数据情况下直接集成化excel,免得开发ui与crud概念,只需要读取就可以了
    3. 直接json配置化通用配置化等
    4. 多使用proper配置化文件 与ui集成
  2. 前后端数据查询操作语言QL
    1. 自定义QL  4.5g

1.2.效果概览

 

查询表格(操作日志表),条件( 操作人=小新),and(时间=2018),排序(时间),翻页(页数=7,每页=50)";

 

经过全面的解析,转换为sql

SELECT * FROM 操作日志表 WHERE 操作人 = '小新' AND 时间 = '2018' ORDER BY 时间 LIMIT 50 OFFSET 300

    1. Jpql不错 替代rest的一个选择
    2. 受限sql
    3. Apijson等
  1. 设计简化
    1. 简化流程与层次
    2. 客户端直连数据库,瘦服务端

特别是管理类系统(包括web系统后台管理系统),可以不用中间层中转。。直接客户端收发sql, 业务逻辑也可放在客户端处理。瘦服务端

 

数据库 nosql mongodb 直接json 对用redis

    1.  

范式设计主要是为了减少数据冗余,对存储空间简约有帮助,时过境迁,今天存储已经很便宜。。适当的反范式设计同时也可提升性能与开发效率

 

 

  1. 优先选择最简单方案(高中低三挡方案定制)

根据团队规模,公司规模,项目需求来定制方案完善

语言选择java net js python php xml sql等

比如微服务的nginx模式,dobbo模式,springcloud模式多种实现方案

数据分片的 msql oracle实现模式,读写集群,分区机制模式,分库,数据库中间件模式

Share jdbc mycat等

大公司的解决方案慎用,绝大部分不适合中小公司,过重

 

  1. 使用java js来扩展sql 与mybatis
    1. 使用mybatis提供的ongl调用java
    2. 使用自定义event模式来进行

可支持sp里面调用

 

 

  1. 问题
    1. 复杂业务与多语句的问题

处于安全考虑,复杂业务多语句放入后端,第一条语句作为触发机制,然后可以使用触发器级联下级sp业务。。这样就解决了jpql处理复杂业务的问题

 

或者使用mybatis调用 selectid 解决得了。。

也可以窜入sp id,直接调用,免部署

转载地址:http://rramf.baihongyu.com/

你可能感兴趣的文章
Java集合详解5:深入理解LinkedHashMap和LRU缓存
查看>>
Java集合详解6:这次,从头到尾带你解读Java中的红黑树
查看>>
Java并发指南2:深入理解Java内存模型JMM
查看>>
Java并发指南5:JMM中的final关键字解析
查看>>
Java并发指南6:Java内存模型JMM总结
查看>>
Java并发指南7:JUC的核心类AQS详解
查看>>
Java网络编程和NIO详解6:Linux epoll实现原理详解
查看>>
Java网络编程和NIO详解7:浅谈 Linux 中NIO Selector 的实现原理
查看>>
Java网络编程与NIO详解8:浅析mmap和Direct Buffer
查看>>
Java网络编程与NIO详解10:深度解读Tomcat中的NIO模型
查看>>
Java网络编程与NIO详解11:Tomcat中的Connector源码分析(NIO)
查看>>
深入理解JVM虚拟机1:JVM内存的结构与消失的永久代
查看>>
深入理解JVM虚拟机3:垃圾回收器详解
查看>>
深入理解JVM虚拟机4:Java class介绍与解析实践
查看>>
深入理解JVM虚拟机5:虚拟机字节码执行引擎
查看>>
深入理解JVM虚拟机6:深入理解JVM类加载机制
查看>>
深入了解JVM虚拟机8:Java的编译期优化与运行期优化
查看>>
深入理解JVM虚拟机9:JVM监控工具与诊断实践
查看>>
深入理解JVM虚拟机10:JVM常用参数以及调优实践
查看>>
深入理解JVM虚拟机12:JVM性能管理神器VisualVM介绍与实战
查看>>