设计思想
设计初衷
Design Philosophy
核 应对未知领域的不确定性
跳出「需求前置、设计固定、编码落地」的线性思路,在无法预知数据结构、数据源类型的背景下,通过元数据驱动、动态适配机制解耦"易变的描述层与稳定的执行层"。
赋予系统应对未知的能力,让系统不必在开发阶段预置一切也能适应各类不确定性变化。
设计思想
Core Concepts
核心定位
面向动态 · 面向运行时 · 基于元数据
摆脱静态属性束缚,实现高度的灵活性与可扩展性
运行时
盒子里那只猫在运行时才确定
编程时不确定
Runtime Dynamic
动态
那只猫是会动的,甚至会变,有时会变成狗
Adaptive Change
元数据
用更多维度的元数据,将不确定性坍缩为确定性
Metadata Driven
实现原则
Implementation Principles
极简
Simplicity
- • 源于极简的用户直觉,操作体验高度契合开发者编程习惯,甚至能被"猜中",达到所想即所得
- • 但不止于直觉:不盲从面向对象习惯,在元数据驱动场景中,重新定义操作未知的习惯
多元
Diversified
- • 构建基于 Java 的多元技术生态
- • Spring != Java,借鉴之学习之不要局限于
- • 全面覆盖Vert.x、Quarkus、Solon 等各类非Spring运行环境
实现机制
Implementation Mechanism
内置规则
Built-in Rules
外部插件
External Plugins
方言转换引擎
元数据映射库
内外融合
内置规则与外部插件合成方言转换引擎与元数据映射库
统一标准
建立跨数据库的通用标准,实现异构数据库的统一操作
核心理念
计算优于声明
• 不声明动作,只描述状态
• 不预测变化,只计算差异
• 让系统在运行时自适应,而非在编译时预设
D-ORM
Anyline与ORM的设计思想对比
AnyLine MDM 技术产品报告
从面向对象 到 面向动态元数据
误解
为什么要有AnyLine
DriverAdapter执行过程
关于DataSource与DataRuntime
为什么要基于spring生态
为什么集中使用同一个Service
为什么多数据源时又要使用多个独立的一个Service
DataRow与Map的区别
AnyLine解决或提供了什么