无处不在的架构之美

发布时间:2025-12-09 19:55:32 浏览次数:3

导读:架构是关于复杂系统整体规划和关键细节的,复杂的事物都需要进行架构设计。公司与国家的组织管理架构、产品的生态体系架构、建筑工程的功能与非功能性架构、人生的目标规划与关键抉择架构……架构无处不在,架构之美也无处不在。

来源:华章计算机(hzbook_jsj)

一个极简又极精妙的航天系统架构

移动互联网的崛起有一项功能起了至关重要的作用,就是LBS,即基于地理位置的服务,这是传统的PC互联网没有的。移动App根据用户当前位置提供个性化服务,是移动应用的一项重要特性,而这个特性的背后主要使用的是GPS技术。

手机通过GPS模块可以提供米级精度的定位服务,那么手机怎么知道自己在哪里呢?全球各地的手机有几十亿部,GPS服务为何可以涵盖这么广的范围?

手机能够知道自己的位置是通过接受GPS卫星信号计算出来的。GPS看似是一个定位服务,其实背后是一个航天系统,基本原理如图C-1所示。

手机接收卫星的广播电文,知道卫星的空间坐标,带入欧氏空间距离公式,就可以得到一个方程组

其中,P1代表手机到卫星1的距离,这个距离可以通过手机收到卫星电文的时间减去卫星发送电文的时间(这个时间包含在电文中),再乘以光速计算得到,即P1=c(t–t1),其中t是手机收到卫星信号的时间,t1是卫星发送信号的时间,c是光速。计算得到距离以后,计算这个方程组就可以得到手机的坐标{x, y, z}。

但是,这里有一个问题,卫星的时间使用原子钟,并通过地面站精确校时,时间精度极高,而手机上的时间偏差就比较大,再乘以光速,误差可能会偏离地球。所以需要对手机时间进行校正,假设手机和标准时间的偏差t,那么上面的方程组就多出一个未知量,所以需要再增加一个方程,即

也就是说,需要再增加接收一颗卫星的信号,计算由四个方程购成的方程组的解,就可以得到手机当前所在位置的坐标,同时还知道了精确的时间。所以GPS也是一个极其精确的时钟系统,某些分布式系统需要在较远距离部署的服务器之间传输数据,同时保证数据的一致性,这时候需要使用精确的、全局统一的时间戳,这个时间戳也可以通过GPS来获取。

为了保证全球主要地区在任何时候都能至少接收到四颗卫星的信号,GPS常年维持30颗左右的卫星。卫星定位系统是一个极其庞大复杂的工程,全球只有极少数国家(联盟)才能实现。但是其核心架构原理却是非常简单又非常精妙的,架构之美尽在其中。

历经两千多年时间考验的水利工程架构

四川被称为天府之国,历史上一直都是中国的战略大后方。守住四川就有机会收复全中国,这样的事例在历史上多次重现。这主要是由于四川具有得天独厚的地理条件,一方面是易守难攻的军事地理条件,另一方面是成都平原优渥的农业种植条件,以及由此支撑起的庞大军事和农业生产人口。

但是成都平原并不是一开始就是沃野千里的良田,要成为良田一方面需要良好的土地,另一方面还需要良好的灌溉,使这片土地得到良好灌溉的是两千多年前的一项水利工程—都江堰。

修建都江堰水利工程的目的是引岷江水进入成都平原,灌溉那里的土地,引水工程要解决以下三个问题。

  • 引流:这是工程的首要目的,即如何把水引进来。

  • 防洪:如果水进来后不受控制,那么当爆发洪水的时候,整个成都平原就会成为一片沼泽,所以引水以后要解决防洪的问题。

  • 排沙:岷江水势高,水流高速进入成都平原后,流速立刻下降,就会导致原来江水中的泥沙沉积下来,日积月累,河水改道,平原又成沼泽,所以还要解决江水排沙的问题。

