一、定义
软件架构:可以简单理解为满足干系人关键诉求的一系列宏观决策。

二、软件质量属性
软件架构师大部分时间在解决以下产品质量模型中的质量属性问题。

三、程序员和架构师区别
从思维逻辑方面来看,
程序员从功能和业务逻辑方面去想问题。
架构师更多的从质量属性和约束方面考虑问题。
架构师相较于程序员,会向功能需求方面倾向多一些。

从视野角度来看,
左侧为程序员的视角,更多关注与目标软件的设计与开发;
右侧为架构师的视角,视野更宽,要兼顾技术发展与行业发展。

从输出物的角度来看,程序员更多的是输出程序源码;架构师是输出方案。

从工作流程上看,程序员的工作是线性工作流程;而架构师的工作则是放射型的内容居多,要兼顾技术与沟通等方面的工作,工作经常会反复,迭代式进行。

四、架构设计工作的过程要素

五、架构师的知识和技能体系




六、如何发展架构能力


七、学习路径
记忆背诵 → 理解 → 应用 → 创造、分析、计算、评价
八、常见的软件架构模式
所有的软件方法学知识,其最终的目的都是为了降低软件复杂度。
所有的软件工程反面的知识体系,其最终目的都是为了提高可预测性。

文章探讨了软件架构的定义,强调其关注质量属性和干系人的诉求。架构师与程序员的区别在于思考角度和视野,架构师需兼顾功能、质量、技术趋势和行业动态。工作流程上,架构师面对的是非线性的、涉及多方面的工作。文章还提到了架构设计的关键要素、架构师的知识技能体系以及成长为架构师的学习路径,旨在降低软件复杂度和提高可预测性。

2791

被折叠的 条评论
为什么被折叠?



