架构师必备逻辑思维(下)

简介: 架构师必备逻辑思维(下)

6 

非功能性需求--静态知识容易体系化



   对于架构师来说,静态知识体系是通用的。业务知识没个几年打磨,很难体系化。就算静态知识来说,很多思想、思路都是从其它行业、现实中抽象而来的。    任何行业的领航者,源源不断的思考源泉来自哪里呢?除了领域内深厚功底外,在现实世界中的经历,对生活的感悟是灵感的源头!毕竟任何技术都是解决生活的遇到的问题,灵感也是来源于生活。近年来自己突然想通一个事情,世上很多钻牛角尖,有一种是见得太少。下面举例把架构中用到一些技术跟现实中对照梳理一下(例子有些牵强,只为回顾技术点。ps写了半天没点技术相关内容也不好):      弹性扩容、微服务、注册发现、微服务架构:


疫情期间,全国医疗团队支援湖北。北京派出136人(多名医生、多名护士),支援武汉协和医院。协和医院把136名医务人员注册备案后,安排到相关科室,由医院统一协调安排工作。提升医院医治病人的能力。这里医院相当于微服务体系。其它医院也接受援助,不同医院管理规则肯定有差别(微服务架构有多少实现方式),但整体效果差别不大。另外,如果把医院当成服务个体来看,火神山、雷神山也相当于快速扩容的案例。


  阻塞、熔断、限流、降级、涟漪


全国各地排医疗队到武汉前,处理不过来的病人呢?  阻塞:排队在某处引起体系奔溃,人心惶惶!限流:有选择的接受病人!降级:简单处理一下或不接受非疫情病人,让病人回家隔离!熔断处理:接收到一定阶段后,不在接受新病人!涟漪处理:救护车在院前做一部分处理,防止带到医院上游造成压力!


   隔离、关键链路:


隔离:武汉封城,防止问题扩散!关键链路,无论如何食物链路必须通畅。


   API网关、路由:


外交部新闻发言官,发布官方信息后,各个媒体才能得到分发处理。


   鉴权\注册\权限:


全国统一的身份证号;信用出问题后,坐飞机被限制。


   分层:


早些年贷款买过房的人知道需要走多少流程就知道了,职责不同,层层审批,一排排红章。这里可以想想纵向横向分层的场景。


   负载均衡:


前段时间境外新冠输入严重,北京机场压力过大。统一协调后,按照规则不同航班分发到天津、太原等地,降低首都机场压力。


   削峰:


98年洪水,宜昌站的最大洪峰流量是6.36万m³/s。而10年7月三峡水库的入库流量也达到了将近7万m³/s,如果这个流量再次通过荆州河段,洪水的威力绝对不亚于98年的洪水,然而三峡工程凭借其巨大的拦洪能力,硬是将7万m³/s的洪峰(入库流量)削减到4万m³/s(下泄流量),几天之内将大约70亿立方米的洪水拦在水库(消息队列)之中。


   统一配置中心:


每个银行的存款利率都不一样,通常各大银行的存款利率都是在央行的基准利率上,进行浮动得出的。央行自己调整后,各大银行自行更新自己利率。


   框架:见上文。

   同步、异步,阻塞、非阻塞:


同步阻塞:小时候妈妈给宝宝喂饭,妈妈喂完后才去刷锅刷碗。同步非阻塞:宝宝长大点能自己吃了不用喂了,妈妈看着宝宝吃,确认吃完后才去刷锅刷碗(爱心泛滥&独立培养)。异步非阻塞回调:孩子更加懂事了,妈妈做好饭给儿子(立马干别的事),儿子边玩手机游戏边吃饭,妈妈去看电视,儿子吃饭后,告诉妈妈,我吃完了,妈妈再去刷锅刷碗。


远程调用、超时、重试、幂等、队列等:


高中同桌男女谈恋爱,自习时候小声相互表达爱意。高考考入不同城市大学,只能通过书信(远程调用)表达相思。本来约好一周一封来回信,某周末,男孩没有收到女孩回信(超时)。男孩又写了一封信邮寄(重试),由于邮局原因,积压好多信件(队列),女孩没有收到男孩来信也没法回信(突然故障),邮局恢复后后突然收到好几封信,回了一封信(类似幂等处理)。


   通知:


