架构漫谈是由资深架构师王概凯Kevin执笔的系列专栏,以Kevin的架构经验为基础,逐步讨论什么是架构、怎样作好架构、软件架构如何落地、如何写好程序等问题。阅读了架构漫谈九篇博客,对于软件架构有了一些简单的了解。前端
什么是架构?架构
架构在维基百科上有着很复杂的定义,从这个定义上看,架构好像是一个过程。为了讲清楚这个问题,咱们须要了解为何会产生架构。根据博客来讲,什么是架构,就是:学习
1.根据要解决的问题,对目标系统的边界进行界定。spa
2.并对目标系统按某个原则的进行切分。切分的原则,要便于不一样的角色,对切分出来的部分,并行或串行开展工做,通常并行才能减小时间。blog
3.并对这些切分出来的部分,设立沟通机制。部署
4.根据3,使得这些部分之间可以进行有机的联系,合并组装成为一个总体,完成目标系统的全部工做。博客
为何要出现架构?class
首先是社会的发展。最开始的时候,每一个人都是独立的个体,本身搞定本身的事情。随着社会的发展,开始出现了群居、合做、分工,当分工发生后,实际上每一个人的生产力都获得了提升,由于作的都是每一个人擅长的事情。同时,整我的群的生产力和抵抗环境的能力也大大提升,人们经过相互交流、交易得到了须要的所有。经过这个例子来看,把一个总体切分红不一样的分工,由不一样角色来完成这些分工,并经过创建不一样部分相互沟通的机制,使得这些部分可以有机的结合为一个总体,并完成这个总体所须要的全部活动,这就是架构。也能够概括出架构产生的动力:基础
1.必须由人执行的工做。软件
2.每一个人的能力有限(每一个人都有本身的强项,我的的产出受限于最短板,而且因为人的结构限制,同时只能专一于作好一件事情。)
3.每一个人的时间有限(为了减小时间的投入,必然会致使把工做分解出去,给擅长于这些工做的角色来完成,见2,从而缩短期)
4.人对目标系统有更高的要求(若是知足于现状,也就不须要进行架构了)
5. 目标系统的复杂性使得单我的完成这个系统,知足条件2,3(若是我的就能够完成系统的提升,也不须要别的人参与,也就不须要架构的涉及)。
架构解决谁的问题?
一个问题,不一样的人的回答不尽相同。作架构的时候,不一样角色的沟通会出不少问题,那么结果也就可想而知了。架构其实是以人的认识为主体去讨论的,解决的都是人的问题。
什么是软件体系结构?
软件由于流量增大而分拆成不一样的运行单元,在不一样的机器上部署所造成的架构,属于软件架构。每一个运行单元为了让不一样角色的人,好比前端,业务,数据存储等可以并行工做,所分红的代码架构,也属于软件架构。
架构师又是什么东东?
当咱们所作的工做是处于社会的分工的一环,须要帮助别人解决问题,而且按时解决别人的问题成为咱们本身的问题的时候,咱们就有了时间压力,潜意识里会天然而然的有一种对时间的恐惧。而当咱们把完成别人工做当成本身的最大利益,这个对时间的恐惧天然就会消失,这个时候就天然而然的开窍了,就知道怎么去发现问题了。只有作到这一点,才能在本身所服务的领域创建起自信,成为一个合格的架构师。架构师是要去平衡别人的利益,甚至会调整别人的利益的。架构师必须是一个组织的领导人,有权利调动这个组织的架构。架构师必须可以超越对时间的恐惧–也就是说必须具有了必定程度的自信,哪怕是装的,去真正的发现问题的主体,识别真正的问题,并把这个行为变成为本身面对问题的第一反应。
读了这些博客,只是了解了一些知识,甚至没有了解到怎么真正的去成为一个架构师,感受仍是全身心的投入软件的制做,多多的了解各类知识。但愿在接下来课程的学习中能够学到更多有用的知识。