服务粉丝

我们一直在努力
当前位置:首页 > 科技 >

当我们在讨论架构时,该用什么姿势?

日期: 来源:开源中国收集编辑:架构

对于大多数程序员而言,职业发展大致分三种:专精技术、转型管理、和晋升架构师。

架构和算法,在大部分程序员眼中,一直矗立于编程工作的金字塔尖,可望而不可及。当我们在讨论算法的时候,往往不是动态规划、机器学习,而是论面试中常见的算法题,比如:各种排序、各类字符串匹配…

那当我们在讨论架构时,正确的姿势是什么呢?

架构的本质

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

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

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

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





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

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

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

架构分类和服务对象

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





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

对于负责运行的机器来说,怕的是业务并发量太大,系统核心资源不够用(如数据库连接)。它希望在业务量增加时,系统能够支持水平扩展,支持硬件容错(如避免单点故障)。

开发的痛点主要由业务架构和应用架构解决,业务架构从概念层面帮助开发理解系统(动态的包括业务流程 / 节点 / 输入输出,静态的包括业务域 / 业务模块 / 单据模型)。

应用架构从逻辑层面帮助开发落地系统(应用种类 / 应用形式 / 数据交互关系 / 交互方式等),整个系统逻辑上容易理解,前端时间大热的 SOA 即属于应用架构的范畴。

机器的痛点主要由技术架构解决,如技术平台选型(操作系统 / 中间件 / 设备等),部署上希望支持多机房,水平扩展,无单点等。

强调一下,系统是人的系统,架构首先是为人服务的,业务概念清晰、应用逻辑合理、人好理解是第一位的(即系统有序度高)。现在大家讨论更多的是技术 架构,如高并发设计,分布式事务处理等,只是因为这个不需要业务上下文背景,比较好相互沟通。具体架构设计时,首先要关注业务架构和应用架构,这个架构新 手要特别注意。

架构师能力要求

架构师只做分和合的事情,但综合能力要求很高,要求内外兼修,下得厨房,上得厅堂。

架构师要有技术的广度(多领域知识),又有深度(技术前瞻),对主流公司的系统设计非常了解,知道优劣长短,碰到实际问题,很快有多种方案可供评估。

抽象思维是架构师最重要的能力,架构师要善于把实物概念化并归类。比如面对一个大型的 B2C 网站,能够迅速抽象为采购->运营->前台搜索->下单->履单这几大块,对系统分而治之,庖丁解牛,早已目无全牛。

抽象思维是往高层次的总结升华,由实到虚;而透过问题看本质则是由虚到实,往深层次地挖掘。比如看到一段 java 代码,知道它在 JVM 如何执行;一个跨网络调用,知道数据是如何通过各种介质到达目标 (操作系统内核 / 网卡端口 / 电磁介质等)。透过问题看本质使架构师能够敏锐地发现底层之真实,系统性端到端地思考问题,识别木桶的短板并解决之。

能落地的架构才是好架构,良好的沟通能力确保各方对架构达成共识,愿意采取行动;良好的平衡取舍能力确保架构在现有资源约束下是最合理的,理想最终照进现实。

总结下,架构师的能力要求包括:

本文主要是和大家聊聊架构理念性的东西,任何技术的修炼都需要在实践中归纳总结不断积累。当然,如果能与经验丰富的架构大牛一起探讨,不失为一种提升架构技能的好方式。

2018 年 5 月 27 日(周日)上海源创会 —— 架构专场,我们邀请了:

五位行业大牛,以架构为核心,与你一起分享架构经验,进行一场关于面对面的技术对话。

注:以上内容有引用和参考 [ 在首席架构师眼里,架构的本质是……]:

