FS全栈计划

软件架构

2020-03-24  本文已影响0人  MaxZing

架构是系统的基本组织结构,涵盖包含的组件与组件之间的关系,组件与环境的关系,以及指导架构设计和演进的原则等内容。

方面 见解/影响 例子
根倨架构来选抒能对系统进行优化的质量属性 系统的可扩展性、可用性、可修改性、安仝性等方而取决于在选择架构时的早期决策和权衡。经常会牺牲一个属性来提升另—个属性 必须使分散式架构来开发针对可扩展性进行优化的系统,其中元素不紧密耦合。例如:微服务、代理
架构促进早期原型设计 定义架构以允许开发组织尝试构建早期的原型,这为系统的行为提供了宝贵的洞察视角.而无需构建完整的系统 许多组织会构建服务的快速原型——通常只构建这些服务的外部 API,而忽视其余的行为。这使得早期集成测试可以执行,也能更早发现架构中的交互问题
架构允许系统以组件化方式构建 具有明确定义的架构允许重用和组合现有的易于使用的组件来实现功能,而无需从头开始实现所有内容 为服务提供可立即使用的构建块的库或框架技术。
例如:像 Django/RoR 这样的 Web 砬用程序框架.以及像 Celery 这样的任务分发框架
架构有助于管押系统变更 架构师会根据架构分离出在修改中受影响的组件和不受影响的组件。这有助于在实施新功能、性能修复等操作时将系统的变更保持在最低限度 如果正确地实现了架构,对于系统数据库读取的性能修改.只需要对数据库和数裾访问层(DataAccessLayer,DAL)进行修改即可,根本不需要触及应用程序的代码。这就足大多数现代 Web 框架的构建方式

一个定义良好的架构只会捕获那些构建系统核心功能所需的核心结构元素,这些核心结构元素一般会对系统有持久的影响,绝不是像流水账似地记录系统每个组件的所有细节。

系统的架构最好以自顶向下的结构描述,它也经常作为任务分解结构的基础。

企业架构师考虑一个组织或机构的整体业务和组织策略,并应用架构原理和实践来指导该组织或机构通过业务、信息、流程和技术变更需求执行策略。

技术架构师:技术架构师关注一个组织或机构使用的核心技术(硬件、软件、网络)。如安全架构师、信息架构师等。

系统架构师:系统架构师通常具有较高的技术关注度和较低的策略关注度。

解决方案架构师:解决方案架构师通常跨越策略与技术关注点、组织与项目范围,处在中间位置。

架构质量,一般从以下几个属性考虑:

总结:
简介了软件架构和设计的区别,架构的特点与架构师的职能,以及架构质量属性

参考文献:
《Software Architecture with Python》 2018. 软件架构. 北京: 机械工业出版社.


如有错误,请不吝指正。谢谢
本文为个人读书笔记,转载请注明出处:
https://xzing.github.io/
https://www.jianshu.com/u/4915ed24d1e3

上一篇下一篇

猜你喜欢

热点阅读