向架构师进军-->可重用架构资源
如果你对项目管理、系统架构有兴趣,请加微信订阅号“softjg”,加入这个PM、架构师的大家庭
软件架构有三个主要来源:拿取、方法以及直觉。拿取也就是可重用资源。对于一个标准的系统而言,可能包含80%的拿取、19%的方法和1%的直觉。而崭新的系统则包含30%的拿取、50%的方法和20%的直觉。由此可见,拿取在软件架构中的重要性,本节我来带领大家了解可重用架构资源。
一个可重用资源可以代表一个可重用需求(在不同系统里反复出现的需求)、可重用的解决方案元素(一个架构模式或者可重用代码)、可重用测试、可重用的方法等。可重用资源减少了架构师必须关注的事情的数量,使他们不必再做无用功,因此可重用资源会对项目的时间计划、成本和交付系统的质量产生重大的影响。一个成功的架构师通常是懂的可重用资源的人。
对于架构资源来说,它分为开发期资源和运行期资源。其中开发期资源包括开发方法、架构风格、架构机制、模式、参考模型和架构决策,而运行期资源则包括现有的应用程序、应用程序框架和组件库。开发期资源和运行期资源的元模型如下图所示。
开发方法
开发方法包括最佳实践和相关的指导、技术以及标准,还有与创建工作产品相关的可重用元素,如模板和样例。我们对开发方法的重用通常是指某些自动化的适当工具,如建模工具Rose、编译器Eclipse、调试器RestClient等。
架构风格
架构风格定义组件和连接器类型的词汇及它们如何进行组合的一组约束。架构风格整体应用于系统。架构风格可以指面向服务的架构(SOA),客户端-服务器模型,管道和过滤器模型等。
架构机制
架构机制代表经常遇到的问题的共同的具体解决方法。持续机制、错误记录机制、通信机制和购物车都属于架构机制。
模式
模式是在给定的上下文中针对一个常规问题的一个常规解决方法。模式的范围非常广,包括需求模式、架构模式、设计模式、编程模式、测试模式、项目管理模式、方法模式和组织模式等。
对架构模式的重用例子有基于电子商务的IBM模式,基于金融系统的IBM模式等。对与设计模式的重用主要是对经典的Gof设计模式的重用。
参考模型
参考模型是一个特定关注领域的实体、它们的关系和行为的一个抽象表示,它通常为更具体的元素的开发形成概念基础。
参考模型的例子有很多,比如业务模型、信息模型和术语表等。参考模型最典型的一个例子是IBM的保险应用架构(IIA,Insurance Application Architecture),这个模型提供了代表保险行业普遍使用的最佳实践的200多个业务流程和700个独立的业务活动。
架构决策
架构决策是关于一个软件系统整体或它的一个或多个核心组件的刻意设计决策。这些决策决定系统的非功能特性和质量指标。
把架构决策看作是可重用资源,是一个正在形成的领域,目前支持这类资源的方法和工具也相对不成熟。
现有的应用程序
任何现有的应用程序都是高可重用的资源。这些应用程序通常是指遗留应用程序,没有经验的架构师把遗留应用程序看作是要回避的东西而不是真正的有价值的资源。
当我们把现有应用程序集成到架构中时,这项工作的主要精力在集成而不是定制开发,重用的水平明显提高。这种集成有时候是指遗留集成或企业应用集成(EAI)。
封装的应用程序
封装的应用程序是提供很多能力(和重用)的一个粗粒度的商业化成熟产品,如一个客户关系管理(CRM)应用程序或企业资源计划(ERP)应用程序。Siebel和SAP是典型的封装应用程序的例子。
如果封装的应用程序占待开发系统的很大一部分,需要定制的开发量就会显著减少,精力会移动到封装应用程序的配置和集成上。
应用框架
应用框架代表一个应用程序的特定领域的部分实现。应用框架的范围非常广阔,它可以指完整的平台,如J2EE和.NET;也可以指一个特定的领域,如数据访问(Hibernate)或用户界面(JSF、ASP.NET)。
本节只是基于可重用架构资源的分类介绍,并对其中的关键概念做了简单介绍。稍后,我将在案例方面介绍可重用架构资源及其他方面的关于架构的设计。
如果你对项目管理、系统架构有兴趣,请加微信订阅号“softjg”,加入这个PM、架构师的大家庭
向架构师进军-->可重用架构资源的更多相关文章
- 向架构师进军--->系统架构设计基础知识
假设你对项目管理.系统架构有兴趣,请加微信订阅号“softjg”,增加这个PM.架构师的大家庭 在解说系统架构设计之前,有必要补充一下架构相关的概念,因此本博文主要讲述架构.架构师和架构设计等相关的概 ...
- 向架构师进军--->系统架构设计基础知识
如果你对项目管理.系统架构有兴趣,请加微信订阅号"softjg",加入这个PM.架构师的大家庭 在讲解系统架构设计之前,有必要补充一下架构相关的概念,因此本博文主要讲述架构.架构师 ...
- WEB架构师成长之路-架构师都要懂哪些知识 转
Web架构师究竟都要学些什么?具备哪些能力呢?先网上查查架构师的大概的定义,参见架构师修炼之道这篇文章,写的还不错,再查查公司招聘Web架构师的要求. 总结起来大概有下面几点技能要求: 一. 架构师有 ...
- 阿里P8架构师深度概述分布式架构
简介 作为一名架构师,我们要专业,要能看懂代码,及时光着臂膀去机房,也能独挡一面!及时同事搞不定问题,或者撂挑子,你也能给老大一个坚定的眼神:不怕,有我在!还能在会议室上滔滔不绝,如若无人,让不懂技术 ...
- Java程序员如何从码农晋升为架构师,你跟架构师的差别在哪里?
一.如何定义架构师 Java架构师,首先要是一个Java程序员,熟练使用各种框架,并知道它们实现的原理.jvm虚拟机原理.调优,懂得jvm能让你写出性能更好的代码;池技术,什么对象池,怎么解决并发量. ...
- 最新咕咆+鲁班+图灵+享学+蚂蚁+硅谷+源码 Java架构师资料《Java架构师VIP课程》
最新的Java架构师完整资料,完整视频+源码+文档. 每一套都是一百多个G的资料,无密. JAVA架构师全套课程 咕泡学院互联网架构师第一期 咕泡学院互联网架构师第二期 咕泡学院互联网架构师第三期 博 ...
- 向架构师进军--->如何编写软件架构文档
如果你对项目管理.系统架构有兴趣,请加微信订阅号"softjg",加入这个PM.架构师的大家庭 问:为什么要编写软件架构文档,它的好处是什么? 答: 有文档的架构有助于不同利益相关 ...
- 向架构师进军--->怎样编写软件架构文档
假设你对项目管理.系统架构有兴趣,请加微信订阅号"softjg",增加这个PM.架构师的大家庭 问:为什么要编写软件架构文档,它的优点是什么? 答: 有文档的架构有助于不同利益相关 ...
- 架构师之路--应用架构的选型和dubbo
这个选型主要决定于系统复杂度.先回顾一下. 1>单一应用架构:对于一个流量很小的网站来说,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本.之前在上家公司做过一个微信公众号的开发就是基 ...
随机推荐
- C#对象比较
http://www.veryhuo.com/a/view/42513.html ReferenceEquals:静态方法,不能重写,只能比较引用,如果有一个参数为null会返回false,不会抛出异 ...
- UVa 12166 修改天平
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...
- jekins构建自动化项目的步骤
填入项目名字 源码管理从git自动拉取代码到工作目录 jenkins拉取代码会到工作空间linux下安装完目录是/var/lib/jenkins/workspace/jeekins-test(可以根据 ...
- 学习css中得与惑
css的学习分享 所学的css知识看多,会看懂.这只是在实践中发现的问题: 一. ???h1比div还大 h1上下有边距 为什么浮动不了 (现不知道) 二. css写了 表现不出来.... ...
- Eclipse
001.自动注释 window--preferences--java--codeStyle--codeTemplate--comments //Types: /** *@author ${user} ...
- 在生产环境记录http请求参数
StringBuilder strParam = new StringBuilder(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + ...
- 打开页面自动打开QQ的javascript代码
今天浏览个网站,发现我的QQ突然自动启动了,起初还以为中病毒了,后来找了半天无果,反而发现了几个无需启动的系统服务进程,遂管之. 后来打开网站的页面的源代码,发现一段javascript脚本,才知道我 ...
- bzoj3051: [wc2013]平面图
Description Input Output 扫描线求出平面图的对偶图然后求最小生成树,用并查集按秩合并,以便查询两点间路径最大权 #include<stdio.h> #include ...
- Activity生命周期(深入理解)
今天看到一篇大神总结Activity的文章,内容甚为详细,特此转载http://www.cnblogs.com/lwbqqyumidi/p/3769113.html Android官方文档和其他不少资 ...
- Hadoop总结篇之一------开篇
从今天开始新的系列:Hadoop总结篇 之前的hadoop学习篇由于是学习过程中随手记下来的一些内容,不具有系统性.所以在这个系列中,将凭着这段时间的研究心得,来记录一些自认为比较重要的东西. 本系列 ...