Atitit 提升扩展性的艺术 艾提拉著

目录

1. . 功能扩展 vs 性能扩展 1

1.1. udf机制 sp 等插件机制 1

1.2. 1.5. 脚本。脚本是扩展复杂功能的利器 2 1

1.3. 1.6. 自定义语言 工作流 规则引擎 2 1

2. 交互扩展 1

2.1. 提供细粒度api 1

2.2. 提供交互接口比如cli 1

3. 提升语言级别与抽象 2

3.1. 完整语言node.js python php 2

3.2. 不完整语言xml h5 +vue系列 2

3.3. 图形化语言bpm 2

4. 架构扩展性 2

4.1. 分段建设,避免中小节点 2

5. 其他 2

5.1. 表格化 excel 2

  1. . 功能扩展 vs 性能扩展

    1. udf机制 sp 等插件机制
    2. 1.5. 脚本。脚本是扩展复杂功能的利器 2
    3. 1.6. 自定义语言 工作流 规则引擎 2
  2. 交互扩展
    1. 提供细粒度api
    2. 提供交互接口比如cli
  1. 提升语言级别与抽象

    1. 完整语言node.js python php
    2. 不完整语言xml h5 +vue系列
    3. 图形化语言bpm
  2. 架构扩展性
    1. 分段建设,避免中小节点
  3. 其他
    1. 表格化 excel

atitit 高扩展性解决方案 功能扩展法 v2 t66.docx

atitit 高扩展性解决方案 功能扩展法 v2 t66.docx

atitit 高扩展性解决方案.docx

1. 功能扩展 vs 性能扩展 2

1.1.       人无远虑,必有近忧。       系统也一样。 2

1.2. 预留接口 插件机制 2

1.3. 通用语言解析接口 多功能接口 就类似usb接口那样通用 2

1.4. Dsl接口和ast接口 2

1.5. 脚本。脚本是扩展复杂功能的利器 2

1.6. 自定义语言 工作流 规则引擎 2

1.7. api类库扩展 2

1.8. Cli扩展     udf机制 3

1.9. 3

2. Other 3

2.1. 原件最小封装 3

2.2. 接口的层次化 功能 模块 子系统 3

2.3. 接口转换器 adapter模式 3

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

2.5. 使用配置化 ioc提升扩展性,配置lazy化 3

2.6. 插件系统或者模块化平台。插件系统平台从理论上提供了无数的可扩展性。比如Eclipse和NetBeans平台。这儿是抽象的最高点, 4

2.7. 灵活性和可扩展性 其易用性差的三角关系 4

2.8. 稳定性。越是灵活和可扩展 4

2.9. 扩展性与性能的关系 4

2.10. Vm+dsl vm 其实就是添加了一个layer,无所不能 4

2.11. 功能使用和功能定义的关注点分离 5

3. 其他的常见扩展模式 6

3.1. Php使用其他语言写lib 6

3.2. Cms的插件机制 6

3.3. 浏览器的插件机制,使用其他语言写插件 6

3.4. Oracle支持java写sp 6

3.5. 用lua扩展你的Nginx( 6

3.6. oa office excel vbs vba  com 6

3.7. 游戏外挂 6

4. 常用的写扩展的语言 6

4.1. Lua c++ python  xml 6

5. 参考资料 6

1.功能扩展 vs 性能扩展

1.1.      人无远虑,必有近忧。       系统也一样。

2)可扩展性不是一蹴而就的,是需要随着你对业务领域理解的深入而不断重构获得。一般三次可以达到比较理想的程度。

3)在系统演化过程中,时刻准备着,保持对复杂性的关注。确保这些复杂性得到消化。

4)要想获得可扩展性,你需要看得远一点,对上下文做充分的了解。

人无远虑,必有近忧。       系统也一样。

1.2.预留接口 插件机制

1.3.通用语言解析接口 多功能接口 就类似usb接口那样通用

1.4.Dsl接口和ast接口

使用ast接口预先分词会更加方便。减少工作量。。

当然dsl接口也是急需要的额。。可以在ui层实现。。。

1.5.脚本。脚本是扩展复杂功能的利器

1.6.自定义语言 工作流 规则引擎

1.7.api类库扩展

比如php可以使用另外语言写lib

1.8.Cli扩展     udf机制

1.9.

2.Other

2.1.原件最小封装

2.2.接口的层次化 功能 模块 子系统

分别在不同的层次上面的接口

2.3.接口转换器 adapter模式

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

类似于主板一样,接口众多,难依然难以升级

因为一旦升级,就要牵扯到众多接口同时升级。。

