读软件架构漫谈有感

     一、

     读了软件王概凯老师的架构漫谈后,对软件架构有了自己的一定程度上的理解,首先架构的定义,我在老师的作业上写的是:“架构就是对于一个存在的问题,将这个总的问题进行分析、设计、规划为各个部分工作,部分工作之间建立相关的练习,每个部分完成自己的工作并与其他部分相互结合,使之一个大的问题简化的方法。”,他的核心就是分而治之,将大的问题简单化,进而提升自己的工作效率。对于为什么会产生架构,就像我看到过的一句话:“因为人类的懒,带来了人类科技的进步”,当然这是一个单方面的观点,人类在完成一件事时,无时无刻不在思考着怎样才能更好地提升生活的便利化、自动化,这就产生了对问题更高层面的思考。架构也如此,当人在接触到困难时,因为自身能力、时间或各方面的不足,对于大的、难以实现的问题进行了必要的思考,想要更好的完成目标,就会出现对问题的架构与分析。

    二、

    正如我们所知,我们对问题的思考和架构都是为了解决我们自己的问题,而对于解决问题前提是要对问题本身的概念有一定的了解,这里强调的是对基本知识的熟练。当我们想学一个新的事物时,我们可以知道对于这个新的事物可以解决我们什么问题的话,我们就可以将学习的东西快速、准确的应用在问题上,这对于架构师是非常重要的。对于一个大的项目,准确分析问题、划分问题,才能将效率提升到最大。

    三、

    软件架构师如何准确识别问题,当一个新的项目到来时,将问题一一识别出来,是做项目的第一步,最最重要的一点就是找出问题的主体所在。这就对应了之前所学到的需求分析,当你一点点从用户那里将问题暴露的店找出来后,就会最大程度的减少了风险和成本。用王概凯老师的话总结一下,要正确的认识问题,需要问两个问题:

  1. 这是谁的问题?(架构师思考的”站位”很重要)
  2. 有什么问题?    (需求分析调查出问题所在)

   四、

    实现架构的下一任务就是将任务分配,就像一个原始村庄在首领的带领下分配了狩猎和各种相关任务的小组,进而将每个人的能力最大化,然后进行相互互换利益,这样每个人都得到了更多自己想要的。而分配任务也有原则,文中是这样说的:

       1.必须在连续时间内发生的一个活动

       2.切分出来的部分的负责人,对这个部分的权利和义务必须是对等的

       3.切分出来的部分,不应该超出一个自然人的负载

       4.切分是内部活动,内部无任怎么切,对整个系统的外部应该是透明的

       5.确保每个人都有自己的利益

     作者的解释很容易理解,当我们把这些带入到家庭体系结构中就会很好理解了,家庭里每个人坐着自己的工作,进行着利益互换,实现了家庭的成功运行。

  五、

    当然没有软件哪来的软件架构,当时软件的产生就是人们想要创建一个可以模拟人类工作的机器,最初成本很高,之后因为科技的发展,计算机就是一个不用休息的机器,而且成本比人类要低,效率在某些方面比人类高得多,自此流行起来。而软件就是在计算机上把人类的生活模拟化,提供更低成本,更高效率的生活。有的小的软件,结构简单,完成的事情单一,可能一个人就可以制作出来,但有的软件结构复杂,需要很多人同时工作很长时间,这就需要了软件架构师的作用。他需要将软件功能切分,调整每项工作的任务以达到目标的作用。

  六、

    架构师必须有自信和责任心,这是我感觉作为架构师最为重要的一点,当我们接收到项目时,对于用户我们就是服务者,如果对于即将到来的问题自己本身总是存在恐惧的话,我们能得到的东西只会越来越来,我们必须要有足够的自信。那什么是责任心呢,作为软件架构师,我们有足够的权力和义务去领导别人,我们也要积极地去调整各方面的利益关系,当发现问题时,积极思考处理,进而进行有效的软件架构,当然了我们必须有一定的技术基础,来支撑我们的工作需要。

   七、

   架构师如何处理业务与技术之间的关系,其实这就是一个很简单的问题,比如当我想去一个地方,最开始只能步行过去,随后技术产生了,我们可以开车过去,现在技术就解决了这个业务问题(想去一个地方),那么架构呢,架构师就是怎样有效、高效的使用技术,比如我可以先骑车子,再开汽车已达到节省的目的。架构来使用技术以解决业务的问题,所以架构师就要承担起解决业务的责任,提供最好的方案来达到目的。

猜你喜欢

转载自www.cnblogs.com/jhl1234/p/12336366.html