看的一个视频笔记,讲的比较抽象,感觉浪费了一个小时,希望我以后来看会有另一种感觉。
一、逻辑架构
二、物理架构
三、系统架构
软件架构的表现形式:
01.实施视图 02.配置视图 03. 进程视图 04.逻辑视图 05.用例视图
软件架构的具体作用
1.和软件相关的人都是谁?
2.软件的目标是什么?
3.软件使用了什么技术?
4.软件有哪些风险?有没有应对方案? 扩容风险,单点风险,数据库风险
5.软件有哪些限制条件?
6.如果可以重做,你会做哪些不同的选择?
软加系统的价值
行为价值--------------架构价值
常见的软件架构
1.分层架构 2.事件驱动架构 3.微核架构/插件架构 4.微服务架构 5.云架构
分层架构的优点:
结构简单,分工明确,天然适合大部分的业务需求
缺点:
1.发生变化,改动麻烦,修改一个地方可能牵扯到很多地方,需要重新部署,对实际发布不友好
2.软件升级的时候需要整个中断(例如做扩容的时候,需要停掉服务,完成扩容后重新启动服务)
3.当用户大量增加的时候,需要对每一层进行修改
事件驱动架构:
优点:
天然是分布式架构,性能好,可以任意产生扩容
缺点:
异步编程,对编程有功底要求
插件架构:
优点:扩展性好,渐进式开发
缺点:很难做分布式,开发难度大,设计到与内核的交互
微服务架构:
云架构:
如何设计一个架构:
业务架构,应用架构,技术架构,数据架构。