设计思想
最后更新:2023-12-04 00:47:30
|
状态:未完成
文档中有错误或没说明白的请到【群】里说一下,多谢指正
文档中有错误或没说明白的请到【群】里说一下,多谢指正
-
简单
首先要保证用户调用的绝对简单,绝对的意思就是不要有任何一个多余的过程或对象或参数,工具内部能解决的事不要留给用户。
比如查一个表,用户能提供最基础的string的类型 就不要先new一个陌生的Table对象再调用别的方法,
再如分页,用户提供一个boolean告知一下是否需要即可,不要让用户去计算怎么分。
再如一种数据结构能解决的事不要搞出多种结构,同样的数据分页返回一种结构,不分页返回另一种结构
无论用的什么简单还是复杂模式,务必隐藏在工具内部,用户只需要一个简单的方法调用。不要让用户感觉到模式的存在,更不能要求用户熟悉种模式才能工作
工具内部要以数倍的代码 来保证用户调用的简单
-
面向动态 面向运行时
不要假设使用户已经明确了数据源、表、列、属性等。参考低代码、自定义表单、查询条件等场景
不能要求先有这些固定的配置文件和实体类才能工作
-
保证与Spring生态的深度融合
不要重复spring已有的轮子,除非他不符合前2条
主要特征(与ORM的区别)
-
摒弃了各种繁琐呆板的实体类以及相关的配置文件
让数据库操作更简单,不要一动就是一整套的service/dao/mapping/VOPODTO有用没用的各种O,生成个简单的SQL也各种判断遍历。
-
强化了结果集的对象概念
面向对象的对象不是只有get/set/注解这么弱
需要把数据及对数据的操作封装在一起,作为一个相互依存的整体,并实现高度的抽象
要关注元数据,不要关注姓名、年龄等具体属性
强化针对结果集的数据二次处理能力
如结果集的聚合、过滤、行列转换、格式化及各种数学计算尽量作到一键...一键...
而不要像ORM提供的entity,map,list除了提供个get/set/foreach,稍微有点用的又要麻烦程序员各种判断各种遍历
如何实现
数据操作的两个阶段,1.针对数据库中数据 2.针对数据库查询的结果集(内存中的数据)-
提供一个通用的AnylineService实现对数据库的一切操作
-
提供一对DataSet/DataRow实现对内存数据的一切数学计算
DataSet/DataRow不是对List/Map的简单封装 他将是提高我们开发速度的重要工具,各种想到想不到的数学计算,只要不是与业务相关的都应该能实现