Atitit.软件架构高扩展性and兼容性原理与概论实践attilax总结
Atitit.软件架构高扩展性and兼容性原理与概论实践attilax总结
5. 组合(Composition),而不是继承(inheritance) 2
12. 表处理扩展if else (数据与数据处理相互分离)3
15.5. 不同项目的同一功能就实现可以放在同一上级模块package下5
16. 架构即未来:现代企业可扩展的Web架构、流程和组织(原书第2版)5
17. 高扩展性网站的50条原则(网站运营必备宝典)作者:[美]Martin L. AbbottMichael T. Fisher 著6
1. 什么是可扩展的应用程序?
一个可扩展的应用程序应该能够以某种方式实现增长,并且添加、删除、增强、重构某些组件,对于其他组件的影响微乎其微
当出现下面的这些情况时,说明元素已经具有可扩展性了:
· 该元素可以很容易地与其他元素进行互换,而不会破坏应用程序
· 该元素可以轻松重用于项目外部
· 该元素可以成功地进行单元测试
2. 松耦合(ioc)
soma.js中提供了一系列用于架构解耦和测试的工具,以及各种设计模式解决方案,比如依赖注入(dependency injection)、观察者模式(observer pattern)、中介者模式(mediator pattern)、外观模式(facade pattern)、命令模式(command pattern),面向对象(OOP)工具集,并提供了一个DOM操作模板引擎作为可选插件。
作者:: 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 )
汉字名:艾提拉(艾龙), EMAIL:1466519819@qq.com
转载请注明来源: http://www.cnblogs.com/attilax/
3. 接口的思考
4. 单一用途&模块化,小粒度化
粒度更小,更容易扩展
5. 组合(Composition),而不是继承(inheritance)
6. Ocp原则开闭原则
7. Plugin系统
8. 流程扩展工作流系统,流程自定义
9. Ui扩展 html5
10. 数据独立性
每个功能使用不同的独立数据,这样可以提升扩展性。。比如订单处理。。接受订单,处理订单*update ,使用不同的表 ,就可以互相不影响的功能修改以及表结构修改。。
11. 脚本与hotdeploy
12. 表处理扩展if else (数据与数据处理相互分离)
13. 系统被扩展的几种形式(方法级别,模块级别)
4)运行时对象装配。
5)5)基于模块的运行时动态扩展。 到现在为止,我们讨论的都是比较细粒度的在技术上的扩展。想象一下,如果增加一些功能,就去继承各种各样的类,然后经过复杂的装配过程,才能完成一个功能的添加和改进。即使你新增加了类,改动了Spring的配置文件,实现新的装配,但仍然有一点,你需要编译整个项目。也就是说,前四种都没有达到模块级别的扩展。
OSGi给出了解决方案,可以实现模块级别的动态扩展,而且是运行时的。所谓运行时模块的动态扩展,比如说你需要增加一些新的功能,你可以将新开发的类和文件按照Bundle进行组织,然后直接扔到运行时环境下,这些功能就可以用了。
6)6)基于中间语言。 框架通常定义了一些Hotspot(热点),在这些点上,可以进行扩展。平台,可扩展性是最强的,比如window 平台,你可以开发应用程序运行在上面。windows提供了几千个API,你可以使用他们来开发应用程序
由此推断,从技术上来说,要获得最大的可扩展性,就要通过一种或多种中间语言来进行扩展。比如现在流行的OpenSocial API和Facebook都是这个思路。这样说来,DSL的出现就是顺理成章的了,它是为了满足在某个业务领域的扩展而设计的
14. 常用软件扩展机制
14.1. Ff的扩展机制》》》》插件体系
14.2. 配置化
14.3. dsl
15. 面临的扩展性与兼容性问题
15.1. 不同的项目与不同的实例启动
通过不同的bat启动文件来实现。。
可以通过启动脚本来设置不同的实例
15.2. 不同的项目与实例配置文件
参照mysql,通过制定配置文件来实现
15.3. Web.xml怎么办??
暂时没办法,可以通过jetty等可编程中间件来实现。。
15.4. 跳转到同一功能spec的不同实现
比如游戏和点播系统的用户中心,ui界面就不同。。
可以使用查表法。。使用js,根据项目的id来跳转不同的功能ui加载,项目id在启动脚本里面传入。。 同一项目的不同实例只能跳转到相同功能,如果需要不同,在加个实例id判断吧。。
Prjid,instan_id,fun_implet
15.5. 不同项目的同一功能就实现可以放在同一上级模块package下
重名问题,通过添加后缀_prj 来解决。。
如果项目很多,应该通过前缀来解决,这样好找。。
16. 架构即未来:现代企业可扩展的Web架构、流程和组织(原书第2版)
第一部分 可扩展性组织的人员配置
第1章 人员和领导力对扩展性的影响 …… 2
第2章 可扩展性技术组织的角色 …… 17
第3章 组织的设置 …… 41
第4章 领导力秘籍 …… 80
第5章 管理秘籍 …… 116
第6章 关系、思维和商业案例 …… 141
第二部分 构建可扩展的过程
第7章 过程是可扩展的关键 …… 154
第8章 管理故障和问题 …… 169
第9章 危机管理和升级 …… 189
第10章 生产环境的变更管理 …… 210
第11章 确定应用发展的预留空间 …… 233
第12章 确立架构原则 …… 248
第13章 联合架构设计和架构审查委员会 …… 267
第14章 敏捷架构设计 …… 284
第15章 聚焦核心竞争力:自建与外购 …… 296
第16章 确定风险 …… 310
第17章 性能与压力测试 …… 328
第18章 障碍条件与回滚 …… 351
第三部分 可扩展的架构方案
第19章 构建故障隔离的架构 …… 368
第20章 AKF扩展立方体介绍 …… 389
第21章 为扩展分割应用 …… 404
第22章 为扩展分割数据库 …… 426
第23章 为扩展而缓存 …… 452
第24章 为扩展而异步 …… 472
第四部分 其他的问题和挑战
第25章 海量数据 …… 492
第26章 云计算的突飞猛进 …… 517
第27章 云计算准备就绪 …… 550
第28章 应用监控 …… 564
第29章 规划数据中心 …… 581
第30章 纵观全局 …… 608
17. 高扩展性网站的50条原则(网站运营必备宝典)作者:[美]Martin L. AbbottMichael T. Fisher 著
第1章 化简方程 1
第2章 分布工作 23
第3章 横向扩展设计 35
第4章 使用正确的工具 51
第5章 不要重复工作 67
第6章 积极利用缓存 81
第7章 从错误中吸取教训 109
第8章 数据库原则 125
第9章 容错设计与故障控制 141
第10章 避免或分发状态 159
第11章 异步通信和消息总线 171
第12章 其他原则 183
第13章 原则回顾和优先级划分 203
参考资料
如何一步一步打造高可扩展性的应用程序?-CSDN.NET.html
软件可扩展性:来自星巴克的经验 - Java,java框架 - language - ITeye论坛.html
可扩展性(Extensibility)——构建灵活系统的思考 - me.think(everything.about(_software_)).serialize(this);__古路刀客 - ITeye技术网站.html
架构师不可不知的十大可扩展架构 - 51CTO.COM.html( imp ,还没看完)
atiend
Atitit.软件架构高扩展性and兼容性原理与概论实践attilax总结的更多相关文章
- 使用Lua脚本语言开发出高扩展性的系统,AgileEAS.NET SOA中间件Lua脚本引擎介绍
一.前言 AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台.用于帮助中小型软件企业建立一条适合市 ...
- jetbrick,新一代 Java 模板引擎,具有高性能和高扩展性
新一代 Java 模板引擎,具有高性能和高扩展性. <!-- Jetbrick Template Engineer --> <dependency> <groupId&g ...
- (转)mysql数据库高可用高扩展性架构方案实施
http://shanhu.blog.51cto.com/1293405/1212605-----mysql数据库高可用高扩展性架构方案实施
- 优秀开源项目之三:高性能、高并发、高扩展性和可读性的网络服务器架构State Threads
译文在后面. State Threads for Internet Applications Introduction State Threads is an application library ...
- Atitit机器学习原理与概论book attilax总结
Atitit机器学习原理与概论book attilax总结 <机器学习(决战大数据时代!IT技术人员不得不读!)>((美)米歇尔(Mitchell)[简介_书评_在线阅读] -1 < ...
- Atitit.html css 浏览器原理理论概论导论attilax总结
Atitit.html css 浏览器原理理论概论导论attilax总结 1.1. 浏览器是怎样工作的:渲染引擎,HTML解析(连载二)1 2. 5.1.1 DOM标准 1011 3. <We ...
- 如何做到MySQL高扩展性?
高并发及其关注要点 近年来,随着互联网.移动互联网的飞速发展,业务系统的互动性日益增强,用户规模不断攀升,电商.游戏.直播.在线教育.短视频等一系列新兴移动端应用如雨后春笋般涌现出来,这些应用 “高并 ...
- .NET 通用高扩展性的细粒度权限管理架构(webApi/Mvc)
一. 权限场景分析: 1. 系统具有角色概念, 部门概念, 且都具有相应不同的权限 2. 用户具有多个角色, 多个部门等关系, 并且能给单个用户指派独有的权限 3. 具有细粒度权限控制到资源的RBAC ...
- 利用OC对象的消息重定向forwardingTargetForSelector方法构建高扩展性的滤镜功能
在OC中,当像一个对象发送消息,而对象找到消息后,从它的类方法列表,父类方法列表,一直找到根类方法列表都没有找到与这个选择子对应的函数指针.那么这个对象就会触发消息转发机制. OC对象的继承链和isa ...
随机推荐
- js 基础篇(点击事件轮播图的实现)
轮播图在以后的应用中还是比较常见的,不需要多少行代码就能实现.但是在只掌握了js基础知识的情况下,怎么来用较少的而且逻辑又简单的方法来实现呢?下面来分析下几种不同的做法: 1.利用位移的方法来实现 首 ...
- document.compatMode
在我电脑屏幕上显示的 电脑是 1920*1080这是在document.compatMode:css1Compat模式 window.screen.availWidth 1920 window.scr ...
- 如何解决流程开发中SheetRadioButtonList页面取值问题
分享一个常见的取值问题. 应用场景: SheetRadioButtonList控件,点击其中一项执行事件操作.如果是页面加载的情况下,值就无法取到. 具体原因如下: 我给SheetRadioButto ...
- 一个简单的网站web项目的详解
有不对的术语,或者不好理解的部分,欢迎大家批评指正,谢谢大家! 近期做的网站web项目,实现登录功能,查询功能.首先把这个项目分为几个模块来处理,当前用户模块,历史用户模块,历史记录模块,数据库模块, ...
- Thread.Sleep(0) vs Sleep(1) vs Yeild
本文将要提到的线程及其相关内容,均是指 Windows 操作系统中的线程,不涉及其它操作系统. 文章索引 核心概念 Thread.Yeild Thread.Sleep(0) Thread. ...
- Go语言实战 - revel框架教程之CSRF(跨站请求伪造)保护
CSRF是什么?请看这篇博文“浅谈CSRF攻击方式”,说的非常清楚. 现在做网站敢不防CSRF的我猜只有两种情况,一是没什么人访问,二是局域网应用.山坡网之前属于第一种情况,哈哈,所以至今没什么问题. ...
- Struts2拦截器的执行过程浅析
在学习Struts2的过程中对拦截器和动作类的执行过程一度陷入误区,特别读了一下Struts2的源码,将自己的收获分享给正在困惑的童鞋... 开始先上图: 从Struts2的图可以看出当浏览器发出请求 ...
- [原创]MYSQL中利用外键实现级联删除和更新
MySQL中利用外键实现级联删除.更新 MySQL支持外键的存储引擎只有InnoDB,在创建外键的时候,要求父表必须有对应的索引,子表在创建外键的时候也会自动创建对应的索引.在创建索引的时候,可以指定 ...
- css权威指南-基本视觉格式化(水平与垂直)
1.基本概念 (1)正常流:是指西方语言文本从左向右,从上向下显示.如果要让一个元素不在正常流中国,唯一的办法 就是使之成为浮动或定位元素. ( ...
- Dom addEventlistener与id 绑定事件的区别(续)
addEventListener 第三个参数为 useCapture. 以一个例子说明. <div id="div1" style="background: blu ...