理清技术、业务和架构的关系架构
在不少人的概念里面,架构和技术其实是等同的。学会了几种技术,就认为本身是架构师了,甚至是学习的技术越多,就以为本身的水平越高。这样其实是对本身很不负责任的。学习
要知道任何技术都是为了解决某种问题而存在的,学会了技术,并不表明本身可以解决问题,这一点很是的重要。效率
什么是技术技术
好比取火,最先人类只能靠打雷等天然现象产生火。取火其实就是一个业务目标,要解决的是人类本身的问题,这就是业务,实际就是人类的利益。这个时候人类没有生火的技术,只能靠不断的加木材,保持火不熄灭。后来人们发现了钻木取火:只要用一个干的木棍,在另外一个干木表面快速的转动,就能够生火。这个办法让人类能够自行创造火源,就产生了钻木取火的技术。解决方案
也就是说:架构师
业务目标是为了取火,钻木取火这个技术的出现解决了这个问题。工作
钻木取火的效率不高,影响了业务(取火)的效率,就有了进一步改进的动机,改进转动木棍的方式,产生了弓弦转动木棍的技术。ab
技术与架构,以及与业务之间的关系
技术老是在人类解决对业务的要求不断提升的状况下产生,目的也是为了获取更大更好的利益。因此:
技术是为了解决业务的问题而产生的,没有了业务,技术就没有了存在的前提。
有了更好的技术,效率更差的技术,就会慢慢的被淘汰,消失,一切都听从人类的利益诉求–也就是业务。有人会问,不用钻木取火了,可是弓弦加速转动木棍还能够用啊? 没错,由于弓弦转动木棍这个技术,不是来生火的,是用来加速木棍转动的,所解决的问题不同。可是两种不一样的技术,合理结合起来,会更好更有效率的解决业务问题。
因此技术与技术之间,有两种关系:
在解决同一个业务问题的前提下,更高效,更低成本的技术,会淘汰低效,高成本的技术。这是人类利益诉求所决定的。
通常刚开始解决根本问题的技术(钻木取火)的效率是比较低的,只是把不可能变成了可能(从这一点上来讲,技术才是业务的enabler)。而后就会有提升效率的需求出现,要求改进这个技术。这个技术的低效率部分就会被其余人(或者技术发明人本身)加以改进,这部分就会造成新的技术。
当关系2发生的时候,这个地方一定会造成一个切分,新技术会经过某种方式和原有的技术链接在一块儿造成一个总体,让这个新的技术能够和原有技术共同工做,使得原有的技术能够用更高的效率解决问题。由于要解决的主要问题(生火)并无发生改变,分拆所造成的是一个树状的结构。
按照前面的架构定义,这个时候其实已经产生了架构。也就是说,通常是先有技术,才会有架构。这些其余技术(弓弦拉动木棍),是从直接解决问题的初始主要技术中分拆出来造成的,并经过树状结构和主要技术(钻木取火)组合在一块儿。在解决主要问题(生火)以后,再开始逐渐的分拆为更为细粒度的技术(弓弦转木棍)。
而这个细粒度的技术(弓弦转动木棍)每每不会和业务的主要目标(生火)发生直接的关系。不一样的技术,经过树状结构,组合在一块儿,造成了一个完整的架构解决方案,共同完成业务的目标。这就是技术,业务和架构之间的关系。不少人把这个过程称为架构的进化,我更愿意把这个过程称为技术的进步所致使的新的架构分拆,由于这个过程内在的动力,更多的是来自技术对解决业务问题的解决。