2.5.使用配置化 ioc提升扩展性,配置lazy化

2.6.插件系统或者模块化平台。插件系统平台从理论上提供了无数的可扩展性。比如Eclipse和NetBeans平台。这儿是抽象的最高点,

2.7.灵活性和可扩展性 其易用性差的三角关系

灵活性和可扩展性也是其易用性差

.易用性。越是灵活,用户的使用难度就越大,如果没有产品的现场实施人员的服务,对于非计算机人专业用户来说,这实际增加了他们使用的难度。Eclipse的平台正在展现这种问题,虽然它的用户主要是开发者,即时插件文档做得很好,但是很多人不得不抱怨Eclipse需要太多得配置和技巧。另外典型的例子是Windows和Linux要求有不同能力的人来使用,原因在于,Linux的灵活性和可扩展性也是其易用性差的原因之一

可以通过分装一层易用性layer来解决

2.8.稳定性。越是灵活和可扩展

, 。这主要是灵活性带来的现实世界的排列组合太多了,版本之间的兼容性

这个可以通过版本管理来实现,不会

2.9.扩展性与性能的关系

性能。微内核/插件模式设计的缺点表现在不同插件之间的交互性能损失上。Unix系统之所以没有采取现代操作系统所提倡的微内核模式,恐怕原因也在于此。

2.10.Vm+dsl vm 其实就是添加了一个layer,无所不能

基于中间语言。 框架通常定义了一些Hotspot(热点),在这些点上,可以进行扩展。平台,可扩展性是最强的,比如window 平台,你可以开发应用程序运行在上面。windows提供了几千个API,你可以使用他们来开发应用程序

。由此推断,从技术上来说,要获得最大的可扩展性,就要通过一种或多种中间语言来进行扩展。比如现在流行的OpenSocial API和Facebook都是这个思路。这样说来,DSL的出现就是顺理成章的了,它是为了满足在某个业务领域的扩展而设计的。思路还是和前面说的一样。 说白了,就是顺序,选择和循环可以表达所有逻辑,这是证明过的,这是语言能够带来灵活性的本质。

2.11.功能使用和功能定义的关注点分离

自行开发两个扩展,并注册到扩展点上。张三在运行时收集扩展,进行处理。实现了功能使用和功能定义的关注点分离。大家只要遵守扩展的契约就行了。

3.其他的常见扩展模式

3.1.Php使用其他语言写lib

3.2.Cms的插件机制

3.3. 浏览器的插件机制,使用其他语言写插件

3.4.Oracle支持java写sp

