paulwong

读书笔记-架构

一、什么是架构

架构就是系统的结构,是一种机制。

架构就是系统的结构。你建立架构来解释将来系统的结构和这种结构如何支撑业务需求和非功能需求。你可以定义这种结构作为一种机制,系统如何用来解决一些普遍问题。这个机制有能力以统一的方式支持业务需求。例如,持久化机制必须被系统统一使用,这意味着,任何时候系统如果要做持久化,必须以同样的方式。将持久化机制定义后,你就提供了一种默认的所有设计人员必须遵循的方式。这些架构体制,如持久化、分布式、通讯、交易管理和安全就是你建立系统的基础,而且必须得建立的。

什么是建立架构呢?就是你建立的符合系统中规定的非功能需求的基础。例如,系统中说明对用户的反应时间不能超过3秒,你建立的软件基础就必须符合这个需求。这同时也意味着你已经给设计人员一个允许他们设计和编码来建立系统时而不必担心这些非功能需求。一个关于架构中比较真实的问题是:架构的建立什么时候停止,设计流程什么时候开始?对于每个系统没有最终答案。这个架构和设计的问题可以被总结起来和控制。架构定义了将会建立什么,设计了你怎样建立系统的外框。一个或少数人关注全景来控制架构的流程,其他多数人关注如何实现全景是设计所要控制的。架构师设计架构,设计团队在这个架构中用它来达成系统的全部目标。因此,如果你正在为有经验的设计人员建立架构,你就不必象为缺少经验的设计人员那样提供尽可能详尽的文档。

当你在建立架构来没跟系统的非功能需求时你通常不会有无限制的资金来购买硬件、软件和开发资源,因此你必须使系统能在有限的预算中很好的运行。例如,当你只有一台电脑来支撑内部用户时,你怎样建立可拓展的系统来满足互联网时代?没有资金来购买软件产品时,你怎样建立架构?这些就是架构师们建立系统架构时面对的问题的例子。你会面临很多困难的选择,和做很多取舍来解决这类问题。由于你作了取舍,很重要的是取舍你必须用文档说明,使得开发人员能够理解为什么要作这个取舍,这样你就不会收到来自开发人员的问题了。如果你决定使用ORACLE在系统中,你就必须用文档注明为什么要选择ORACLE而不选其他数据库。你建立架构时的取舍关注非功能需求。大多数系统没有足够的资金来满足所有的非功能性需求。作为架构师,你就必须平衡非功能需求和预算之间的矛盾。如果要做24*7的高可用光是购买硬件花掉了你全部的预算,那就是说没有多余的钱来购买应用服务器来维护非功能需求了,你就必须调整你的软件架构了。调整依赖于你正在建立架构的系统和与投资人的关系。

二、架构师角色

架构师必须具有以下特点。

架构师必须是一个全面的,成熟的,有经验的,受过教育的,学习迅速的,一个领导者,很好的沟通,和在必须时候作出困难的决定。全面的是指,架构师必须具有业务和问题领域的工作知识。他们能够通过经验和教育获取这些知识。另外架构师也必须具有广阔的技术知识。一个好的架构师能够评估所有可能的方案不管使用何种技术。

架构师要做些什么?架构师与资深开发人员有什么不同?这些都是一些常问的问题。设计师考虑一个用户按下一个按钮时将会发生什么,架构师则考虑成行千上万的用户按下一个按钮时将会发生什么。架构师要减轻和系统相关的风险。技术风险可能是未知的、未证明的或未测试的。风险来自非功能需求,有时也可能来自业务需求。不管哪种风险,都很容易地尽早地在建立架构阶段指出这个风险。

架构师必须领导开发团队保证设计师的开发人员根据这个架构一构建系统。关于取舍必须作出困难的决定,作为领导者,就是作决定的人。为了领导项目团队,架构师必须是一个好的沟通者,包括读和写。通常是通过虚拟模型和群组讨论。如果架构师不能很好的沟通,设计师和开发人员也许不能正确地构建系统。

posted on 2012-07-19 16:19 paulwong 阅读(423) 评论(0)  编辑  收藏 所属分类: SOFTWARE ARCHITECTURE


只有注册用户登录后才能发表评论。


网站导航: