前言
大家都听说过一千个人心中就会有一千个哈姆雷特,说的是每个人对哈姆雷特这部作品都有自己的理解,我相信"架构"这个东西在每个程序员职业生涯的不同阶段也会有不同的认识和理解,也许你刚刚走出校园压根没听过这个词,也许你听过但是也仅仅是记住了中文词典中有这个词也记住了这个词的意思,渐渐的当你工作了几年后发现这个词频繁的出现在你的工作中你却无法理解它,它的意思也越来越不清晰越来越模糊,它到底是个什么玩意?就这样你带着这个问题工作了十几年,它还是每天都会出现在你的工作中,经常有人向你提起它,你在各种各样的技术交流的平台上也经常能见到它。
突然!!!"有一天你发现她还是原来的那个她,还是你初见她时的模样,原来她一直都在未曾改变过;你出走半生历尽艰辛想要探寻的也只不过是她最初的样子"这一段稍有煽情~~~
回归正题,我们对一件事物的认知就是这样表象->混乱->归真。借用宋代禅宗大师青原行思提出的三重意境:
-
参禅之初:看山是山,看水是水。
-
禅有悟时:看山不是山,看水不是水。
-
禅中彻悟:看山还是山,看水还是水。
佛家讲究入世和出世,在入世和出世中寻找佛理的真谛,同样的我们也在寻找自己存在的道理,短短百年光阴,我们也在经历着人生三大境界。额。。又扯远了。。。进入正题。。。
架构定义
我们应该如何定义架构,这玩意到底是个啥;我们要先来搞清楚他的定义,你才能更好的和别人装X,而且我们要装的更有深度这样才能唬住别人(装X不是目的哈。。。目的是我们要明白你在和别人讨论架构的时候要明白在说什么是不是在一个频道上)
如果你想要装的有深度那你就要引经据典,你要知道别人不知道的事情,比如架构从哪里来你得搞清楚吧,你三句话离不开架构,别人一问你架构从哪来的,你蒙了。。。这不是尴尬的一比么;废话不多说先看看我们的老祖宗们是怎么使用"架构"的(实际上架构一词的出处也无从考究)
唐朝卢仝《月蚀诗》 :谲险万万党,架构何可当
此处指的是政治上的架构;说的是朝廷里的奸邪的众多朋党这样的势力架构要如何抵挡
**宋代诗人朱复之在他的《与静使君约游姑山记事古风二十韵》:**穷惚某氏建,架构溯斯堂
**明代诗认黄佐****的《黄龙洞天华宫故址》:**谁为真蛟蜃,架构穷莽楚
以上两句均可以理解为建筑上的架构
元代诗人元好问的《密公宝章小集》 :撑肠文字五千卷,灵台架构森铺张
此处可以理解为构思和布局之意
清朝龚自珍《<干禄新书>自序》 :论点画波磔之病百有二十,论架构之病二十有二
这句话说的是书法上的问题,大意为论述点画中波磔(捺画等)存在的毛病有一百二十种,论述字的结构框架方面存在的毛病有二十二种
上面的诗句中基本上已经说明了架构是什么,架构本身就是一种构思的产物,最终以结构来呈现,在范围上不局限在建筑领域,例如朝廷的整体部门体系,官职体系,书法笔画, 字的结构等
我们在抽象一点架构说的就是要素之间的关系,结构是要素之间关系的产物。结构是实实在在能看得清存在的,而架构更偏重的是过程
**要素:架构产物的必要元素。**如何理解要素呢?假如你要造一座拱桥,那木材就是造桥架构中的必要元素
**关系:要素之间相互依赖、相互制约的状态。**怎么理解呢?一座拱桥的建造需要多木材拼接而成只有将木材与木材之间的关系理顺好才能保证桥梁的稳定与牢靠。
中共古代的建筑工艺最高的杰作就是榫卯结构,这种结构就是木材与木材之间的有效连接关系构成的。这种榫卯结构就是古代工匠们的架构产物(只不过可能当时并没有架构一说)也展现出了古代匠人们的的智慧和精湛技艺,具有以下特点和优点:
坚固耐用:能承受较大的荷载,使建筑或器物结构稳固。
巧妙灵活:可实现多种复杂的连接形式和结构组合。
可拆可装:便于运输、维修和更换部件。
美观精致:展现出独特的工艺美感。
由此也能看出架构要有**目的性,**漫无目天马行空的架构往往是不符合事实求是的原则。做架构设计并不是一件容易得事情,他要在符合事实,综合各种限制条件,以及环境因素最终产出的合理设计方案以保证最终交付的质量。
架构的应用
生活中的架构
不知道各位看官有没有搬家的经验,在下来北京多年搬家数次(成年人的无奈,掩面哭泣。。。)每次搬家后最痛苦的就是收拾屋子规整物品。那么如何把凌乱不堪的家收拾的井井有条。此时"架构"闪亮登场。。。
首先我们先将要规整的物品分们别类的整理一下,厨房用品,床上用品,卫生间用品,清洁用品,衣服鞋帽(春夏秋冬)等等吧
其次要考虑屋内有那些空间可以利用,这些空间的大小适合放什么物品,如何有效的利用空间来摆放更多的物品,同时我们也要考虑物品的使用频次,经常使用的一定要放到外面,这样在用的时候可以更方便的拿取等等。。。总之就是不能随地一扔,一放,上床睡觉。。。
最后就是执行了,按照你的构思规划好的方案,把物品放到它该放的位置。经过几个小时的折腾终于可以入住新家了又可以和女朋友过上没羞没躁的生活此处省略一万字。。。。。
实际上搬家的过程并没有想象的那么简单,上面只是简短的描述了一下过程,真实的场景可能是鸡飞蛋打,鸡飞狗跳,鸡毛飞上天,鸡鸡复唧唧。。。总之就是没有那么容易过来人的经验不接受反驳。
又过了一周你会发现,当时的规整好的MD又恢复到鸡飞蛋打,鸡飞狗跳,鸡毛飞上天,鸡鸡复唧唧。。。
这时你发现是不是当初不应该费劲心神的去设计,因为到头来他还会变得凌乱;这显然是错的,因为用心做出来的叉烧才能让别人流泪,太好吃了。。。额扯远了!
架构是需要守护的,并不是说你用心规整了房间,那这个房间就要一直保持你规整的样子,如果你想这样,你就要守护它;但一味刻板的去守护显然是错的,因为生活中有太多的不确定性,你能因为家里多了娃会打破你的设计,你就不要娃了吗?
架构不是一程不变而是要在变化中找到不变的东西,这些不变的东西最终沉淀下来就是新的架构
结尾
架构是虚无缥缈的是空洞的,在生产生活中的不同领域确又是广泛存在的;例如人力资源领域,工业制造,建筑,计算机科学,国家的行政体系等等,皆有架构的存在;在有些领域已经发展了很多年这些领域沉淀下来的些架构已经形成了既定的标准,有些则还在探索。在本文意在为刚刚入行的同学或者对架构感兴趣的同学提供一些理解的思路,但也仅仅代表个人的观点。
文章的开始也提了架构一词各家理解皆有所不同,公说公的理婆说婆的理,没有盖棺定论;所以如果您看了本文对您能有所增益,或者能让您有那么一瞬间的顿悟,那也是本人的莫大荣幸
后续会不定期的更新软件架构方面的相关知识,各位看官老爷们如果觉着文章还不错可以关注博主的内容,更新不易且行且珍惜