村口大喇叭播报,疫情期间所有人不得外出。成年人无法去劳作,学生无法上去,幼童无法出去游戏,不同角色人得到通知,表现及造成影响不同。


   选举:


英蒂利海上大帝国选举领袖,采用自荐提名式,最终获得票数大于一半获选,否则一直选下去。某次发生大风暴,隔离了领袖所在小岛,没办法,其它岛屿选择出了新的领袖。


   交易:


一手交钱一手交货;让村长当个担保人,先把钱给村长;


   广告竞价:


线下拍卖机制的参考和不断优化,最终形成的GSP广义第二价格拍卖这种易于操作、均衡各方利益的竞价方式。


   前后端分离:


各人自扫门前雪,莫管他家瓦上霜的流水线的工作方式。其实从纵向分层、微服务来看,核心问题是,中心避免不了?中心控制放到哪里?如何去中心化?


   日志、监控:


“飞机黑匣子”是俗名。它的真名很普通:“飞行数据记录仪(FDR)”。它是一种将飞机飞行的情况储存下来的仪器,当“不幸”发生以后需要了解飞行情况时,可以通过一些设备把它们播放出来。14年,马航出事后,对航空器实时位置跟踪提出事件触发和定时执行的思路。包括预警等设置。


   全链路跟踪:


举个业务系统例子,强调无侵入性、低成本、与业务(品类)无关的通用实现。“食品质量安全追溯系统”是一个能够连接生产、检验、监管和消费各个环节,让消费者了解符合卫生安全的生产和流通过程,提高消费者放心程度的信息管理系统。


   服务部署、docker、k8s:


集装箱、火车皮运力调度调度真是伟大的发明。把繁荣的车船码头变为历史,间接的促进了货品尺寸标准化。


   流计算:


了解一下自来水厂净水过程。如果某个节点出现问题,将出现“系统故障”。


   批处理计算:


小区凌晨垃圾调度车把垃圾桶中垃圾调度到郊区垃圾场,垃圾场定时启动相关流程,批量处理这些垃圾。(从时间间隔长短来看,批流、实时离线是个相对的概念)


   存储距离、存储格式:


老家山西产煤,小时候经常看到火车、汽车运煤出省,比如到天津港口;也有把煤加工成焦炭运输出省,到港口货船;也会本地发电运电到全国直接使用。如果从物质永恒不变角度来看,自然界(人类)需要哪种形式的物质,需要转化、存储、使用。


   数据不一致、cap:


疫情期间,政策一天一个样。工作需要拜访其它公司,进写字楼有的只要扫码、有的需要登记、有的直接不让进... ...。我们抛开政策理解的因素,各个执行点对政策的接收时差肯定有区别。


   冗余:


飞机通常会有多个发动机;汽车都会有备用轮胎;也有类汽车轮胎直接装到车上,当重量达到某个阈值时,可以直接接触地面承重。    ... ...


   注:架构师的抽象是为了获得更好的实现方案;产品经理的抽象是为了更好的发现需求点,设计优秀的产品解决方案满足需求。




7 

功能性需求的难点-多元化思维

   


   有很多产品经理方面的书籍对功能性需求的管理有详细的描述。需求管理不是我们讨论的范畴。试着思考,为什么系统要考虑可扩展性?为什么产品和技术要掐架?为什么要上各种中台?究其原因,是我们对需求的把控能力、或对需求变更的把控能力较差造成的。或者说,需求随着用户群体效应、时间变化会发生质变,在每个时空用户三维坐标系内都是不同的。   我们不知道谁发现了水,但是肯定不是鱼。后验就是必须体验后才知道的,例如这杯水热不热。“需求”在一系列干系人面前,是个特殊的要素。可以明确的是,谁也无法真正的掌握它,只能通过事后的反应、数据等点点滴滴来验证当初的决策事是否正确。现代软件产品对这种后验的支持,必须很到位才能有竞争力    面对不确定问题时,最好的解决思路不是试图找到解决办法,而是提升对问题变化的敏感度。创业也好、研发新产品也好,都是如此,当然构建世界也是如此。多元化思维值得期望成功的人们拥有。    成大事者,一定要有从全局观察、大处着眼的气度与能力,绝不能拘于小范围或局部;扩展多元化思维,是一个人走向成功的动力与方向。人的大脑是多元化的,多元化思维是多元化大脑的最佳思维方式。然而,过去我们所受的教育,使我们习惯于“直线式的思考”。其实这并不是一种好的思维方法,相比、较而发散性的多元化思维在处理各种问题时要迅速和有效得多。

   这里推荐《穷查理宝典》这本书。

