惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - Franky
Microsoft Azure Blog
Microsoft Azure Blog
阮一峰的网络日志
阮一峰的网络日志
宝玉的分享
宝玉的分享
量子位
N
Netflix TechBlog - Medium
M
MIT News - Artificial intelligence
GbyAI
GbyAI
Apple Machine Learning Research
Apple Machine Learning Research
博客园_首页
博客园 - 叶小钗
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
酷 壳 – CoolShell
酷 壳 – CoolShell
T
Tailwind CSS Blog
Y
Y Combinator Blog
L
LangChain Blog
The Cloudflare Blog
T
The Blog of Author Tim Ferriss
U
Unit 42
Martin Fowler
Martin Fowler
aimingoo的专栏
aimingoo的专栏
G
Google Developers Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
月光博客
月光博客

机核

游戏性能旗舰最强之选,一加 Ace 6 至尊版国补到手价2999元起 6元钱自己更换电动车刹车线 《生化危机9:安魂曲》编剧Haris Orkin专访 摸金游戏?音乐游戏!暗区新赛季这把能弹的琴有何来历? 好评国产武侠SRPG《息风谷战略》免费DLC现已推出 | 机核 GCORES 碎片 《生化危机:安魂曲》将于5月实装首个免费更新内容 | 机核 GCORES 新锐东方游戏,谱写世界新章! 沉浸式恋爱视觉小说游戏《心象演算》免费试玩版现已正式上线 | 机核 GCORES 互动影游《代号三国:龙起》上线!穿越三国与曹操并肩、与佳人同行、与权谋博弈! 《老头收集梦想生活》,游戏酒桌会6,录音笔VOL.689 | 机核 GCORES 破界·共生——《白日梦:无限世界》五大核心游戏特点解析 价格已到史低,锐龙5 9600X/锐龙7 9700X正适合抄底 时间循环之旅即刻启程!《归环》一周目测试今日开启 热门在线韩游变魂游,洛奇衍生作能否打破“花瓶”魔咒? LG UltraGear evo 全新高端显示器系列:当“5K”遇见“AI”,不止强大,更懂热爱 反套路三国互动影游《代号三国:龙起》今日上线! 愿望单登记人数突破10万!备受瞩目的“女儿养成游戏” 《梦幻魔法公主》今日于Steam平台上线!限时八折优惠中 《黑神话:悟空》全球音乐会2026巡演将于4月29日12时开票 | 机核 GCORES “Snowguelike”生存肉鸽挖矿新作《蛙穿雪境》公布发售日期,5月7日正式上线 | 机核 GCORES 重塑移动办公、AI创作新境!全新华硕灵耀Air系列、ProArt 骁龙版震撼首发,创芯未来 均分88:《Saros》媒体评分汇总 | 机核 GCORES 上海烛龙公布合作遗迹探险游戏《吉时已到》首支预告片 | 机核 GCORES 首个独立游戏《萝薇日记》已上线Steam! 烛龙新IP《吉时已到》首曝,打造国内首款中式合作遗迹探险游戏 喜加一:《暗黑破坏神Ⅳ》国服现已开启限时免费领取本体活动 | 机核 GCORES 新版《生化危机》电影定于9月18日上映,官方网站现已上线 | 机核 GCORES 《冲就完事模拟器2》“星球大战”联动DLC正式宣布 | 机核 GCORES SteamController将于5月4日发售,售价99美元 | 机核 GCORES 事已至此,内存这么用也算省钱了,“2+1”非对称双通道应用实测
墓碑上的软件工程:架构模式
韩大 · 2024-12-18 · via 机核

对于比较大型的软件项目,如何设计其架构是有一些经验可以学习的。而这里所说的“架构”,其实包含了很多个层面,最需要关注的有两个:

  • 运行时架构——这种架构关心如何解决运行效率问题,通常以程序进程图、数据流图为表达方式。在大多数开发团队的架构设计文档中,都会包含运行时架构,说明这是一种非常重要的设计方面。这种架构也会显著的影响软件代码的开发效率和部署效率。本文主要讨论的是这种架构。

  • 逻辑架构——这种架构关心软件代码之间的关系,主要目的是为了提高软件应对需求变更的便利性。人们往往会以类图、模块图来表达这种架构。这种架构设计在需要长期运营和重用性高的项目中,有至关重要的作用。因为软件的可扩展性和可重用度基本是由这个方面的设计决定的。特别是在游戏领域,需求变更的频繁程度,在多个互联网产业领域里可以说是最高的。本文会涉及一部分这种架构的内容,但不是本文的讨论重点。

除了上面两个,软件架构还包括下面的几种角度:

  • 物理架构——关心软件如何部署,以机房、服务器、网络设备为主要描述对象。

  • 数据架构——关心软件涉及的数据结构的设计,对于数据分析挖掘,多系统协作有较大的意义。

  • 开发架构——关心软件开发库之间的关系,以及版本管理、开发工具、编译构建的设计,主要为了提高多人协作开发,以及复杂软件库引用的开发效率。现在流行的集成构建系统就是一种开发架构的理论。

对于“逻辑架构”,有一本经典的书对齐有详细的介绍:《面向模式的软件架构》(POSA),这本书后面好像也有了好几版,加入了一些新的面对互联网和 AI 系统的架构模式总结

关于“逻辑架构”的架构模式,是一种比面向对象的“设计模式”更加高层次的一种抽象经验,所以需要有比较多的面向对象开发经验才能深入理解。为了结合游戏行业的特征进行说明,以前我写过一系列文字:

  • 分层、微核:https://cloud.tencent.com/developer/article/1050595

  • 管道与过滤器、MVC:https://cloud.tencent.com/developer/article/1050597

  • REST、SOA:https://cloud.tencent.com/developer/article/1050599

  • 选择模式的方法:https://cloud.tencent.com/developer/article/1050603

分层模式是最重要的模式思想,可以说是“模式的模式”,一切后续的架构模式,都基于这个模式的思想。 微核模式在大型可扩展系统中应用很广,最著名的就是 Windows 操作系统,QQ、微信等“超级 APP”也有参考这种思想。 管道与过滤器模式用于各种常见的以处理数据流为核心的系统,譬如编译器、Linux Shell、Web 服务器等,我也见过有用这个模式做游戏的,还是比较方便和经典的“主循环”结构结合 REST 模式属于比较新的模式,对于互联网的互操作有很重要的作用,可惜现在很多“开放平台”和“云”厂商并没有真正的理解 REST 的约束,而是拿它和下面的 SOA 模式搅合到一块了。不过世界本身就是不完美的,虽然丧失了 REST 预定的好处,但是剩下的好处还是足够的。 SOA 模式是现在最流行的所谓“微服务”的理论基础,尽管大多数厂商都会把 SOA 退化成最简单的无状态服务集群用法,但也说明了很多应用场景并不是特别“苛刻”,真正能把 SOA 在高实时性要求的网络游戏服务器领域用起来,才是真的牛逼。