应用程序架构指南 第一部分 第一章 应用程序架构基础



 软件架构基本概念
 

软件架构通常被描述为组织或系统的结构,而系统是一个完成特定功能或功能集合的组件集合。换句话说,架构的重点是组织组件以支持特定功能。这种功能的组织被称为将组件分组以纳入到关注领域。 

为什么我们需要架构? 

像任何其他复杂的结构一样,软件必须建立在坚实的基础。没有考虑关键情景,没有为共同的问题做设计,或没有充分意识到关键决定带来的长期后果,都可以使你的应用程序处于危险之中。现代的工具和平台有助于简化应用程序的构建任务,但它们并没有取代根据您的具体情况设计应用程序的需求。拙劣的架构暴露的风险包括软件是不稳定的,不能支持业务需求,或者部署到生产环境时,应用程序甚至可能无法工作。 

构思软件架构时,考虑下面的高层次的关注:

>应用程序会怎样部署到生产环境?

>用户将如何使用该应用程序?

>质量属性要求是什么,例如安全性,性能,并发性,国际化和配置?

>架构的趋势是什么,是现在还是部署后,可能影响应用程序?

架构的目标

应用程序架构寻求在业务需求和技术需求之间构建一个梁,通过理解用例,然后想方设法在软件中实现这些用例。架构的目标是确定影响应用程序结构的需求。良好的架构通过构建一个技术解决方案降低业务风险。优秀的设计具有足够的灵活性,以便能够处理,随着时间的流逝,将发生在硬件和软件技术,以及用户场景和需求上的自然的变化。架构师必须考虑设计决策,质量属性之间的内在权衡(如性能和安全性),以及需要讨论用户,系统和业务需求的权衡的全部影响。

记住,架构应该:

>暴露系统的结构,但隐藏实现的细节。

>实现所有的用例场景。

>尝试解决各种各样的利益相关者的关注问题。

>既处理功能需求,也处理质量需求。

架构方法

有任何架构必须解决的关键决策,不管架构方法。至少,你必须确定您正在构建的应用程序类型,将要使用的架构风格,以及你将如何处理横切关注点(cross-cutting concerns)。本指南中,我们为框架使用了架构基准,通过必须在架构中处理的不同领域。架构基准显示在下面的图表。 



 

除了架构基准之外,可以使用下面的方法来帮助确定您的体系结构。第一步是确定你计划构建的应用程序类型。接下来,您必须了解应用程序将被怎样部署。一旦你知道您正在构建的应用程序是什么类型,和如何部署,你可以开始往下考虑架构,以便确定您将使用的风格和技术。最后,你必须考虑如何将质量属性和横切关注点(cross-cutting concerns)纳入您的系统设计。 

 

横切关注点表示设计中的关键领域,它不关联于应用程序中某一个具体的层。例如,您可能希望在表示层,业务层和数据访问层缓存数据。关键的横切关注点: 认证,授权,缓存,通信,异常管理,检测和日志。 

设计架构

创建一个灵活的架构设计,考虑以下问题:

>什么是架构的基础部分,如果它们出错了,就代表着最大的风险?

>架构的哪部分,最有可能发生变化,或哪部分的设计,可以推迟到后来有很小的影响再处理?

>什么是您的主要假设,以及你将如何测试它们?

>哪些条件可能需要你重构设计?

关键架构原则 

设计架构时,考虑以下主要原则:

>持续改变。只要有可能,设计应用程序使它可以随时间发生改变以处理新的需求和挑战。

>分析模型并减少风险。使用威胁模型来理解风险和脆弱点。在适当情况下,使用设计工具和建模系统,如统一建模语言(UML)。

>模型和视图是沟通和协作工具。设计原则和设计变更的有效的沟通对好架构是至关重要的。使用模型和其他可视化的工具有效的沟通设计,使设计变更快速沟通。

>确定关键工程决策.使用本指南中的架构框架,理解关键工程决策和最常出现错误的领域。在第一时间获得这些关键决策,使该设计更为灵活,并不太可能被变化破坏。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值