架构师是怎样炼成的
成长的路上是孤独的,学会独立面对,是人生的必修课
什么是架构师
软件架构师是软件行业中一种新兴职业,工作职责是在一个软件项目开发过程中,将客户的需求转换为规范的开发计划及文本,并制定这个项目的总体架构,指导整个开发团队完成这个计划。主导系统全局分析设计与实施、负责软件架构和关键技术决策的人员。软件架构师应能迅速抓住问题要害,并做出合理的关键决定的能力,具备战略性和前瞻性思维能力,善于把握全局,能够在更高抽象级别上进行思考。
什么是软件架构
软件结构是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各方面的设计(维基百科)。
架构是由架构元素和元素间关系组成的,元素间的关系有静态关系、动态关系;系统会有一种或者多种架构,而架构需要由架构文档来体现,架构文档由架构视图来组成,架构视图反映的是相关方关注点的具体展现。
当我们做架构之前,我们首先要知道的是我们的架构是为谁而做的,也就是图中的相关方(需要架构设计的人如:老板、产品、业务方、技术)。当我们面对不同的受众的时候要用不同的表现形式来展示你的架构设计,用相关能够理解并且明白的方案讲述你的架构。
架构师的主要职责
编写架构设计文档
开发编程框架
重构软件代码
设计系统架构
技术选型,解决技术使用中存在问题
性能优化
模块分解
系统安全与高可用
技术创新 (拥有技术前瞻性了解新的技术并实践)
沟通管理
...
UML建模
什么是模型?
模型是一个系统的完整的抽象。人们对某个领域特定对的问题的求解及解决方案,对他们的理解和认识都蕴含在模型中。
通常,开发一个计算机系统是为了解决某个领域特定的问题,问题的求解过程,就是从领域问题到计算机系统的映射。
为什么要建造模型
建造传统模型的目的
a.为了证明某件事物能否成功(用模型模拟)
b.因为模型的成本远远低于实物
建造软件模型的目的
a.为了与他人沟通
b.为了保存软件设计的最终成果
如何建模
架构师常用的建模语言就是UML统一建模语言,UML图分为两大类分别为静态图(用例图、类图、组件图、部署图)和动态图(序列图、活动图、状态图),而我们只需要掌握其中这七种就足以应付工作中的case。在软件开发的三个阶段中需要的UML图如下所示:
需求分析:用例图、状态图、时序图、活动图
概要设计:部署图、时序图、活动图、组件图、类图(高阶)
详细设计:类图、时序图、状态图、活动图、协作图
在软件设计的每一个阶段用不同的模型更加精准的描述整个软件系统的架构和设计。每一种图在不同的阶段反应出来具体的模型可能是不一样的,正所谓架构是和相关方关联的,比如同样是活动图在需求分析阶段和该要设计阶段还有详细设计阶段的落地展现出来的样子是不一样的。在哪个位置就要坐着与之对应的工作。所以同一个模型图在不对的阶段的职责是不一样的。
老板们辛苦一下点个关注被
版权声明: 本文为 InfoQ 作者【彭阿三】的原创文章。
原文链接:【http://xie.infoq.cn/article/a0654d204a22c63615ab7d29b】。
本文遵守【CC BY-NC】协议,转载请保留原文出处及本版权声明。
评论 (2 条评论)