1什么是架构
作为名词:将产品分解为一系列组件,模块和交互
作为动词:理解你需要构建什么,设定愿景以便于进行构建和作出恰当的设计决策
2架构的种类
太多了,随便列举一些,基础设计架构,安全架构,网络架构等,那么他们都有什么共同点呢,那就是都有结构和愿景
3软件架构是什么
应用程序架构:关注点为应用程序,通常包含程序解构为类和组件,确保正确使用设计模式,构建或框架等。通常只考虑单一的技术栈(比如Java,微软.NET等)。应用程序架构着重考虑软件和代码组织
系统架构:可以看作是更大规模的应用程序架构,从组件和服务到子系统等更高层次的抽象,还关注互操作性与环境中其他系统的集成等。
软件架构:从代码结构到成功部署,与一个软件系统重要元素相关的所有东西就是软件架构。
企业架构:企业架构更看重如何在整个组织中更好的利用技术,而无需实际介入这些技术的工作原理。企业架构需要更高层次的抽象,这关乎广度而非深度,关于战略而非代码
4敏捷软件架构是什么
敏捷方法:快速行动,拥抱变化,持续交付,接收反馈,不一而足。
首先理解敏捷,敏捷是相对的,是按时间来衡量的。
好的架构带来敏捷,至于是否需要敏捷那么需要理解组织或业务变化的速度是否需要这样的架构,不同的架构所带来的复杂度是不同的。
5架构对上设计
设计:创建一个解决问题的方案
所有的架构都是设计,但并非所有的设计都是架构(范围上:设计>架构)。按照这个逻辑来看,只有重要的设计才是架构,其他的都是设计。
6软件架构重要吗
是的。好处很多,减轻系统风险,易维护,易拓展,清晰的愿景和线路图等。
这里我觉得再向上一层看就是关注点分离这个意思,各个功能/模块都独立的完成自身关注的部分,很清晰/优雅
总结:本章介绍了软件架构的一些基本概念,名词,关系等。让我们对软件架构有了基本的了解。