Atitit 提升扩展性 自由化理念  参数

  • 前瞻性设计
  •  自由化理念

自由化参数  json map等半结构化参数,dsl等全功能参数

自由化功能接口  dsl

自由化返回数据结构json

  • 热部署等实现模式

Xml+sql mybatis

Script php js python  dsl

Cmd hot load模式。。。

Atitit  架构之提升扩展性问题

目录

1. 扩展性大原则 2

1.1. 适当向上抽象 更加通用 2

1.2. 产品化  为“普罗大众”去设计,而不是为“个例”设计 2

2. 扩展性指标 3

2.1. 前瞻性设计,接口不只是为了已知的业务,还为未来的未知业务而服务 3

2.2. 方便修改,容易添加某个业务功能尽可能无需改动程序代码 或少量改动 3

2.3. 修改某个部分避免跨越太多多文件 3

2.4. 动态化 实现少编译免编译 热部署 或免部署 3

2.5. 松耦合(ioc)  业务无关性 3

2.6. 库表结构自动化扩展,随时添加字段 修改字段名 而无需调整程序代码 3

2.7. 通用化接口,少量接口实现大量的业务功能,接口业务无关性 3

2.8. DSL声明化(不具体指明细节),结果导向模型 4

3. Top3 是三件套dsl业务脚本  通用接口 半结构化数据 4

3.1. 无中心节点组件设计 避免庞大组件出现, 4

3.2. 分段建设,避免大节点 4

3.3. 单一用途&模块化,小粒度化 4

3.4. 组合(Composition),而不是继承(inheritance) 4

3.5. 适当使用写 设计模式 4

3.6. 利用db和java语言 os操作系统等提供的扩展机制api 5

4. dsl业务脚本 工作流BPM 规则引擎 5

4.1. 提升语言级别与抽象DSL 5

4.2. 各种QL查询语言 各种EL表达式语言 5

4.3. 内嵌解释器 表达式解释器等 5

4.4. 脚本。脚本是扩展复杂功能的利器php python js等 5

4.5. 表映射表处理扩展if else 5

4.6. Sql脚本 sp view等 5

4.7. 频繁变动的业务配置化  脚本化  配置业务脚本 5

5. 通用接口参数化(查询和修改) 6

5.1. 类似于sql一样的通用接口 6

5.2. Socket接口 转rest 6

5.3. 类似usb接口那样通用 6

5.4. 接口转换器 adapter模式 6

6. 半结构化数据 与动态类型 6

6.1. 数据扩展  schema free  ,    schema less模式 半结构化数据表示 6

6.2. 对于编译类型语言,多使用map等动态结构 6

6.3. 数据扩展性 数据库适当Json字段提升扩展性 7

7. 数据库系统提供的扩展性机制 7

7.1. 扩展Sql(带流程控制) xxsql Tsql Plsql等 7

7.2. View 于重写sql模式 7

7.3. Sp udf trigger(拦截器机制) 7

7.4. Db timer(mysql 里面叫event事件机制) 7

7.5. Json数据类型方便可扩展 7

7.6. 调用外部代码交互(mysql不直接支持) 7

7.7. Shell api (mysql不支持) 7

7.8. Other 7

8. 编程语言一般提供的扩展性机制 7