都江堰通过设计几个关键组件互相协作,完美地解决了上面的三个问题。都江堰架构如图C-2所示。

引流主要通过江中金刚堤及其突出部鱼嘴,将岷江分为外江和内江两条江,只有内江水通过宝瓶口进入成都平原。内江深挖形成凹地,外江为凸地,枯水期江水主要通过凹地流入内江;汛期,水流速度快,由于水流的弯道动力学原理,江水主要通过外江流走,实现都江堰的第一重防洪。同时内外河道的凹凸设计利用流体力学原理将清澈的江水引入内江,将浑浊的江水排往外江,实现了都江堰的第一重排沙。

内江水流到宝瓶口的时候,由于入口狭窄,会形成漩涡,漩涡将江水中的泥沙甩出到飞沙堰,实现都江堰的第二重排沙。同时由于飞沙堰是一个低矮的堰坝,如果江水泛滥,就会冲过飞沙堰,重新流入外江,实现都江堰的第二重防洪。而宝瓶口则是从玉垒山中人工开凿出来的一个通道,只允许特定的水量流过,形成都江堰的第三重防洪。

鱼嘴、飞沙堰、宝瓶口三个组件互相联动,低耦合、高内聚,形成一个完美架构的水利工程系统,生生不息,滋养了四川盆地2000多年,是人类水利工程的奇迹,其架构原理甚至值得今天高并发、大流量的互联网系统架构借鉴。而都江堰的架构师—李冰也被蜀地人民尊为川主,纪念了几千年。

苹果公司的产品生态体系架构

苹果公司的产品技术生态体系和它的主要竞争对手都不同。苹果对其生态体系内的开发者有更强的约束和规范,而Google和微软则对Android和Windows上的开发者要宽容得多。苹果软硬一体的产品以及对应用商店的严格掌控使得其产品有更好用户体验,而Google和Windows开放的生态则吸引了更多的开发者,拥有更丰富的产品体系。

软件架构设计中,也会遇到类似的抉择。架构规范与框架应该对应用程序开发严格约束还是给予一定的自由?严格约束可以保证系统按照架构师的设计思路精确开发,但是同时也失去了灵活性,如果架构与框架设计考虑不周,开发过程又缺乏变通,可能会导致开发过程出现问题。而自由则可能导致工程师随心所欲,开发出来的系统僵硬、腐化、凌乱,难以维护。

严格和自由哪种更好,对此没有现成的答案,至少我们看到苹果和Google、微软虽然有着不同的哲学,但是它们都获得了成功。但这并不是说架构的规范严格与自由不重要,这是架构设计最重要的哲学之一,是架构师如何看待自己设计的架构和框架与整个系统的关系,是架构师自己与应用开发者关系的基础。架构师需要对自己、对产品、对团队有深刻的认知,才能把握好整个尺度。

除了系统的架构,在公司的管理与组织结构中也有这样的抉择。管理者严密地控制一切,将员工当作不会思考的螺丝钉,只要按指令做事即可;管理者对员工放任自由,员工就会完全按自己的意愿工作。两种极端显然都不会开发出优秀的产品、培养出优秀的员工。那么在两端之间,管理的尺度在哪里?现实中,严格管控的公司似乎更多一些。随着社会进步,管理者和员工共同进步,管理的尺度会不会向自由的一端移动?

在目前的实践中,一种比较高效的管理架构是:由员工发起创新方案,管理者对多个方案进行选择,然后将资源投放到某个方案上,这样既释放了员工的创造力与积极性,公司和管理者也对工作进行了较好的掌控。

对于软件设计而言,架构之美不是可有可无的奢侈品,而是决定成功与失败的一个重要因素。美并不仅仅是一个美学的问题,也不仅仅是一个品味的问题,美能够被翻译成可行的技术。如果你的程序真的优雅且美丽,那么它就容易管理。首先是因为它比其他的方案都要简洁,其次是因为它的组件都可以被换成另外的方案而不会影响其他部分。最优雅的软件往往也是最高效的。