3.5.用lua扩展你的Nginx(

3.6.oa office excel vbs vba  com

3.7.游戏外挂

4.常用的写扩展的语言

4.1.Lua c++ python  xml

5.参考资料

程序的灵活性与可扩展性 - 嘿 - 博客频道 - CSDN.NET.html

可扩展性(Extensibility)——构建灵活系统的思考 - me.think(everything.about(_software_)).serialize(this);__古路刀客 - ITeye技术网站.html

Atitit 提升扩展性的艺术 艾提拉著 目录 1. . 功能扩展 vs 性能扩展 1 1.1. udf机制 sp 等插件机制 1 1.2. 1.5. 脚本。脚本是扩展复杂功能的利器 2 1 1.3相关推荐

  1. Atitit mis 管理信息系统概论 艾提拉著 目录 1. 互联网三大定律 2 1.1. 摩尔定律和 2 1.2. 吉尔德定律 电脑及网络宽带资源成为重要免费资源 2 1.3. 梅特卡夫定律 用户

    Atitit mis 管理信息系统概论 艾提拉著 目录 1. 互联网三大定律 2 1.1. 摩尔定律和 2 1.2. 吉尔德定律 电脑及网络宽带资源成为重要免费资源 2 1.3. 梅特卡夫定律 用户越 ...

  2. Atitit 关于艾提拉个人简绍 中文日文英文对照版

    Atitit 关于艾提拉个人简绍 日文版 经历了很多项目实践,具备较为宽广的IT从业与信息化工作背景,具备若干创业历程,道路曲折,初心不改.在相关领域累计了较深的深度(细化度)与高度(抽象度)与广度 ...

  3. 艾提拉近年来技术大总结

    ##基本信息 姓名:艾提拉    民族:汉  生日:1984.3 email:1466519819@qq.com 英文名&网名id : attilax 曾用名:艾龙 ##主要方向与目标: 技术 ...

  4. 大话数据结构读书笔记艾提拉总结 查找算法 和排序算法比较好 第1章数据结构绪论 1 第2章算法 17 第3章线性表 41 第4章栈与队列 87 第5章串 123 第6章树 149 第7章图 21

    大话数据结构读书笔记艾提拉总结 查找算法 和排序算法比较好 第1章数据结构绪论 1 第2章算法 17 第3章线性表 41 第4章栈与队列 87 第5章串 123 第6章树 149 第7章图 211 第 ...

  5. Atitit.兼具兼容性和扩展性的配置方案attilax总结

    Atitit.兼具兼容性和扩展性的配置方案attilax总结 文件配置法1 Jdbc多数据源文件配置发1 Bat文件配置法1 改进的文件配置法(采用类似i18n技术) 推荐1 使用自动化pc_id的方 ...

  6. Atitit 提升效率 界面gui方面的前后端分离与cbb体系建设 规范与推荐标准

    Atitit 提升效率 界面gui方面的前后端分离与cbb体系建设 规范与推荐标准 1. 界面gui方面的前后端分离重大意义1 2. 业务逻辑也适当的迁移js化1 3. 常用分离方法2 3.1. 页面 ...

  7. 区块链扩展性技术总结

    最近在做区块链的扩展性优化方面的研究学习,总结一下当前的主流区块链扩展性技术. 1 现状 区块链技术提高了数据的安全性与可靠性,但实际使用中存在可扩展性差的显著问题,出现了很多提升区块链扩展性的方案. ...

  8. Atitit.提升电子商务安全性 在线充值功能安全方面的设计

    Atitit.提升电子商务安全性 在线充值功能安全方面的设计 1. 防止dataservcie对充值订单表的直接改写,只能通过api,不能通过sql1 1.1. Order_id的安全取值,注入检测1 ...

  9. VMware发布开源项目Lightwave和Photon 提高云应用扩展性

    VMware是老牌的虚拟化技术提供商,但Docker等容器技术对其核心业务造成了不小的冲击,为了应付这种冲击,并顺应潮流,VMware发布了两个新的开源项目,Project Lightwave和Pro ...

  10. 微信基于时间序的海量存储扩展性与多机容灾能力提升

    作者:jeryyzhang,腾讯 WXG 后台开发工程师 背景介绍 业务场景 作为以手机为主要平台的移动社交应用,微信内大部分业务生成的数据是有共性可言的:数据键值带有时间戳信息,并且单用户数据随着时 ...

最新文章

  1. pat 多项式A/B
  2. torch.cuda.is_available()返回false
  3. python对笔记本电脑的要求-如何用Python在笔记本电脑上分析100GB数据(上)
  4. 分布式系统原理 之7 基于MVCC的分布式事务
  5. SpringMVC学习记录--Validator验证分析
  6. apex图表使用饼图居中_饼图若只有一个值的时候,normal.label.position='center'时,label居中指的是DOM居中而不是图表居中...
  7. LWIP初体验-修改ST官方demo
  8. Python 爬虫咸鱼版
  9. SFB 项目经验-45-用培训课件当运维文档,聪明
  10. MySQL存储过程(二)——存储过程基本使用
  11. 布朗大学计算机专业怎么样,Offer捷报 | 恭喜Z同学收获布朗大学计算机科学专业Offer!...
  12. 邮件服务器加密方式,盈世Coremail邮件系统四种安全加密方式揭秘
  13. 使用nginx负载均衡器提高并发量
  14. C语言中有关字符串的库函数(3)
  15. SAP中汇率固定配置和应用分析测试
  16. 3dmax:3dmax三维VR渲染设置之摄像机设置案例应用之自由摄影打造动画效果之图文教程
  17. RK3568-B2-ANDROID11-WIFI-RTL8821CU
  18. Jsoup和JsoupXpath详解
  19. HP Cloud Recovery Tool
  20. mysql 数据备份

热门文章

  1. Opencv图像数据结构剖析
  2. mysql用declare会报错_mysql创建存储过程declare 变量时报错
  3. kaios好用吗_如何评价Kai Os?
  4. qt中的信号都需要emit触发吗_[Vue笔记] $emit 与 $event
  5. rtx2060什么水平_不出预料+不负众望,NVIDIA RTX2060显卡获得2019我最喜欢称号
  6. ac自动机 匹配最长前缀_【HDU】5069 Harry And Biological Teacher AC自动机fail指针建树dfs...
  7. php l框架,一个很简单的PHP框架lyue
  8. Emacs快捷键的总结
  9. 麦淘亲子完成近千万美元B+轮融资,预计2019年前将开设约300个线下科学活动点...
  10. Alert提示框插件