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

    架构漫谈是由资深架构师王概凯Kevin执笔的系列专栏,以Kevin的架构经验为基础,逐步讨论什么是架构、怎样做好架构、软件架构如何落地、如何写好程序等问题。阅读了架构漫谈九篇博客,对于软件架构有了一些简单的了解。

    什么是架构?

     

    架构在维基百科上有着很复杂的定义,从这个定义上看,架构好像是一个过程。为了讲清楚这个问题,我们需要了解为什么会产生架构。根据博客来说,什么是架构,就是:

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

    2.并对目标系统按某个原则的进行切分。切分的原则,要便于不同的角色,对切分出来的部分,并行或串行开展工作,一般并行才能减少时间。

    3.并对这些切分出来的部分,设立沟通机制。

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

    为什么要出现架构?

    首先是社会的发展。最开始的时候,每个人都是独立的个体,自己搞定自己的事情。随着社会的发展,开始出现了群居、合作、分工,当分工发生后,实际上每个人的生产力都得到了提高,因为做的都是每个人擅长的事情。同时,整个人群的生产力和抵抗环境的能力也大大提高,人们通过相互交流、交易获得了需要的全部。通过这个例子来看,把一个整体切分成不同的分工,由不同角色来完成这些分工,并通过建立不同部分相互沟通的机制,使得这些部分能够有机的结合为一个整体,并完成这个整体所需要的所有活动,这就是架构。也可以归纳出架构产生的动力:

    1.必须由人执行的工作。

    2.每个人的能力有限(每个人都有自己的强项,个人的产出受限于最短板,并且由于人的结构限制,同时只能专注于做好一件事情。)

    3.每个人的时间有限(为了减少时间的投入,必然会导致把工作分解出去,给擅长于这些工作的角色来完成,见2,从而缩短时间)

    4.人对目标系统有更高的要求(如果满足于现状,也就不需要进行架构了)

    5. 目标系统的复杂性使得单个人完成这个系统,满足条件2,3(如果个人就可以完成系统的提高,也不需要别的人参与,也就不需要架构的涉及)。

    架构解决谁的问题?

      一个问题,不同的人的回答不尽相同。做架构的时候,不同角色的沟通会出很多问题,那么结果也就可想而知了。架构实际上是以人的认识为主体去讨论的,解决的都是人的问题。

     

    什么是软件体系结构?  

      软件因为流量增大而分拆成不同的运行单元,在不同的机器上部署所形成的架构,属于软件架构。每个运行单元为了让不同角色的人,比如前端,业务,数据存储等能够并行工作,所分成的代码架构,也属于软件架构。

    架构师又是什么东东?

      当我们所做的工作是处于社会的分工的一环,需要帮助别人解决问题,并且按时解决别人的问题成为我们自己的问题的时候,我们就有了时间压力,潜意识里会自然而然的有一种对时间的恐惧。而当我们把完成别人工作当成自己的最大利益,这个对时间的恐惧自然就会消失,这个时候就自然而然的开窍了,就知道怎么去发现问题了。只有做到这一点,才能在自己所服务的领域建立起自信,成为一个合格的架构师。架构师是要去平衡别人的利益,甚至会调整别人的利益的。架构师必须是一个组织的领导人,有权利调动这个组织的架构。架构师必须能够超越对时间的恐惧–也就是说必须具备了一定程度的自信,哪怕是装的,去真正的发现问题的主体,识别真正的问题,并把这个行为变成为自己面对问题的第一反应。

      读了这些博客,只是了解了一些知识,甚至没有了解到怎么真正的去成为一个架构师,感觉还是全身心的投入软件的制作,多多的了解各种知识。希望在接下来课程的学习中可以学到更多有用的知识。

  • 相关阅读:
    40种网页常用小技巧(javascript)
    伸缩效果
    震动的超链
    一个模仿图片透明渐变做的表格颜色渐变效果
    荧 光 效 果
    用LoadRunner编写socket应用的测试脚本
    突发奇想写的一篇小科幻(如果可以叫做科幻的话)
    《软件性能测试过程详解与案例剖析》一书在Chinapub上8月份的销售排名持续上升
    建立高效的测试团队
    探索性测试(Exploratory Testing)概述
  • 原文地址:https://www.cnblogs.com/fylove/p/8529108.html
Copyright © 2011-2022 走看看