8.1. 脚本解释器 api 解释器(或脚本引擎scripting engine 7

8.2. Cli接口 Shell解释器 api 8

8.3. Sql解释器(通过sql驱动) 8

8.4. 正则与其他QL EL解释器 8

8.5. 通过其他dsl类库解释器模式等 8

8.6. 配置与元数据解释器api 8

8.7. 流程解释器 规则解释器 lib 8

8.8. Timer定时机制 事件机制 8

8.9. Vm拦截器机制过滤器机制 插件机制等(例如Java Agent ) 8

9. 利用os操作系统提供的扩展机制 9

9.1. Shell api 9

9.2. Timer机制(linux crontab,win 定时器等) 9

9.3. 拦截器机制 9

9.4. 其他(系统托盘通知等 9

10. 其他 10

10.1. 表格化 excel 10

10.2. 观察者模式 事件驱动 mq 10

11. 功能扩展 vs 性能扩展 10

12. Ref 10

Atitit 提升扩展性 自由化理念 参数 第一章 前瞻性设计 第二章  自由化理念 自由化参数 json map等半结构化参数,dsl等全功能参数 自由化功能接口 dsl 自由化返回相关推荐

  1. Atitit.提升 升级类库框架后的api代码兼容性设计指南

    Atitit.提升 升级类库框架后的api代码兼容性设计指南 1. 增加api直接增加,版本号在注释上面增加1 2. 废弃api,使用主见@dep1 3. 修改api,1 4. 修改依赖import, ...

  2. 第一行代码Android第二章读书笔记

    第一行代码Android第二章读书笔记 Activity 1.1 手动创建活动 1.2 Toast和Menu/销毁活动 Intent 2.1 显示/隐式 2.2 传递/返回数据 活动的生命周期 3.1 ...

  3. 第二篇第一章概述及第二章生产和储存物品的火灾危险性分类 重点在于表格...

    2019/1/4 [录播]2018一消精华班-实务-一级消防工程师-环球网校 http://v.edu24ol.com/?type=lesson&id=178923&gid=16157 ...

  4. 软件架构师 第一部分 基础篇 第二章 模块化

    首先,我们想弄清在围绕模块化的架构的讨论中使用和经常使用的一些通用术语,并提供在本书中使用的定义. [关于软件架构]的词语中有95%用于赞扬"模块化"的好处,而关于如何实现&quo ...

  5. 金字塔原理--第一篇读后感(第二章)

    金字塔原理-第一篇表达的逻辑 自己的表达能力不太行,敲本书,瞅瞅别人的表达方式,学习下,共同进步呀! 文章目录 金字塔原理-第一篇表达的逻辑 第二章:金字塔内部的结构 一.纵向关系 二.横向关系 三. ...

  6. class 第一个元素_第二章(第3节):网页元素定位和操作

    大家仔细思考一下,我们用 selenium 操控浏览器是什么意思,其实就是用 selenium 模拟人上网,也就是说人用浏览器能做的任何事情,我们用 selenium 都可以做,selenium 就如 ...

  7. 【C】【笔记】《C和指针》 第一章 快速上手 第二章 基本概念 第三章 数据 第四章 语句 第五章 操作符和表达式

    本文为个人读书笔记,仅供记录学习过程中遇到的日后需要留意的问题,如有相关版权问题请及时通知作者. 所有传递给函数的参数都是按值传递的. C语言约定:字符串就是一串以nul字节结尾的字符. 为什么用一个 ...

  8. word页码如何设置为章节加页码,例如第一章第一页1-1、第二章第一页2-1

      由于用到word页码分章节+页码的形式,从网上查了一下,质量真的很差,没有一篇文章讲清楚的,有的所答非所问,一怒之下,利用几个小时的时间解决问题并写下这篇文章,以供大家学习参考!!! 1.word ...

  9. 第一部分——简单句——第二章——简单句的核心——第二节 成分角度的扩展非谓语动词作定语、状语

    什么是非谓语动词 一主搭配一谓(正如中国的一夫一妻制)但早在封建社会时期,地主家里比较有钱. 再往里面加上谓语,就需要降半级,也就是非谓语动词. 什么时候用非谓语动词 一主搭配一谓后,还需要使用动词, ...

  10. Atitit保证架构超前性 前瞻性 目录 第一章 简单抽象原则 道和术的区别 1 第一节 原则 kiss 1 第二节 提升到层次哲学层次 1 第三节 命名也要通用抽象 隐藏细节 1 第二章 通用性原

    Atitit保证架构超前性 前瞻性 目录 第一章 简单抽象原则 道和术的区别 第一节 原则 kiss 第二节 提升到层次哲学层次 第三节 命名也要通用抽象 隐藏细节 第二章 通用性原则  扩展性 第一 ...

最新文章

  1. 利用CSS变量实现炫酷的悬浮效果
  2. canal 入门(1)
  3. Qt图形测绘窗口部件介绍
  4. 常见的算法题目分类图
  5. “vueuse“ 中文索引与用例
  6. Android 表单之 EditText(输入框)详解
  7. 如何“加密”你的email地址
  8. 重庆科技学院计算机专业好吗,重庆科技学院什么专业好
  9. java 200以内的素数_java200以内的素数每行每列7个代码怎么写?
  10. Win 10系统截图的7种方式【简单实用】
  11. itest软件测试工具,itest(爱测试)
  12. 最好用的论文数据搜索网站,搜索容易让写论文变轻松!
  13. 写在1024,致程序员致程序员节致自己
  14. 让我受益终生的六个字:道、法、术、器、志、势
  15. 安卓编程 app图标自定义
  16. 微信中怎么打开apk下载链接 微信跳转打开外部浏览器打开apk文件
  17. 那些年啊,那些事——一个程序员的奋斗史 ——98
  18. matlab求多项式的实数根_matlab中怎么求多项式的根
  19. 高压直流输电系统仿真模型介绍(2)
  20. MATLAB语言入门的第一步

热门文章

  1. C++11强类型枚举——枚举类
  2. 技术支持好跳槽吗_计算机实施、IT技术支持、技术顾问、成功客户经理岗位怎么样?...
  3. android canvas_Android实现自定义阴影效果
  4. cordova android 开发,Cordova开发App入门(一)创建android项目
  5. 《机器学习系统设计:Python语言实现》一2.1 Python与机器学习
  6. iOS 改变UITextField中光标颜色
  7. 移动页面框架头尾固定中间滚动 absolute模拟fixed
  8. qq截图和ps相结合的功能
  9. 【SQL精彩语句】按某一字段分组取最大(小)值所在行的数据
  10. 报错:非介入式客户端验证规则中的验证类型名称必须唯一。下列验证类型出现重复...