# 《高性能SQL引擎》需求分析-第03节:高性能SQL引擎功能需求与流程梳理

作者:冰河
星球:http://m6z.cn/6aeFbs (opens new window)
博客:https://binghe.gitcode.host (opens new window)
文章汇总:https://binghe.gitcode.host/md/all/all.html (opens new window)
源码获取地址:https://t.zsxq.com/0dhvFs5oR (opens new window)

沉淀,成长,突破,帮助他人,成就自我。

  • 本章难度:★☆☆☆☆
  • 本章重点:正所谓磨刀不误砍柴功,在真正研发高性能SQL引擎之前,我们需要梳理好高性能SQL引擎的需求与流程,本章,我们就一起全面梳理高性能SQL引擎的需求与流程。

大家好,我是冰河~~

无论是开发中间件项目,还是业务系统,不管是架构师,还是研发人员接到任务后,第一时间不是进行系统设计,更不是一开始就干代码,而是要先好好梳理下系统的需求与流程,任何技术最终都是要服务于业务。正所谓磨刀不误砍柴工,接下来,就梳理下高性能SQL引擎的需求和流程。

# 一、前言

我们一起设计和实现的高性能SQL引擎项目去除了各种复杂的场景校验逻辑,在代码结构上非常精简,核心功能就是通过JSON模板或者直接创建对象组合动态生成SQL,不再依赖各种实体模型来接收和传递数据。代码精简,意味着性能会非常高。并且高性能SQL引擎项目能够有效的减少业务层的改动来适应各种灵活复杂的查询业务场景。

既然高性能SQL引擎能够有效的减少业务层的改动来适应各种灵活复杂的查询业务场景,我们开始也不能一头扎进代码的开发中,作为技术人员,在正式架构设计和编码实现一款高性能的SQL引擎之前,我们需要明确高性能SQL引擎的核心需求与实现流程。

# 二、本节诉求

研发人员接收到任务后,切记不要一上来就干代码,不然中途你多多少少都会遇到这种情况:开发到中途,突然卡壳,不知道接下来的需求和业务是什么了,也不知道如何继续向下开发了。或者开发到中途时,发现自己对需求和业务的理解有偏差,再回过头来梳理需求和业务流程,得不偿失。如果自己做的功能与需求不符,可能还要将之前开发的功能推倒重来,最终做了很多无用功,浪费时间和精力。

在正式设计和研发高性能Polaris网关之前,从技术人员的角度梳理下高性能网关的需求和业务流程。

# 三、需求描述

高性能SQL引擎项目能够在各种灵活复杂的查询业务场景,通过JSON模板或者直接创建对象组合动态生成SQL,极大的简化业务逻辑代码的开发。在分析高性能SQL引擎的需求时,我们可以从功能性需求和非功能性需求两个方面考虑。

# 3.1 功能性需求

高性能SQL引擎的功能性需求如下所示。


可以看到,在设计和实现高性能SQL引擎时,主要的功能是设计和实现SQL引擎模板、表模型、分组与聚合模型、关联模型、条件模型、分页模型、排序模型,设计和实现SQL构建器和SQL引擎,并对高性能SQL引擎的整体功能进行测试,包括:单元测试、JMH基准和JMeter压力测试。

# 3.2 非功能性需求

高性能SQL引擎的非功能性需求如下所示。

# 查看完整文章

加入冰河技术 (opens new window)知识星球,解锁完整技术文章、小册、视频与完整代码