读架构漫谈九篇博客有感
通过阅读架构漫谈的九篇博客,对于架构来说,并没有一个让所有人都认可的定义,并且架构在软件发明时的N年之前就已经出现了,它是伴随着建筑产生的,在Wikipedia上,有着架构的英文定义。
经过前两篇的文章阅读以及通过总结文章中的内容,我觉得架构的本质就是分解、合并,根据一定的原则,将一个任务总体按不同的角色分解成不同的部分,每一个部分都有人并行或者串行的完成,减少工作任务的时间,最后再通过一定的原则,将每一个部分完成的合并起来,使得整个任务能够被很好的完成,达到解决人的问题的目的;第二篇所讲解的就是对于基础概念的理解,很多人对于概念都存在着误区,很多都是我们下意识的去认为就是这样,并没有主动的去学习过,所以也就在解释概念的时候会出现很多不同的意见和分歧,所以当我们学习一个新的领域的时候,我们要准确的把握住概念,理解概念,明白需要解决的是什么样的问题,这样才利于我们更好的去学习。
接下来便是架构师如何正确的识别自己所面对的问题,文章中分为了两个部分,就是这是谁的问题和有什么问题,一般来讲,会在第一个问题上面花费的时间比较多,我们要深刻的认识到我们所解决的问题是人的问题,并且这个问题都是别人的问题,我们不能下意识的把问题当成自己的,而只是一味的去完成这个问题,到最后我们不仅完成不了问题,还会为自己带来一些不必要的问题,对于架构师来说,发现问题永远都要比解决问题来的更加重要。
四五章的主要内容主要讲述的是切分的本质以及计算机和软件的发展历史,切分的根本目的就是为了满足每一个人的利益,使得每个人都能够得到更好的利益,从而使整体能够更好的运行下去,不会出现因利益分配不均而导致整体失去平衡,最终崩溃。相对于软件来说,软件的历史就是用机器模拟人的历史,在机器上来进行人的相关活动,模拟人和这个社会的活动,使得人类的生活更加模拟化,随着社会的不断发展,软件的发展也越来越快,从事软件行业的人也不断增加,分工更加的细致和明确,总的来说,软件的本质就是通过把人类的日常工作生活虚拟化,减少成本,提升单个人员的生产力,提升人类自己的利益。
之后所将的是软件架构需要解决的问题,首先我们要明白要解决谁的问题,软件把现实生活模拟到计算机中,并在计算机的硬件上运行起来,要做到需要解决两个问题:业务问题和计算机问题。然后确定分别是谁的问题和有什么问题,然后软件工程师需要分析问题,包括虚拟化业务、代码的运营等需要完成哪些事情,在说软件架构的时候,我们要分清说的是部署架构还是代码架构,能够更好的保障软件架构的落地。
对于如何成为一个架构师,也有着很多的要求。如果我们在工作中只是致力于完成自己的工作,那么最多只能成为一个好的工匠,而无法成为一个架构师。我们需要去解决别人的问题,而且是在一定的时间内完成,当我们能够很好的克服时间的恐惧和压力,一点点的增强自己的信心,尝试的去完成一次架构的任务,慢慢的,我们就能够成为一名出色的架构师。不断的学习如何发现“是谁的问题”,更好的去划分其中的利益,使得每一个人都能够得到切实的利益,所以架构师必须是一个组织的领导。一个优秀的架构师,也应该具备一定的专业知识和相关的技能, 当作是自己解决问题的工具,更好的去解决人的利益的问题。
通过架构的角度,代码的编写也应该有着明确的分工,有表达业务逻辑的代码、对用户提供访问并保存业务逻辑运行结果的代码。使得代码之间的分工更加的明确,在需要修改代码的时候,修改的部分不会对代码的整体造成严重的影响,代码之间既能合作运行,也能更好的独立完成每一部分的功能任务。
最后所讲述的便是如何处理业务、技术还有架构的关系,技术就是通过人为创造条件,让指定的规律按照人类的意愿发生。比如取火的例子,业务目标就是取火,而钻木取火的技术解决了这个问题,而为了提升取火的效率,又出现了弓弦转动木棍的技术。所以技术是为了解决业务的问题而产生的,业务是技术产生的前提,而架构是为了更好的实现人的利益,提高取火的效率,使人们的利益得到有效的提升。一般来讲是先有技术,再有架构。
通过这九篇博客的学习,自己对于架构也有了初步的了解,讲述的这些内容,最根本的就是如何更好的实现人们的利益和提高人们的利益,这也让我想起了一句话:“没有永远的朋友,只有永远的利益”,同时我们也要善于观察和分析问题,能够快速的找出问题的本质,明白“是谁的问题”和“有什么问题”,从根本出发,找出能够切实解决问题的办法。