abd——基于架构的开发模式

上传人:第*** 文档编号:49231240 上传时间:2018-07-25 格式:PPT 页数:32 大小:1.29MB
返回 下载 相关 举报
abd——基于架构的开发模式_第1页
第1页 / 共32页
abd——基于架构的开发模式_第2页
第2页 / 共32页
abd——基于架构的开发模式_第3页
第3页 / 共32页
abd——基于架构的开发模式_第4页
第4页 / 共32页
abd——基于架构的开发模式_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《abd——基于架构的开发模式》由会员分享,可在线阅读,更多相关《abd——基于架构的开发模式(32页珍藏版)》请在金锄头文库上搜索。

1、ABD基于架构的开发模式上海湃睿信息科技有限公司 Bardo QI (祁宏) 2010年7月30日 2010 PISX 2概要 ABD基于架构的开发模式,在微软,ADOBE等公司中被 使用,在ACTIONSCRIPT,JAVA语言中作用非凡。奇怪的是在 PHP界却相当落后。 有人说,掌握了ABD,就能够轻松项目管理,掌握了ABD, 就离真正的架构师不远了。那么,你想了解ABD吗? 本话题为你揭开基于架构的开发模式的秘密,解决代码可读 性,可维护性,可扩展性,与程序员的无关性等问题,使你 的项目管理技术更上一层楼,让你走上架构师之路。 2010 PISX 3两种截然不同的结果我们最不想要的我们最

2、想要的有极为详细 的编程规范却代码仍不 规范用最简的编程规范,但代码仍相当 规范代码不具有可读性,与程序员无关性差 。代码可读性高,与程序员无关性高。程序员风格对程序结构存在较大的影响 。结伴编程,仍是正草隶篆。程序员风格对程序结构的影响力几乎为 零。独立开发,团队如同一人。高手,新人,质量相距甚远抄袭,原创,结果只有一个应用越是庞大,架构是越是混乱无论大小,架构永远不变有多少个应用,就有多少种架构统一标准的架构,人人清楚哪个目录是 什么,每一个源码文件都是class 2010 PISX 4什么是软件开发模式 软件开发模式的定义包含两方面: 其一是指软件开发中的管理模式,即在软件开发过程中要管

