位置:编程技术网 > 编程语言 > 正文 >

在首席架构师眼里,架构的本质是……

2019年07月17日 11:57来源:未知手机版

唐先兵,梦洁家纺股票,彩电排行榜

首页快讯资讯推荐汽车企服职场城市最新创投科技生活创新视频专题活动搜索寻求报道我要投稿寻求融资账号设置我的收藏退出登录登录|注册未来汽车日报氪榜开氪VClub投资机构搜索在首席架构师眼里,架构的本质是……36氪的朋友们?·?2016-03-01编者按:作者王庆友,前1号店首席架构师,先后就职于ebay、腾讯、1号店、找钢网,精通电商业务,擅长复杂系统业务建模和架构分析,目前在中国B2B第一电商公司找钢网担任首席架构师,微信号Brucetwins,欢迎一起聊架构。

编者按:本文作者王庆友,前1号店首席架构师,先后就职于ebay、腾讯、1号店、找钢网,精通电商业务,擅长复杂系统业务建模和架构分析,目前在中国B2B第一电商公司找钢网担任首席架构师,微信号Brucetwins,欢迎一起聊架构。本文由36氪经授权转载自微信公众号“聊聊架构”(ID:archtime)。

目前讨论架构实操(术)的文章较多,讨论架构理念(道)的较少,本文基于作者在大型电商系统架构方面的一些实践和思考,和大家聊聊架构理念性的东西,希望能够抛砖引玉,推进大家对架构的认识。

什么是道,什么是术?道是事物发展的本质规律,术是事物发展的具体途径。规律只有一个,途径很多,条条大路通罗马,罗马是道,大路是术。道为本,术为途,如果事先知道罗马在哪里,那么遍地是路,路路相通。架构也是如此,如果能领悟架构的本质,就不会拘泥于现有的实践和理论框框,而以最直接的方式解决问题,无招胜有招。本文的内容包括架构的本质、架构的服务对象、架构师能力模型 、架构境界等。

架构的本质

任何系统,自然情况下,都是从有序到无序,这是有科学依据的, 按照热力学第二定律,自然界的一切自发过程都有方向性,一个孤立系统会由有序变为无序,即它的熵会不断增加,最终寂灭。但生物可以通过和外界交互,主动进行新陈代谢,制造“负熵”来保证自身有序,继续生存。

同样,一个软件系统随着功能越来越多,调用量急剧增长,整个系统逐渐碎片化,越来越无序,最终无法维护和扩展,所以系统在一段时间的野蛮生长后,也需要及时干预,避免越来越无序。

架构的本质就是对系统进行有序化重构,不断减少系统的“熵”,使系统不断进化。

那架构是如何实现无序到有序的呢? 基本的手段就是分和合,先把系统打散,然后重新组合。

分的过程是把系统拆分为各个子系统/模块/组件,拆的时候,首先要解决每个组件的定位问题,然后才能划分彼此的边界,实现合理的拆分。合就是根据最终要求,把各个分离的组件有机整合在一起,相对来说,第一步的拆分更难。

拆分的结果使开发人员能够做到业务聚焦、技能聚焦,实现开发敏捷,合的结果是系统变得柔性,可以因需而变,实现业务敏捷。

举个例子,在Web 1.0时代,一个ASP或JSP页面里,HTML和脚本代码混在一起,此时脚本代码越多,系统越混乱(即熵增加),最终连开发者自己都无法理解。此时就需要对系统重新架构,办法是引入view helper模式,分离HTML和脚本,HTML成为view,脚本成为帮助类。然后再简单整合在一起。通过重新分和合,整个系统层次清晰,职责明确,系统的无序度降低,容易扩展。同时不同技能的开发人员,如UED和程序员,可以负责不同部分,有效提高开发效率。

好的架构就像一篇优美的散文,形散神不散,表面看无序,实则高度有序。

架构分类和服务对象

架构一般可分业务架构、应用架构、技术架构,那么它们分别解决什么问题,服务于谁呢? 我们首先看一个系统落地过程:

对于负责开发的人来说,怕的是业务太复杂,代码逻辑太乱,超出他能理解的范畴,系统无法维护。因此开发的需求是系统整体概念清晰,容易理解,方便扩展。

本文地址:http://www.reviewcode.cn/bianchengyuyan/57773.html 转载请注明出处!

今日热点资讯