在一个人可以完成所有事情的时候,是没有架构的概念的,因为所有问题,所有事情都是一个人解决,这时架构没有任何意义;但是当一群人在一起的时候,这时候需要给每个人分工,需要让每个人根据自己的能力发挥自己的长处,来为群体完成交代的事务,这时在给每个人分工的时候就用到了架构的原始概念,根据每个人的实际能力,给每个人分工不同的工作,让每个人做自己擅长的事情,提高每个人的生产力,那么整个人群的生产力就会提高。
架构必须是由人执行的工作,因为每个人的能力、时间有限,但是人对目标系统有着越来越高的要求,所以目标系统的复杂性使得单个人无法在时间及能力有限的前提下完成,所以这时出现了软件的架构,也就是给团队中的每个人分配不同的工作。
架构是人类由原来的被动认识世界,变为主动的认识世界,改造世界的一种方法,这是一个主动的过程。
人类在用建筑房子将自己与自然环境隔离的同时,会通过增加门窗等方式来与外界自然沟通,这在架构中的体现就是每个人都有自己独立的分工,但是在每个人独立工作的时候,也会和其他人进行沟通交流,每个人并不是封闭工作。
随着人们的生活水平提高,人们的需求也会越来越高,这时需要用到架构来帮助人们解决这些杂乱的问题,这个角度上说,架构是一种帮助人们解决问题的方案。
在做架构之前,首先要识别问题,要能够正确的识别出问题,当别人需要解决问题,却只给了一个解决方案的时候,需要考虑一下这个解决方案需要解决的是什么问题,那么这个解决方案能够解决当前的这个问题吗,然后才能够正确的理解别人给的解决方案。
解决问题之前,一定要搞清楚这是要解决谁的问题,搞清楚问题的主体,这个问题理解清楚,也就能确定问题的边界。
架构师要解决的问题都是人的问题,都是别人的问题,不是架构师自己的问题,如果别人能够把问题提出来,那么他们自己就能够解决。架构师需要解决的是用户没有提出来的问题,是用户意识到但没有表达出来的问题,这种问题才是整个问题核心的关键。架构师只有解决了这样的问题,做出来的产品才能够满足客户的需要。首先需要找出问题的主体,才能找出主体存在的问题。
当软件越来越大,一个人在能力有限,时间有限的前提下无法完成时,需要一个团队来合作完成一个软件时,这时需要进行分工,也就需要将架构进行切分,但是在切分时,需要遵循一定的原则进行切分,大前提就是个人的利益。将单个人时间上的负载切分成多个人时间上并行的工作,让每个人的权利和义务对等,如果这个方面不对等,那么一定是架构的切分出了问题。
对架构的切分,要使切分的结果变成一棵树,并且分层最好是最少。在切分的过程中,要使得每个人的权利和义务对等,归根到底也就是每个人的利益要符合切分的结果。如果权利和义务不对等,那么一定是切分的过程中,个人的利益收到了损害,这样在架构实施的过程中,一定是会出现很多的问题。