首页 > 其他分享 >架构漫谈

架构漫谈

时间:2024-02-29 09:15:47浏览次数:13  
标签:架构 漫谈 系统 问题 切分 擅长 页面

在上本学期软件体系架构课程之初,我阅读了王概凯老师的《架构漫谈》博客文章,王老师以很多生动的例子为我们讲解了什么是架构、认识概念、识别问题、架构切分、什么是软件、什么是架构师、从架构的角度来看如何写好代码以及技术、业务、架构三者的关系。在我看来软件架构最好放在小的场景中理解。我们有2个页面。1.页面A:主页面2.页面B:详情页面2个页面分别显示一个数字,这个数字应该相同。详情会修改这个数字,这里我们发现,详情页面和主页面数字不一样。数据不一致这里首先的感觉就是,详情页面返回,主页面数据没有刷新,导致数据不一致。

  首先,什么是架构?什么会有架构?在人刚刚学会生存时是没有架构,一个人包揽了所有的工作(可能也会有时间的架构,先做什么,后做什么),但是随着人类的繁衍,种群的扩大,人们学会使用火,学会制造工具,种植作物时,每个人的特点就会显现出来。,有的人擅长捕猎,有的人手巧,擅长制作工具,而有的人种庄稼很厉害,而且每个人的时间也是有限的,这时就出现了分工。人们将事情分开,由不同的人来完成不同的工作,最后进行交易,这实际上就是社会的架构。

  而架构产生的动力有以下几条:

  ①由人进行的工作(只有人做这个工作,人们才会想怎样对他进行改进优化,从而提高系统的质量)。

  ②每个人的能力有限,正如上面的例子所说,每个人擅长的东西不一样,如果让一个擅长制作工具的人去种庄稼,那他90%的可能要比擅长种庄稼的人花费的时间多,而且做得比如人家好,而让这个擅长种庄稼的人去制作工具,那他也没有擅长制作工具的人做得好。

  ③每个人的时间有限,比如一个人盖一幢房子需要2个月,而10个人可能10天就完成了,为了减少时间的投入,必然需要把工作分出去,让擅长该供工作的人完成。

  ④人对目标系统有更高的要求,还是房子的例子,如果人们对居住环境没有更高的要求,而只是要求能住人就行,那么我们现在可能还是居住在山洞中,因为不满足仅仅能住人,还要能做饭、能洗澡、能娱乐,所以出现了架构。

  综上,总结一下什么是架构,根据目标系统的要求划定系统边界,然后按照某种原则对问题进行划分、合并,最终解决问题的实践过程。架构实际上解决的是人的问题,

  划分问题的前提是我们应该能够识别问题,正确找出问题才能划定系统边界。此处,以老师上课讲过的一个关于软件需求的漫画为例:

这则漫画主要是描述在实际制作秋千这个需求过程中,各个部门之间的理解配合及完成需求的差异。首先,产品经理没有听懂用户的需求,没有找的真正的问题,而是想当然应该这样做,而且想得过于简单没有站在用户的角度想。在架构中我们应先找到问题的主体,其次去找到真正的问题。因为问题的主体是问题的隐含边界,边界不确定下来,问题就是不确定的。一旦确定了主体,剩下的就是去搞明白主体有哪些问题。在这个秋千中,我们首先找到问题的主体是乘坐秋千的孩子,问题是想要一个秋千,秋千最起码能荡起来,而在图二中显然设计的不符合需求。所以,当我们在做架构时,首先确定这是谁的问题?问题是什么?当这两个问题解决好,我们就确定了系统的边界。

  确定系统边界后我们就应该进行划分,当一个系统比较复杂时,必然会进行切分,而切分的背后必然与利益有关,每个人都希望自己利益最大化。但是每个人的能力和时间都非常的有限,不可能什么都懂,所以自然需要舍掉一些自己不擅长的东西,用自己擅长的东西去换取别人擅长的东西。那么在一个系统中我们应如何进行切分呢?切分有以下几个原则:

  ①必须在连续时间内发生的一个活动不能进行切分。

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

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

  ④切分是内部活动,内部无任怎么切,对整个系统的外部应该是透明的。如果因为切分导致整个系统解决的问题发生了变化,那么这个变化不属于架构的活动。

  王概凯老师对于软件架构的知识讲解的详细生动,此处只写了一部分内容,接下来会进行进一步的学习,了解系统合成及架构师的工作等内容。