3、理什么 ,怎样管理。 其二是指软件开发中的操作规范,包括开发流程定义,即按照什么 样的步骤来开发软件。 有了敏捷,真的还会这么痛苦吗? 本主题阐述软件开发模式与架构管理模式之间的关系。并以PHP应用 架构管理为中心,讲述架构管理的沿革,PHP架构管理现状,以及架 构管理中一些必要的原则、PHP大型应用的基本架构等。 时间有限,内容太多,无法进行实例讲解,敬请谅解! 2010 PISX 5新型软件开发模式简介 SCRUM 由Ken Schwaber和Jeff Sutherland提出和倡导 敏捷开发模式 sprints短周期循环,scrum会议,以及burn down graph管理 XP (e

4、Xtreme Programming) 由Kent Beck,Ward Cunningham,Ron Jeffries提出 和倡导 TDD与连续性整合 结伴编码 ASD (Adaptive Software Development)由Jim Highsmith提出和倡导 speculate,collaborate,and learn(将项目的历程分成3个阶段:思索、合作、 学习 TimeBoxed 时间盒管理 MSF(Microsoft Solutions Framework)由Randy Miller,Paul Haynes提出,微 软倡导 使用者角色(Personals)推行一个从角色到使

5、用方案的设计流程 单元测试 2010 PISX 6软件开发模式是否足够? “新型”开发模式普遍被接受并广应用: 基于测试的开发(TDD) 先确定测试,以测试为中心。 敏捷开发模式 如前述的SCRUM,XP开发模式 代码制质量控制: code review 结伴编程 PHP使用“新型”开发模式产出的软件? BUG依旧 可靠性仍然很差 最后期限仍不可预估 与程序员无关性仍不够理想 当需求变更经常仍是牵一发动全身 2010 PISX 7项目管理的两个方面 软件开发模式 它是属于管理层的 是软件工程管理 归口:项目经理 软件架构管理 它是属于技术层的 是软件架构与编码管理 归口:软件架构师(注:架构师

6、不只是管软件架构,同时还有系统架构 ) 先下个结论: 只有敏捷(或者某一天来一个更高级的开发模式)仍然没用! 因为还有很多问题解决不了! 2010 PISX 8基于架构的开发模式 ABDArchitecture-Based Development 本概念最早产生于1999年。 基于架构的开发模式 目标: ABCArchitecture-Based Coding(基于架构编码) AOP面向切面编程(JAVA中的术语) ABD主要面向应用的基本架构 再下一个结论: 架构管理比软件开发模式还要重要! 原因:架构管理最终是在保证软件质量的前提下,保证工期! 一个简单场景: 小团队,小项目,有架构管理,

7、无敏捷,它有可能成功 小团队,小项目,无架构管理,有敏捷,它仍不能成功 2010 PISX 9并非新概念架构的沿革 ABD基于架构的开发模式 这一概念并非新概念。因为,我们一直在为架构奔走: DOC/VIEW(文档/视图结构) UML/MDA(Model-Driven Architecture ) CORBA(通用对象请求体系架构,IDL) WEB SERVICE(网络服务,WSDL) MVC MTS(Multi-Tier System) REST(Representational State Transfer 表述状态转移) SOA(Service-Oriented Architecture

8、 ) 我们时刻忙于一个概念,但没有考虑我们应用的架构 其它编程语言不需要 但PHP没有它不行! 2010 PISX 10模式管理VS架构管理 模式管理 你何时完成 你做出来 实现功能,完成测试,无法保证 与程序员无关性 架构管理 你何时怎样完成 你必须这样做出来 不仅只要求实现,同时限制了你 怎样实现,因而保证了与程序员 的无关性 2010 PISX 11都是PHP惹的祸! 架构管理随团队产生!随应用的复杂而增强。 MFC架构:一切都是类,DOC/VIEW分离。 VB6.0,由向导为你产生合理的软件架构。 VS.net把架构用到的WEB应用之中 JAVASSH+(JSF、Tapestry)的运

9、用是良好架构的保证 rubyRuby On Rails 是良好架构的框架 很明显,架构管理,首先要有好的开发框架。 PHP? zend? symfony? codeigniter? yii? 2010 PISX 12从现有其它语言看架构管理目标 第一:以往是:要有详细的与源程序一致的开发设计文档。 现在的要求是:程序就是文档。即程序的风格一致,具有“ 最高”的可读性! 第二:可维护性,可测试性高,开发周期短, 第三:具有高度的与程序员无关性 第四:最少限度的修改。最高限度的代码重用。 2010 PISX 13现有的架构技术 其它编程语言发展,给我们留下了很多的架构技术 从DOC/VIEW到MV

10、C 从三层架构到多层架构 从数据库操作封装到DMM, ORM新技术的流行:ActiveRecord,TableDataGetway 从面向对象,到设计模式。 我们要问,这些技术有用吗?帮助我们解决了什么问题? 2010 PISX 14关于MVC MVC用一个标准实现完全面向对象,从而实现与程序员 无关性 把用户界面实体和其对应的代码分开。 用户界面实体:即是视图VIEW 对应界面实体的代码实体,使用事件映射,实现事件驱 动模型。这个对应视图的代码即是模型Modal 你如果会JAVA SSH,或VS.NET,你会发现,你只能编写这样的模 块 而实现事件映射的,则是控制器Controller。 这

11、就是人们所说的MVC。 2010 PISX 15在MVC基础上的编程规范 在MVC基础上的编程规范简易的规范能够更进一步实现 代码与程序员的无关性。 MVC所有模块均是面向对象模式的类。完全面向对象,则实现了第一层次的 代码与程序员的无关性 在此基础上,只要规定: 每个类都是单一职责的 每个函数都是单一输入输出的 于是,则更加进一步保证了代码与程序员的无关性 注意:MVC可以实现完全面向对象,非面向对象,也可以做到MVC,这里不 是把MVC当成目标,而是把完全面向对象作为目标。同时,成熟的MVC架构 ,应当是符合IOC模式的。 2010 PISX 16关于DMM、DDD DMM把纯数据操作与业

12、务逻辑分隔成不同的输入输出单 元,进一步简化代码,增强可读性,可维护性,可扩展性。 DMM是指领域模型(Domain Modal)。DDD则是Domain Driven Development,领域驱动设计 MVC实现了最早的三层结构:用户层,逻辑层,数据层。 但数据层仍包括业务逻辑与数据访问。于是人们想到了进一 步分开。即有了现在的多层结构。 纯数据访问很简单,在PHP中,你可以直接使用ADODB。 但现在人们为什么要用propel或者doctrine? 因为我们确实需要DMM,DDD 2010 PISX 17DDD提供了什么? DDD的目标,是处理系统业务逻辑。通常,DDD把业务逻辑封装为

13、:实体值对象规侧服务模块聚合工厂资源库本质上,将复杂的业务领域使用规范的,或遵循一种 标准的编码方式来实现。其根本的目标,是可扩展 ,易变更,易维护。 2010 PISX 18关于ORM ORM,抽象数据操作类上面,再增加一层更具体的公用操作 代码。 数据层实现DMM的方式,通常是通过ORM实现的。 ORM是指 Object Relation Mapping,即对数据库数据实现对 象关系映射。 作为ORM,这一技术最早流行是在JAVA中,Hibernat是JAVA 中用得最多的ORM框架。通过Struts, Spring, Hibernat 即我们 常说的JAVA的SSH构成了JAVA面向大型

14、应用的框架。 PHP则是propel与doctrine最为有名。而doctrine属后起之秀。 但随着ROR冲击,ActiveRecord与TableDataGetway架构被引 入到了PHP中,但PHP仍是相对落后。 比如,RUBY中,现在有更先进的DrySql,这在PHP中至今仍没 有。 2010 PISX 19为什么要ORM? 数据库操作,需要有大量的CRUD。 只要有CRUD,就需要拼装SQL语句。 ORM把CRUD变成通用模块,于是,业务逻辑与纯数据操作 就能分开。 通过这一方式,开发中就可以省去大量的编码。 任何开发框架的最基本的目的, 就是让你开发时少写编码 2010 PISX

15、20关于设计模式 设计模式让核心代码更加松耦合。同时增加易用性与可扩展 性。 例如,一些PHP框架中提供了APP,或APPLICATION类。实际 上它常常是一个聚合模式的类(比如使用FACADE模式)。 不仅方便使用,同时使得开发的代码规范、简单! 我们清楚:大型应用必不可少的有:Session,Logger, ErrorHandle,it18n,Validator,Filter 一些框架中就是用相关模式,将其聚合到了APP之中。为用 户开发提供了极大的方便。 2010 PISX 21框架要还是不要? 不仅需要框架,而且要的是好框架。证据: JAVA有SSH +(JSF 、Tapestry) 就是框架模式,(VC最早的MFC就是框架) RUBY的成功,就是ROR框架的成功 对于程序员: 你说了不算编程规范太多,他不执行的! 程序说了算所有程序,他都是要调通的! 框架比编程规范还要有效! 结论: 架构管理,如果能借助一个好的框架,则相当方便。 但是:PHP框架选用,则是相当困难的一件事情 2010 P

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 工程造价

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号