《架构漫谈》读后感
1、什么是架构?
通过阅读王老师的架构漫谈第一篇,他对架构的概念结合我们的生活实际,进行了易于理解的剖析和说明,通过阅读这一篇文章,我认识到架构的定义是————
1、根据要解决的问题,对目标系统的边界进行界定。
2、并对目标系统按某个原则的进行切分。切分的原则,要便于不同的角色,对切分出来的部分,并行或串行开展工作,一般并行才能减少时间。
3、并对这些切分出来的部分,设立沟通机制。
4、根据 3,使得这些部分之间能够进行有机的联系,合并组装成为一个整体,完成目标系统的所有工作。
并对目标系统按某个原则的进行切分。切分的原则,要便于不同的角色,对切分出来的部分,并行或串行开展工作,一般并行才能减少时间。
并对这些切分出来的部分,设立沟通机制。
根据 3,使得这些部分之间能够进行有机的联系,合并组装成为一个整体,完成目标系统的所有工作。
较为通俗的理解是,在古早时期,面对恶劣的自然环境,祖先个人的能力有限,只能由独居变成群居,壮大自身的力量,以求在恶劣环境中生活下去,在我看来,这就是比较典型的架构的应用,当然,我们家庭的分工合作,也算是架构在现实生活中的应用;
王老师在解释架构的概念之前,先提出了为什么要产生架构的问题,具体原因被简洁概括为5条信息:
1、必须由人执行的工作;
2、每个人的能力有限;
3、每个人的时间有限;
4、人对目标系统有更高的要求;
5、目标系统的复杂性使得单个人完成这个系统,满足条件 2,3;
2、架构解决的是什么问题?
通过阅读第二篇内容,能够认识到架构实际上解决的是人的问题,通过上面的叙述,意识到架构的产生就是为了方便人,没有人的参与,就没有了改造的必要,也没有了架构产生的必要;
3、如何利用架构解决问题?
我们想要利用架构这个工具解决问题的话,就需要先了解到某个架构的具体概念,认识到这个架构具体要解决的是什么问题,能够认识到这个概念背后要解决什么问题,从而进一步认识到目标领域要解决的问题(这也是我们学习新知识的主要途径);
4、如何做好架构的切分(具体工作的分配)
我们一直强调架构切分的概念,但是具体是什么意思?又如何做呢?
所谓切分,就是利益的调整,我们要争取利益的最大化;
为什么需要切分呢?随着社会的发展和进步,社会关系越来越复杂,利益划分也日渐复杂,切分就是为了解决掉之前因为切分不合理导致的新问题,也是为了减少个人时间或者空间上面过重的负载;
5、软件及软件架构
软件就是多个程序组合在一起,形成的据哟完整功能的系统软件;
软件架构的出现,也是在不断地演变中,慢慢演化出了软件架构的概念,不同的分工,让软件具有较高的开发效率;
6、软件架构师的不可或缺
架构师是一个组织的领导人,它具有协调组织内利益的权力和义务,能够平衡小组利益,让整个团队和谐稳定进行开发工作,从而达到提高开发效率的目的;
7、技术、业务和架构的关系
技术与业务并没有高端和地段的区分;
所以,业务和技术具有如下关系:
1、技术是为了解决业务的问题而产生的,没有了业务,技术就没有了存在的前提。
2、有了更好的技术,效率更差的技术,就会慢慢的被淘汰,消失,一切都遵从人类的利益诉求————也就是业务。有人会问,不用钻木取火了,但是弓弦加速转动木棍还可以用啊? 没错,因为弓弦转动木棍这个技术,不是来生火的,是用来加速木棍转动的,所解决的问题不一样。但是两种不同的技术,合理结合起来,会更好更有效率的解决业务问题。
技术和技术具有如下关系:
1、在解决同一个业务问题的前提下,更高效,更低成本的技术,会淘汰低效,高成本的技术。这是人类利益诉求所决定的。
2、一般刚开始解决根本问题的技术(钻木取火)的效率是比较低的,只是把不可能变成了可能(从这一点上来说,技术才是业务的 enabler)。然后就会有提高效率的需求出现,要求改进这个技术。这个技术的低效率部分就会被其他人(或者技术发明人自己)加以改进,这部分就会形成新的技术。