相关阅读

  • 潍坊市车管所荣膺全国一等车管所

  •   潍坊日报社潍坊融媒讯 2022年,潍坊市车管所秉承“以人民为中心”的工作理念,紧紧围绕“两个部令实施、一等车管所创建、常态化疫情防控、减量控大考核”等重点工作狠抓落
  • 推动检察队伍建设

  • 今年市两会期间,莆田市检察院工作报告提及,坚持人才是第一资源,综合用好“莆检青年课堂”“师带徒”、检察官业务研修等机制,开展优秀公诉人论辩赛、检律论辩赛、法律文书练赛等
  • 首日办理出入境业务300多笔

  • 市民正在窗口办理业务1月8日是有序恢复受理审批中国公民因出国旅游、访友申请普通护照,恢复办理内地居民旅游、商务赴港签注。1月8日,记者从合肥市公安局出入境管理局了解到,
  • 德州税务推出优化营商环境二十条便民利企措施

  • 为进一步优化税收营商环境,更好激发企业发展活力,提振市场主体信心,推动全市经济高质量发展,近日,国家税务总局德州市税务局推出优化营商环境二十条便民利企措施。 税收政策
  • 西峰区 “互联网+智慧医疗”守护老年人健康

  • 1月5日,甘肃省庆阳市西峰区安定路街道社区卫生服务中心医疗组组长李红霖一边问诊,一边根据电脑内的人工智能辅助诊疗系统提示,录入主诉、现病史等基础信息,结合系统弹出的AI辅诊
  • 深圳光明区20名“政务之星”揭晓

  • 近日,深圳市光明区2022年度“政务之星”揭晓,20位榜样人物获得这一荣誉称号,覆盖各审批部门、区行政服务大厅、各街道行政服务大厅及社区党群服务中心从事政务服务的一线工作
  • 二手车驶出“加速度” 潍坊发力“新蓝海”

  •   潍坊日报社潍坊融媒讯 2022年12月,商务部、公安部、海关总署印发《关于进一步扩大开展二手车出口业务地区范围的通知》,决定新增14个地区开展二手车出口业务,潍坊成功入选

热门文章

  • OPPO k1的低价高配真实么?网友:不看不知道

  • 近日OPPO一款新机OPPO k1,摒弃了高价低配,就连自家老大哥r17都要怼一下。更是放弃了请代言人,以往的OPPO手机还没出来,各路流量小生,花样美男的代言就先来了。还有线下销售人员的
  • 一招教你手机无限制成为一台新设备

  • 大家平时用手机去注册app,肯定会遇到检测设备异常,交易关闭,等问题 这个都是手机已经不止1-2次注册过此app,不断更换手机仅是一个暂时的方法,却不是长久之计,手机总归会用完
  • 从零开始如何开网店

  • 随着互联网的高速发展,人们的生活发生了翻天覆地的变化,生活节奏越来越快,网购已经成为家家户户生活中离不开的一种购物方式了。网购的发展使得越来越多的人想要涉足电商事业,那

最新文章

  • “贯彻党的二十大精神 民政爱民送温暖”

  • 春节将至,为更好关心困难群众的生产生活问题,帮助困难家庭度过一个安乐祥和的新春佳节,1月4日,石嘴山市举行“学习贯彻二十大 民政爱民送温暖”物资发放仪式。此次活动共筹措资
  • 春运送福 温暖回家路

  • 2023年春运于1月7日拉开大幕,火车站、机场及各大客运站人头攒动。在拉萨火车站候车室内,39岁的赵政西说,他在拉萨做生意8年了,准备乘坐火车回河南老家过年。“今年自己没有挣到
  • 阜阳:“春风行动”招聘会 134人达成就业意向

  • 1月7日,在由市人社局、阜城三区人社局主办,市就业管理服务中心、颍州区公共就业和人才服务中心承办的2023年“春风行动暨就业援助月‘接您回家’专场招聘会”上,现场初步达成就
  • 第十六届深圳国际金融博览会1月9日开幕

  • 1月9日,以“科技 数字 绿色 消费”为主题的第十六届深圳国际金融博览会(简称金博会)在深圳会展中心1号馆开幕。本届金博会由深圳市人民政府主办,深圳市贸促委、深圳市地方金融监
  • 市人大常委会 及机关全体人员会议召开

  • 掌上济宁1月8日讯(记者 王粲)今天下午,市人大常委会及机关全体人员会议举行。会议深入学习贯彻市第十八届人民代表大会第二次会议精神,对大会服务保障工作和大会成果进行总结,并