注:我们一定要把架构提升到一定高度,而不是简单执行层面。我们的偶像应该是邓小平爷爷,中国社会主义改革开放和现代化建设的总设计师。




8 

结语



   回到文章开头。复杂事情往简单了去想,是拆解,是切割。确定边界后,找到某个点突破,就像一剑破万法;而将简单事情往复杂了去想,是缝补,是搭建。形成面面俱到的规矩、规划、指导方案,规矩内任何组织都逃不出框架,就像是打造自成规则的小天地。      你的答案是什么呢?欢迎留言!



名句摘抄


“授人以鱼,不如授人以渔;授人以渔,不如授人以欲。” 就是指没有直接给予物质,而是教以方法或某种信念。


相关文章
|
8月前
|
Linux 调度
单片机面向对象思维的架构:时间轮片法
单片机面向对象思维的架构:时间轮片法
98 0
|
存储 SQL 关系型数据库
【面试题精讲】MySQL逻辑架构
【面试题精讲】MySQL逻辑架构
|
5月前
|
设计模式 算法 PHP
深入理解PHP中的数组操作探索编程之美:从代码到架构的思维转变
【8月更文挑战第24天】在PHP编程中,数组是基础且强大的数据结构。本文将通过浅显易懂的方式,介绍如何在PHP中高效地操作数组,包括创建、遍历、排序和过滤等常见任务。无论你是初学者还是有经验的开发者,这篇文章都会带给你新的启示。 【8月更文挑战第24天】在编程的世界中,代码不仅仅是冰冷的字符排列,它承载着思想、解决问题的智慧和创新的灵魂。本文将通过个人的技术感悟,带领读者从编写单一功能的代码片段出发,逐步深入到整个软件架构的设计哲学,探索如何将代码块转化为高效、可维护和可扩展的系统。我们将一起见证,当代码与架构思维相结合时,如何引发技术实践的革命性飞跃。
|
5月前
|
设计模式 架构师 数据建模
架构师必备底层逻辑:设计与建模的技术深度探索
【8月更文挑战第13天】在软件开发的浩瀚星海中,架构师如同星辰指引,他们不仅规划着系统的蓝图,更在底层逻辑上精雕细琢,确保系统的稳健与高效。其中,“设计与建模”作为架构师的核心能力之一,是连接业务需求与技术实现的桥梁。本文将深入探讨架构师在设计与建模过程中的关键思维与实践方法,为工作学习中的技术同仁提供一份宝贵的干货分享。
70 3
|
5月前
|
开发工具 Android开发
Android项目架构设计问题之SDK内部减少每次回调时的冗余判断逻辑如何解决
Android项目架构设计问题之SDK内部减少每次回调时的冗余判断逻辑如何解决
47 0
|
5月前
|
Android开发 iOS开发
Android项目架构设计问题之将隐式跳转的逻辑进行抽象和封装如何解决
Android项目架构设计问题之将隐式跳转的逻辑进行抽象和封装如何解决
57 0
|
6月前
|
监控 安全 前端开发
交易所系统开发(源码正式版)/需求逻辑/玩法详情/规则架构
交易所源码开发是指基于特定的需求和要求,从头开始构建一个自定义的交易所平台的开发过程。这种开发可以包括以下几个关键方面:
|
6月前
|
运维 Java Docker
业务系统架构实践问题之在某些情况下,将能力代码和业务逻辑严格分层可能是一个挑战问题如何解决
业务系统架构实践问题之在某些情况下,将能力代码和业务逻辑严格分层可能是一个挑战问题如何解决
|
7月前
|
SQL 存储 缓存
第四章 逻辑架构(2)
第四章 逻辑架构
40 1
|
7月前
|
SQL 存储 缓存
第四章 逻辑架构(1)
第四章 逻辑架构
43 1

热门文章

最新文章