文档介绍:谢老师,白老师,你们好!
上次4天的团体培训中,我承担的内容主要是不涉及开发过程的软件架构和测试,。用设计模式和基于构件的软件设计方法,来搭建软件系统架构。在培训中,发现引入生动、形象的实例更能获得学员的欢迎和认可。谢老师,白老师,你们好!
上次4天的团体培训中,我承担的内容主要是不涉及开发过程的软件架构和测试,。用设计模式和基于构件的软件设计方法,来搭建软件系统架构。在培训中,发现引入生动、形象的实例更能获得学员的欢迎和认可。所以我在这次的课程设计中,将把案例应用到讲述的每个知识点上,同时引入学员们在项目中普遍关心的选型、性能分析等问题。另外的一个问题是,上次的培训内容有些“大而全”了,这次我做了调整,去除了一部分专题,设计了包含具体案例的专题进行细致讲授。,去体会到微软的技术是到底从哪来的。这样的一份讲义,我还会进一步的把语言调整的煽情些,引起读者和听者的兴趣。
赵巍
构架设计和体系创建(交流稿)
一、设计模式培训示例2
什么是设计模式2
举例说明讲授设计模式的方法2
开源项目中的设计模式4
NUnit的结构与设计模式4
Log4net中的设计模式4
二、软件工程中业务模式的使用5
自底向上分析5
自顶向下分析5
混合分析方法5
功能分解实例6
业务构件7
三、.NET企业级模式8
四、构建分布式应用程序分布式计算的8项注意11
网络通常是不可靠的11
响应是有时间开销的11
网络是不安全的11
网络拓扑结构通常会改变11
网络中通常会有很多管理员11
传输是要付费的11
网络通常不是同构的11
这里还打算安排一个大型的分布式应用案例11
五、部署并运行应用程序11
要考虑的问题11
几个基本的规则11
系统配置12
硬件伸缩12
负载平衡13
群集13
运行需求13
六、开发安全的应用程序中相关的知识点介绍13
传统密码学(Cryptograph)13
单钥制加密技术13
数字信封13
数字签名13
CA证书14
七、性能测试14
一、设计模式培训示例
(因为设计模式较多,这里仅用一个例子来说明如何传授设计模式。)什么是设计模式
面向对象的设计中,开发者遇到了很多类似的问题,这些问题可以用一个被证明了的最佳实践来进行完成,这些被证明了的实践就是设计模式。使用面向对象,我们获得了代码的重用。使用设计模式,我们获得了经验的重用。设计模式不是代码,但具体类库和框架是设计模式的实现。变化是永恒的,设计模式为适应变化而存在。系统架构师使用设计模式是
会让程序员一开始多写很多代码,但是他的存在能帮助程序员在将来遇到变化时少写很多代码。
举例说明讲授设计模式的方法
有一个动画制作公司,制作了一个关于鸭子的动画片。片子里有各种各样的鸭子,有的会叫,有的会游泳,这些鸭子都会被显示在屏幕上。于是程序员设计了如下了一个类:
AbEtractClass
三Methods
三・display
三*quack
斗swim
这个抽象的鸭子类被各种野鸭、家鸭和橡皮鸭继承。子类都有了父类的行为,会叫、会游泳和能被显示。
一天经过一个会议,公司决定鸭子也能够飞起来。于是抽象的父类被设计师修改为:
inii■■■■■■■■■■iiinii■■■■■iiinii■■■■■■■■■■iiinii■■■■■i
Oj-jjEsanlPt^-
AbstractClass
三Methods
gdisplay
£1?
:Vquack
沖swim
可是,在测试中发现橡皮鸭开始飞的满屏幕都是,而橡皮鸭是不能飞的!让橡皮鸭包含会飞的代码是不必要的重复甚至是逻辑上的错误。那么使用接口呢,让能飞的鸭子继承能飞的接口?但是这样给代码维护带来极大的麻烦,当有很多鸭子子类时,我们不能知道哪些实现了该接口,哪些没有。
新的需求仍然在不断地出现,鸭子有的会飞,有的能蹦跳着飞,有的不会飞;有的会嘎嘎的叫,有的不会叫,还有的会尖锐的叫。那怎么办,设计人员已经从面向对象的角度考虑了问题,可是他还是体会到了来自问题的压力,他是不是该上51job上去转转了呢?在这种情况下,使用如下一个设计原则:
识别出应用程序中变化的方面(aspects),然后将它们从稳定的部分中独立出来。我们可以将飞和叫的行为独立到鸭子类的外面来定义。如下图:
z園:
AbsttactClass
-Fields
爭_flyBehavior
占*_qua匚kBehavior
-*ELyBehavior
•*qiiackBehavior
-FropertigE
•督FlyBehavoir督Qua匚kBehavio