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

  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
  1. 语言开发效率与可读性级别表

语言级别

具体实现

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

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. 跨库调用,可以把次模式看成看成一个调用socket非文本模式接口即可( 通过数据库驱动)
    7. 使用脚本实现配置化 

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, 业务逻辑也可放在客户端处理。瘦服务端

  1. 数据传输与存储层面的优化

    1. Scheme free模式 多使用nosql  json 半结构化数据
    2. Mysql5.7以上可多多 使用json数据

数据库 nosql mongodb 直接json 对用redis

  1.  子母表设计可使用json集合模式等
  2. 适当的反范式设计

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

  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,直接调用,免部署

Atitit 效率提升法细则 v3 t028.docx Atitit 提升效率细则 目录 1. 目标 2 1.1. 配置化增加扩展性 尽可能消除编译 方便增加 调整业务逻辑 2 1.2. 统一接口相关推荐

  1. atitit 音频 项目 系列功能表 音乐 v3 t67.docx Atitit 音频 项目 系列功能表 1.音频 音乐 语言领域的功能表 听歌识曲功能 酷我功能。 铃声 功能。。 音频切割(按

    atitit 音频 项目 系列功能表 音乐 v3 t67.docx Atitit 音频 项目 系列功能表 音频 音乐 语言领域的功能表 听歌识曲功能 酷我功能. 铃声 功能.. 音频切割(按照副歌部分 ...

  2. atitit 音频 项目 系列功能表 音乐 v3 t67.docx Atitit 音频 项目 系列功能表 音频 音乐 语言领域的功能表 听歌识曲功能 酷我功能。 铃声 功能。。 音频切割(按照副歌部

    atitit 音频 项目 系列功能表 音乐 v3 t67.docx Atitit 音频 项目 系列功能表 音频 音乐 语言领域的功能表 听歌识曲功能 酷我功能. 铃声 功能.. 音频切割(按照副歌部分 ...

  3. 网上购物系统(Task100)——业务逻辑层BLL(面向接口的编程模式)

    源代码:13033480群共享 [操作步骤] 一.新建类库IDAL,设置属性,添加引用→项目→Model 二.添加类ICategory.cs和IItem.cs 1.ICategory.cs using ...

  4. 查询接口返参配置化组件设计(适用定制信息查询)

    1.组件引入的业务背景 系统存储的信息需要被很多系统的不同业务场景调用,外围的业务场景需要的返参信息不完全一样,针对业务模块等开发了一些接口,这些接口返回的参数较多,外围根据需要获取需要的返参字段:同 ...

  5. Atitit s2018 s4 doc list dvchomepc dvccompc.docx .docx \s2018 s4 doc compc dtS44 \s2018 s4 doc dvc

    Atitit s2018 s4 doc list dvchomepc dvccompc.docx .docx \s2018 s4 doc compc dtS44 \s2018 s4 doc dvcCo ...

  6. Atitit.软件兼容性原理与实践 v3 q326.docx

    Atitit.软件兼容性原理与实践 v3 q326.docx 1. 架构兼容性1 2. Api兼容性1 2.1. 新api  vs  修改旧的api1 3. Web方面的兼容性(js,html)1 3 ...

  7. Atiitt 可视化 报表 图表之道 attilax著 Atiitt 可视化的艺术 attilax著 v2 s51.docx Atitit.可视化与报表原理与概论 1. 、什么是可视化(这一

    Atiitt  可视化 报表 图表之道 attilax著 Atiitt  可视化的艺术 attilax著 v2 s51.docx Atitit.可视化与报表原理与概论 1. .什么是可视化(这一节有点 ...

  8. 《RESTful Web Services》第一章 使用统一接口

    序言 HTTP是一种应用层协议.SOAP和一些Ajax Web框架都将HTTP作为一种传输信息的协议,难以充分利用HTTP层的基础设施. 1.2 如何保持交互的可见性 可见性是HTTP的一个核心特征. ...

  9. atitit.短信 验证码  破解  v3 p34  识别 绕过 系统方案规划----业务相关方案 手机验证码  .doc...

    atitit.短信 验证码  破解  v3 p34  识别 绕过 系统方案规划----业务相关方案 手机验证码  .doc 1. 手机短信验证码 vs 图片验证码 安全性(破解成本)确实要高一些1 1 ...

  10. Vue + webpack 项目配置化、接口请求统一管理

    准备工作 需求由来: 当项目越来越大的时候提高项目运行编译速度.压缩代码体积.项目维护.bug修复......等等成为不得不考虑而且不得不做的问题.  又或者后面其他同事接手你的模块,或者改你的bug ...

最新文章

  1. Refactor!™ for ASP.NET--ASP.NET代码重构插件
  2. linux之cp/scp命令+scp命令详解
  3. Codeup墓地-问题 A: 最长上升子序列
  4. XKC's basketball team(2019徐州站网络赛E线段树)
  5. 唯品会:在 Flink 容器化与平台化上的建设实践
  6. python安装-Python uWSGI 安装配置
  7. Android项目报错:Could not resolve com.android.support.constraint:constraint-layout:2.0.2.
  8. 弹窗php整人,bat整人代码,超级弹窗代码
  9. Qt知识回顾(九)——2D绘画
  10. Java系列之—— getBytes() 方法
  11. day2 craps赌博游戏
  12. Yii2 第三方类库安装和使用:Imagine
  13. 天威诚信受邀参加第二届GIEC互联网文娱数字创新峰会
  14. 23届银行秋招:农业银行面试分析!
  15. PIL库中Image类thumbnail方法和resize方法区别
  16. GO语言和区块链开发准备阶段-默克尔树
  17. 学计算机音视频教程,教学视频教程_在线免费教学视频大全
  18. 2017年全球大数据产业报告之海外篇(第六集)
  19. 你随身携带的录音工作室:录音机HD“录音工作室”9.0.4评测
  20. 坑之 Jpa 执行原生SQL 返回映射为对象

热门文章

  1. android调用系统相机进行拍照,android调用系统相机拍照
  2. python可不可以同时执行1000个线程_python怎么能同时执行代码(多线程)?
  3. 中国人使用计算机互联网,发明计算机的核心专家,被美国隐瞒35年,只因是一名中国人...
  4. Ring Buffer 实现原理
  5. EDMA - DMA QDMA
  6. Bootstrap (remote)事件监听多次
  7. JavaScript 优先队列
  8. Apache 代理nodejs[未测试]
  9. 虚拟机无法安装VMware Tools
  10. c++中的243、251、250错误原因