《架构漫谈》阅读笔记一

软件架构师如何工作

  身为软件工程的学生,在上大三以前,我也就是认为软件工程出去了就是编代码,在大一的时候也曾了解过软件架构师这个职业,当时自己只是觉得这个职业非常的高大上。那么现在已经到大三了,大学也马上就结束了,下面让我们来真正地了解一下什么是软件架构师,软件结构式又是如何工作的。

  首先来了解一下什么是架构:

  1、根据要解决的问题,对目标系统的边界进行界定;

  2、并对目标系统按某个原则的进行切分;

  3、根据2,使得这些部分之间能够进行有机的联系,合并组装成为一个整体,完成目标系统的所有工作。

  架构实际上就是指人们根据自己对世界的认识,为解决某个问题,主动地、有目的地去识别问题,并进行分解、合并,解决这个问题的实践活动。

架构的产出物,自然就是对问题的分析,以及解决问题的方案:包括拆分的原则以及理由,沟通合并的原则以及理由,以及拆分,拆分出来的各个部分和合并所对应的角色和所需要的核心能力等。

  接下来了解一下软件架构师:

  “软件架构师是软件行业中一种新兴职业,工作职责是在一个软件项目开发过程中,将客户的需求转换为规范的开发计划及文本,并制定这个项目的总体架构,指导整个开发团队完成这个计划。主导系统全局分析设计和实施、负责软件构架和关键技术决策的人员”。

  从上面这段话我们都能理解软件架构师平时都要做些什么样的工作。软件架构师其实相当于是软件项目管理的主管,他负责设计与构筑公司的系统架构,对系统的重用、扩展、安全、性能、伸缩性、简洁等做系统级的把握。软件架构师还要跟踪架构的使用情况,以保证软件开发符合制定好的系统架构。他还负责进一步改进系统架构,以符合公司发展的业务要求。软件架构师还得给设计人员和开发人员提供系统架构的培训。这些就是一名软件架构师的职责目标。

  软件架构师的主要任务不是从事具体的软件程序的编写,而是从事更高层次的开发构架工作。他必须对开发技术非常了解,并且具有良好的组织管理能力。可以这样说,一个架构师工作的好坏,决定了整个软件开发项目的成败。其实,软件架构师的工作职责可以分为三点。首先最重要的是负责软件项目的测试,也就是根据详细设计书,编写测试单元的用例,然后根据软件测试用例,搭建软件测试环境,进行软件测试,最后整理软件交付件,参与软件的交付工作。我们都知道软件架构师,是对一个项目整体进行架构设计的,所以如何对自己所设计的架构的系统的重用、扩展、安全、性能、伸缩性、简洁等做系统级的把握,就需要软件架构师对软件项目进行测试以发现体系结构中的优缺点。然后软件架构师还要负责软件项目的实施。也就是负责编制使用说明书,还有负责针对发现的问题或用户的要求,进行沟通并确定问题解决办法。我们在上个学期的软件需求分析的课程中,就已经学习了,什么是用户需求,所以在软件项目实施的过程中,用户的体验很重要,所以作为一名软件架构师,需要发现客户在使用的过程的一些问题,并对自己的架构或者说是整个项目进行改进。最后软件架构师还应该负责软件系统技术支持。也就是说软件架构师还应该负责软件系统的运行监控,负责软件系统日常运行过程中的技术支持,并负责解答用户疑问,还要参与软件系统日常运行过程中的问题排除并收集用户反馈的软件问题及改进需求。其实这一点也就是对上述两点的一个总结。

  记得上学期上课还看过《梦想改造家》中的一名著名建筑师王平仲,其实我觉得软件架构师就像一名建筑师,他的主要工作不是从事代码的编写,而是负责这个工程的开发架构工作。

  软件的本质,其实就是通过把人类的日常工作生活虚拟化,减少成本,提升单个人员的生产力,提升人类自己的利益。软件工程师的职责在这个浪潮中,不堪重负,自然而然就分拆为不同的角色,形成了一个独特的架构体系。这一切的背后,仍然是为了提升人类自己的利益,解决人类自己的问题。

  软件架构师,就是为了更好地完成这个过程。概括来说,软件架构师是一个“问题解决者”,他应该善于发现问题,并能发现是谁的问题,进而分析问题,解决问题。 在解决问题中他能够做好架构的切分。

原文地址:https://www.cnblogs.com/qianmo123/p/12331948.html