zoukankan      html  css  js  c++  java
  • 软件架构师如何工作

      通过对“架构漫谈”的阅读,我首次对“架构”有了自己的认识——“一个整体会有很多小任务要去做,这个整体同时也会包含很多个体。如果我们能把整体需要做的种种任务进行划分,划分之后把每块任务一一分配给擅长此任务的个体,个体高效地完成这项任务。而个体之间也会有信息的交流使得彼此之间能有联系体现出一个整体的概念,就像是一个大型机器里的无数个齿轮一样,共同运转,负责各自的任务,在一起便实现了一个大机器的任务。”我对架构产生的原因也有了认识——“沿用我上面说到的整体和个体完成任务的关系。组成这个整体的每个个体所能完成的任务以及完成某些任务的效率是不一样的,因此我们需要对整体需要的大任务进行划分,并且将每块小任务分配给适合完成此项任务的个体,这样会提高总任务完成的效率。也即是,当我们对质量和效率有了更高的要求时,架构便会如上所述的产生了。”同时要能明确“架构解决的是谁的问题”——一个架构要解决的问题一定都是人的问题。比如妈妈让我去买酱油,“买酱油”实际上是一个解决方案,而不是问题,真正的问题是“我们家的人吃饭需要酱油,而我们家没有酱油了”。因此,解决的都是“人”的问题。
      有了上面的认识之后,我逐渐对架构师的工作有了一定的认识。当我对“架构要解决的是谁的问题”这个一方面有了自己的了解之后我认识到了——找出问题的主体是做架构的首要问题。架构漫谈作者王概凯说到——“我们要解决的问题,一定都是人的问题。更进一步,架构师要解决的,基本都是别人的问题,不是自己的问题。再进一步,我们一定要明白,任何找上架构师的问题,绝对都不是真正的问题。为什么呢? 因为如果是真正的问题的话,提问题过来的人肯定都能够自己解决了,不需要找架构师。架构师都要有这个自觉:发现问题永远都比解决问题来的更加重要。”因此,作为一个架构师,首先要可以找到问题的主体,确定了问题的主体之后就要去弄明白主体有哪些问题。关于如何弄明白主体有哪些问题,架构漫谈作者王概凯说到——“常用的方式就是直接面对主体进行访谈,深入到主体的工作生活当中,体验并感受这些问题,甚至通过数据的反馈来定位问题。”当我们发现出现了问题之后,从问题出现的地方一步步深入找下去是可以找出“是谁的问题”的。如果由于时间和能力的问题实在确定不了“是谁的问题”,我们要能及时止损,降低这个问题带来的成本。
      因此,首先,作为一个架构师要可以明确“要解决的问题是谁的问题”进而明确“有问题的主体都有哪些问题”。若可以明确“问题的主体”,我们已经可以很自然地解决大部分的问题了,因为很多时候问题是因为沟通不畅而产生的,这部分的问题当我们弄明白“主体”后,自然而然地就解决了。出去上述类型地问题,还有一些真实存在的问题需要架构师去解决。通过阅读我了解到,这一部分的调整称之为“架构的切分”。
      软件架构师软件系统的核心,其影响久远,并不随着某个软件系统生命周期的结束而终结。我们经常把软件设计看作是为保证软件系统能够按照原来的设想正常运行而在各个环节上采取正确步骤,软件架构所要考虑的问题更夹广泛。架构设计师面临的时诸多相互竞争的因素和需求。软件架构对从事软件开发的组织产生深远影响的范式。在软件开发中,构架和其开发组织相互影响,相互帮助,共同成长、发展。
      对于刚刚接触到软件架构的大学生来说,是没有机会实际组织项目的。所以我们只能通过书本来增长自己的见识与学习别人的经验。书海浩如烟海,没有那一本书籍可以囊括所有知识,所以养成读书的好习惯尤为重要。

  • 相关阅读:
    1.6(设计模式)过滤器模式
    1.5(设计模式)单例模式
    1.4(设计模式)原型模式
    获取第几周
    前端的一个工具函数库
    纯css实现宽度自适应,高度与宽度成比例
    网站前面的图标
    从url获取参数有中文时会出现乱码的问题
    关于ios使用jquery的on,委托事件失效
    在vue1.0遇到vuex和v-model的坑
  • 原文地址:https://www.cnblogs.com/xhj1074376195/p/14480653.html
Copyright © 2011-2022 走看看