设计思想

最后更新:2023-12-04 00:47:30 | 状态:未完成
文档中有错误或没说明白的请到【】里说一下,多谢指正
  1. 简单
    首先要保证用户调用的绝对简单,绝对的意思就是不要有任何一个多余的过程或对象或参数,工具内部能解决的事不要留给用户。
    比如查一个表,用户能提供最基础的string的类型 就不要先new一个陌生的Table对象再调用别的方法,
    再如分页,用户提供一个boolean告知一下是否需要即可,不要让用户去计算怎么分。
    再如一种数据结构能解决的事不要搞出多种结构,同样的数据分页返回一种结构,不分页返回另一种结构
    无论用的什么简单还是复杂模式,务必隐藏在工具内部,用户只需要一个简单的方法调用。不要让用户感觉到模式的存在,更不能要求用户熟悉种模式才能工作
    工具内部要以数倍的代码 来保证用户调用的简单

  2. 面向动态 面向运行时
    不要假设使用户已经明确了数据源、表、列、属性等。参考低代码、自定义表单、查询条件等场景
    不能要求先有这些固定的配置文件和实体类才能工作

  3. 保证与Spring生态的深度融合
    不要重复spring已有的轮子,除非他不符合前2条

主要特征(与ORM的区别)

  1. 摒弃了各种繁琐呆板的实体类以及相关的配置文件
    让数据库操作更简单,不要一动就是一整套的service/dao/mapping/VOPODTO有用没用的各种O,生成个简单的SQL也各种判断遍历。
  2. 强化了结果集的对象概念
    面向对象的对象不是只有get/set/注解这么弱
    需要把数据及对数据的操作封装在一起,作为一个相互依存的整体,并实现高度的抽象
    要关注元数据,不要关注姓名、年龄等具体属性
    强化针对结果集的数据二次处理能力
    如结果集的聚合、过滤、行列转换、格式化及各种数学计算尽量作到一键...一键...
    而不要像ORM提供的entity,map,list除了提供个get/set/foreach,稍微有点用的又要麻烦程序员各种判断各种遍历

如何实现

数据操作的两个阶段,1.针对数据库中数据 2.针对数据库查询的结果集(内存中的数据)
  1. 提供一个通用的AnylineService实现对数据库的一切操作

  2. 提供一对DataSet/DataRow实现对内存数据的一切数学计算
     DataSet/DataRow不是对List/Map的简单封装 他将是提高我们开发速度的重要工具,各种想到想不到的数学计算,只要不是与业务相关的都应该能实现
AnyLine 的意思就是 任何形式 任何途径 实现对数据库(操作)的一切期望,不要局限于教程 不要局限于入门时的Hello World 不要局限于这个模式那个思想


最近更新 搜索 提交