软件如何帮我们解决问题(三)--架构的出现

       之前我们讨论了什么是软件,软件的缘起,如何理解需求和识别问题,接下来,我们聊聊软件的架构.


软件如何帮我们解决问题(三)--架构的出现_第1张图片

架构的缘起:

       说到软件,就离不开软件的架构,而说到架构,首先我们需要理解架构是如何出现的。人类社会组织架构的形成经历了以下几个阶段:

    1.人类生活的早期,每个人独立工作,衣食住行全部一个人搞定

    2.群居的出现,开始有了物品的交换,形成了商品的交易,进行形成了劳动的分工

    3.随着分工群体的逐步扩大,开始有了族群,进而形成了地域的分群

软件如何帮我们解决问题(三)--架构的出现_第2张图片


     如果每个人都能够完成自己所有生活必需品的时候,是没有架构的。可是随着人类所需要做的事情变得越来越复杂,当出现有些工作或者任务无法一个人独立完成时,就出现了分工。把较为复杂的事情,切分成较小的任务,由不同角色的人来完成,最后通过沟通和交流,使所有人形成一个整体,来交付一个总的任务的时候,就形成了的架构。

这样,我们就了解了架构产生的条件:

      1.完成的工作必须要由人来执行

      2.每个人的能力有限,由最合适的人完成最合适的任务

      3.每个人的时间有限

      4.对现有的目标系统有更高的要求

      5.目标系统复杂到单个人无法完成整个工作

那么架构,如何帮我们解决上面的问题呢?

架构的定义:

1.根据需求和问题,界定系统边界

2.对目标系统按照某个原则进行切分

3.对切分后的任务设立不同的沟通机制

4.使所有的部分形成一个整体,完成目标系统的工作


软件如何帮我们解决问题(三)--架构的出现_第3张图片

       18世纪,亚当·斯密发现在一家扣针厂里,生产一枚扣针需要经过18道工序.这家工厂由10个工人分别承担1~2道工序,每天共生产48 000枚扣针,平均每人生产4 800枚.如果让工人各自独立完成全部工序,那么他们中的任何一个人,一天连20枚扣针也生产不出来。分工协作生产商品可以减少生产商品的个别劳动时间。


软件如何帮我们解决问题(三)--架构的出现_第4张图片

       单位时间里面,每个人的注意力是有限的,如果要在这段时间里面,做好几件事情,在不同任务之间切换的时候会产生注意力的消耗,最后导致生产效率的低下。由此,人类社会形成的分工合作,由不同的人去完成不同的事情,就是为了解决单个人很难或者无法完成的任务所演化出来的。而架构则是人类分工合作发展过程中,由懵懵懂懂的,被动的去认识这个世界,变成主动的去认识,并以更高的效率去改造这个世界的方法。

文章想法的出处,推荐你也看看:http://www.infoq.com/cn/talk-arch

你可能感兴趣的:(软件如何帮我们解决问题(三)--架构的出现)