如果说美也有缺点的话,那就是你需要通过艰巨的工作才能得到它,需要刻苦的训练才能欣赏它。

《架构师的自我修炼:技术、架构和未来》从四个方面,全方位阐述了架构师必须具备的各项知识。本书既包含了成为一个软件架构师必须具备的各种知识技能体系,也包含了修炼成为一个架构师的学习成长思考。阅读本书,相信您从中不但可以领会各种技术的内在联系,也可以领悟到更深刻的技术和成长之道。

RECOMMEND

更多架构师必看好书推荐

01

《架构即未来:现代企业可扩展的Web架构、流程和组织(原书第2版)》

 

推荐语:本书尽地介绍了影响扩展性的各个方面,包括架构、过程、组织和技术。通过阅读本书,你可以学习到以最大化敏捷性和扩展性来优化组织机构的新策略,以及对云计算(IaaS/PaaS)、NoSQL、DevOps和业务指标等的新见解。而且利用其中的工具和建议,你可以系统化地清除扩展性道路上的障碍,在技术和业务上取得前所未有的成功。

02

《架构真经:互联网技术架构的设计原则(原书第2版)》

 

推荐语:本书是《架构即未来》的姊妹篇。全书共分13章,用成功互联网产品公司首席技术官和企业家的故事,引出了对构建可扩展的产品至关重要的50条规则,可帮助软件研发人员、技术运维人员和管理者修复或重新架构现有产品,了解关于扩展的佳实践并有计划地实施,还可以帮助建立一套架构原则以推动未来的研发。

03

系统架构:复杂系统的产品设计与开发

 

推荐语:本书将系统架构的分析和综合过程中所提到的相关理念,总结成了20多条架构原则;将各种架构决策问题归纳成6种模式,使架构师能够在不同的工作场景中选用合适的模式及算法来对这些问题进行程序化的处理。

04

微服务架构设计模式

 

推荐语:由世界十大软件架构师之一、微服务架构的先驱、Java开发者社区的意见领袖Chris Richardson亲笔撰写,旨在帮助架构师和程序员学会使用微服务架构成功开发应用程序。书中描述了如何解决我们将面临的众多架构设计挑战,涵盖44个架构设计模式,系统解决服务拆分、事务管理、查询和跨服务通信等难题。本书将教会你如何开发和部署生产级别的微服务架构应用,帮助你设计、实现、测试和部署基于微服务的应用程序。

05

架构启示录

 

推荐语:本书研究传统的建筑工作与数字产品的架构工作之间有着怎样的联系,探讨了4位世界知名建筑师在各自的工作中所用的技术范式,并讲述了他们如何将各种互动元素融入这些工作,探寻这几位建筑师怎样影响数字化的世界。

你可以在阅读中思考这些工作与建筑有什么相通之处?这几位建筑师怎样运用计算机等技术来做试验,从而拓宽其工作领域?计算机、控制论以及人工智能方面的研究者与工程人员,能够通过这些建筑师与他们处理过的建筑问题,获得哪些启发?传统的建筑知识,对新兴的数字产品来说,有着什么样的意义?

直播预告

扫码关注【华章计算机】视频号

每天来听华章哥讲书

更多精彩回顾

书讯 | 5月书讯(下)| 5天小长假,一起读新书

书讯 | 5月书讯(上)| 5天小长假,一起读新书

资讯 | DB-Engines 4月数据库排名:Redis有望甩掉“千年老七”?

书单 | 360漏洞响应平台(SRC)为白帽子挑选的10本互联网安全好书

干货 | 这样构建的用户画像!想不懂你的用户都难

收藏 | 手把手教你用Scrapy爬取知乎大V粉丝列表

上新 | 【新书速递】架构师是怎样炼成的

赠书 | 【第54期】“换道超车”:无人驾驶在中国的落地之路

点击阅读全文购买

需要做网站?需要网络推广?欢迎咨询客户经理 13272073477