• 浅谈软件架构师的工作


            老师今天在第一节课是要让我们了解如果要做一名软件架构师,我们应该做什么和怎么做。在课堂上,老师通过《架构漫谈》这本书了解什么是软件架构师。软件架构师是软件行业中一种新兴职业,工作职责是在一个软件项目开发过程中,将客户的需求转换为规范的开发计划及文本,并制定这个项目的总体架构,指导整个开发团队完成这个计划。主导系统全局分析设计和实施、负责软件构架和关键技术决策的人员。

          首先,我们先了解什么是架构,所谓架构,实际上就是指人们根据自己对世界的认识,为解决某个问题,主动地、有目的地去识别问题,并进行分解、合并,解决这个问题的实践活动。架构的产出物,自然就是对问题的分析,以及解决问题的方案:包括拆分的原则以及理由,沟通合并的原则以及理由,以及拆分,拆分出来的各个部分和合并所对应的角色和所需要的核心能力等。架构实际上解决的是人的问题,而概念是人认识这个世界的基础,自然概念的认识就非常的重要。根据架构的定义,要做好架构所首先必须具备的能力,就是能够正确的认识概念,能够发现概念背后所代表的问题,进而才能够认识目标领域所需要解决的问题,这样才能够为做好架构打好基础。

         作为软件够诚实或者架构师,我们大部分时间是要去解决别人的问题。“别人”是谁,是只得好好思考的,这才是问题的主体。明白了主体,这个主体就自然会带来很多边界约束,后续问题就能够出来了。由此可见,找出问题的主体,是做架构的首要问题。我们要解决的问题,一定是人的问题。架构师要解决的,基本都是别人的问题,不是自己的问题。任何找上架构师的问题,绝对都不是真正的问题,因为如果是真正的问题,提问题过来的人肯定能够自己解决了。对于架构师来说,发现问题永远都比解决问题来的更加重要。

          在识别出是谁的问题之后,会发现,在大部分情况下,问题都迎刃而解,不需要做额外的动作。很多时候问题的产生都是因为沟通的误解,或者主观上有很多不必要的利益诉求导致的。但是总还有一部分确实是有问题的,需要做调整,那么就必须要有所动作,做相应的调整。这个调整就是架构的切分。切分的原则:情况1是切分的原因,情况2是切分不合理而导致的新的问题,最终还是要回到情况1。

           我们大概了解了什么事架构之后,就应该学会如何运用架构思维,更好的设计和实现软件。软件因为流量增大而分拆成不同的运行单元,在不同的机器上部署所形成的架构,属于软件架构。每个运行单元为了让不同角色的人,比如前端,业务,数据存储等能够并行工作,所分成的代码架构,也属于软件架构。

           架构师是要去平衡别人的利益,甚至会调整别人的利益的。架构师必须是一个组织的领导人,有权利调动这个组织的架构,才能够更好的发挥架构师的作用,更好的把利益的调整落到实处。架构师只能够通过建立某些流程来行使架构师的权利,比如强制架构review,反而会造成很多内部不必要的冲突,最终都会导致这些流程流于形式,得不偿失。架构师必须能够超越对时间的恐惧–也就是说必须具备了一定程度的自信,哪怕是装的,去真正的发现问题的主体,识别真正的问题,并把这个行为变成为自己面对问题的第一反应。

         在了解了软件架构师的工作职能之后,我们还应该明白作为一名软件架构师的工作流程。首先,作为软件架构师要给予商务支持,提供系统解决方案和架构咨询。然后在需求阶段,软件架构师需要和需求分析师一起,参与需求的沟通,协助完成技术/业务咨询和需求模型。在做了需求分析之后,就进入了架构阶段,软件架构师需要进行系统分析和设计,进行系统抽象,设计系统模型,进行技术原型,开发架构原型等,然后在进行了设计之后,他还需要指导设计人员完成详细设计。之后在开发阶段,软件架构师需要指导开发人员按设计实现,解决技术难题。

          架构无处不在,我们在软件体系架构这门课程中,不断学习,不断积累,让自己不断进步,学会如何架构自己的未来。

  • 相关阅读:
    用记事本编写一个Servlet项目
    Servlet开发(一)
    41、java与mysql乱码的问题
    40、JDBC相关概念介绍
    mysql-5.7.12-winx64安装版配置、使用
    39、集合线程安全问题
    38、各Set实现类的性能分析
    电脑取随机数是什么原理,是真正的随机数吗?转自知乎.
    创建Car类,实例化并调用Car类计算运输的原料量是否足够
    用Random类输出验证码
  • 原文地址:https://www.cnblogs.com/xxdcxy/p/8522980.html
Copyright © 2020-2023  润新知