标签:架构,漫谈,系统,问题,切分,擅长,页面
From: https://www.cnblogs.com/srz123/p/18042637

相关文章

  • 架构漫谈读后感
    首先,我们要明白一个道理,什么是架构?王概凯的架构漫谈中说道,根据要解决的问题,对目标系统的边界进行界定。并对目标系统按某个原则的进行切分。切分的原则,要便于不同的角色,对切分出来的部分,并行或串行开展工作,一般并行才能减少时间。并对这些切分出来的部分,设立沟通机制。使得这些部......
  • 《架构漫谈》——读后感1
    架构漫谈读后感2024年2月28日,在王建民老师的推荐下拜读了王概凯老师的架构漫谈的前四章节。下面是我的一些见解。架构的核心是组织和规划,旨在提高效率和实现目标。它源于分工的需要,让人们可以专注于自己擅长的事情。在架构中,各个部分被设计得能够协同工作,以满足整体需求。这种协同......
  • 架构1500
    什么是架构,就是:根据要解决的问题,对目标系统的边界进行界定。并对目标系统按某个原则的进行切分。切分的原则,要便于不同的角色,对切分出来的部分,并行或串行开展工作,一般并行才能减少时间。并对这些切分出来的部分,设立沟通机制。根据3,使得这些部分之间能够进行有机的联系,合并组......
  • 构架漫谈观后感
    今天课上老师让我们阅读了王概铠对构架漫谈的心得体会,收获颇多。无非关乎到三个问题:什么是架构,为什么要出现架构,架构解决谁的问题一下是我对这些问题的浅薄理解。一、什么是架构在确定任务之后,依照每个区域的擅长项目对任务进行划分分工,每个分工设立沟通,完成之后组成整体完成......
  • 架构读后感
    今天建民老师在课上给我们推荐了几篇关于架构的博客,读后我收获了许多首先什么是架构呢,我个人理解是复杂问题简单化,简单问题流程化。将一个整体切分成不同的部分,各个部分之间相互联系,共同组成整体,并且由不同的人担任不同的部分分工,提高整个系统效率,完成这个整体所需要的所有活动。......
  • 架构漫谈读后感
    今天上课时,王建民老师让我们阅读了王概铠写作的《架构漫谈》,让我对软件架构这门课有了一些最初步,最浅显的认识,以下将记录一些我个人的所思所想。首先在最开始,应该先说一说一个十分经典的问题——什么是架构,按照我个人的理解,架构就是人们在面对一系列复杂问题时,将复杂问题......
  • 架构总结
    一、架构的定义所谓一千个架构师中有一千种“最好的架构”模式。“架构”是我们这行业种一个很常见的词,表明其必然也是经历了很长的岁月打磨所形成的一个词。架构的这个词出现的意义是什么?为了解决什么问题?只有把这2个问题想明白了,才能设计出一个良好的项目架构。......
  • 《架构漫谈》读后感
    今天读了王建民老师推荐的一些资料《架构漫谈(王概凯)收益很大。一共九篇文章,从第一篇到第九篇循序渐进,思路清晰。这九篇文章的题目分别是这样的:“什么是架构”、“认识概念是理解架构的基础”、“如何做好架构之识别问题”、“如何做好架构之架构拆分”、“什么是软件”、“......
  • 架构漫谈前四篇读后感
    第一篇文章这篇文章通过类比的方式,以人类社会分工与合作的演变为例,引出了对架构的思考。作者从最早期每个人独立完成所有生活必需品的生产,到分工合作形成社会架构,进而将这个观点引入到软件领域,讨论了架构的产生动力。在文章中,架构被定义为将整体分解为不同部分,由不同角色完成,并......
  • 读《架构漫谈》有感
    今天课堂上老师带大家阅读了《架构漫谈》,并且给大家提出了一系列的问题,以下是问题以及我的理解什么是架构:明确需要做的全部工作,即界定边界;并且将全部工作进行合理划分,使不同的生产力完成不同的工作,使其可以节约成本,提高生产效率为什么要出现架构:不同的生产力有不同的分工......