经典游戏 Hammurabi 的 MiniScript 移植:Basic Computer Games 单文件实现与运行指南
示例工程【免费下载链接】basic-computer-gamesAn updated version of the classic Basic Computer Games book, with well-written examples in a variety of common MEMORY SAFE, SCRIPTING programming languages. See https://coding-horror.github.io/basic-computer-games/项目地址https://gitcode.com/gh_mirrors/ba/basic-computer-games点击查看免费下载本指南围绕《Basic Computer Games》仓库中 Hammurabi哈穆拉比苏美尔治理模拟的 MiniScript 移植版展开完整介绍该版本 README 给出的两种运行方式命令行 MiniScript 与 Mini Micro并深入解读其单文件源码 hammurabi.ms 的模块化设计、游戏状态模型与核心数值逻辑。读完本文你将掌握在两类 MiniScript 运行时下启动并游玩该移植版的方法也能对照原始 BASIC 程序与仓库内其他语言移植实现理解经典 1978 年游戏在现代脚本语言中的重构思路。一、项目背景与文件定位本仓库是经典《Basic Computer Games》1978一书的现代化版本为每个游戏提供了多种内存安全、脚本类语言的移植实现。Hammurabi 游戏同时存在于两个目录主目录 43_Hammurabi包含.bas原始 BASIC 源码以及 csharp、java、javascript、python、rust、vbnet 等多语言移植交替语言目录 00_Alternate_Languages/43_Hammurabi/MiniScript即本文主题包含一份 README.md 与一个单文件实现 hammurabi.ms。按照 README 的说明该移植版的原始源码下载自 Vintage Basic 站点后转换为 MiniScript一种专为嵌入、教学与小游戏设计的轻量脚本语言。README 全文的核心内容就是交代这个来源并给出两条可运行的游玩路径。1.1 游戏规则速览在深入代码之前先回顾 43_Hammurabi/README.md 对游戏机制的描述你将扮演苏美尔城市的管理者哈穆拉比管理一座拥有约 1000 英亩土地、100 人口、3000 蒲式耳存粮的城市任期十年。每年你需要以每英亩 1726 蒲式耳的浮动价格买进或卖出土地用存粮喂饱民众每人每年需要 20 蒲式耳留下足够种子播种来年作物每英亩需半蒲式耳种子且每人只能照料 10 英亩。同时还要应对鼠灾、瘟疫、丰收与歉收等随机事件。README 还保留了一个著名的移植彩蛋程序内部拼写始终是单个 m 的 Hamurabi而非 Hammurabi这是 Ahl 版本 BASIC 程序中流传下来的拼写错误——hammurabi.ms 第 1 行的标题输出同样沿用了这一拼写。二、运行方式一命令行 MiniScript2.1 安装命令行版 MiniScript根据 README 的说明首先需要从 miniscript.org 网站的命令行版下载页Command-Line MiniScript获取适合你操作系统的安装包并完成安装。安装完成后命令行里便有了miniscript这个可执行程序。2.2 运行命令在仓库根目录下执行miniscript后跟脚本文件名即可miniscript 00_Alternate_Languages/43_Hammurabi/MiniScript/hammurabi.ms程序启动后会依次打印标题 Hamurabi、出处 Creative Computing Morristown, New Jersey随后进入游戏主循环等待你逐年输入决策数字。该脚本不依赖任何外部库或额外资源文件属于典型的下载即跑单文件程序——这正是 MiniScript 移植版的便利之处。三、运行方式二Mini MicroMini Micro 是 MiniScript 官方提供的图形化主机环境同样从 miniscript.org 下载。README 给出了详细的挂载与运行步骤下载并启动 Mini Micro点击顶部第一个磁盘插槽选择 Mount Folder...挂载文件夹选择包含hammurabi.ms与该 README 的MiniScript目录在 Mini Micro 的命令提示符下依次输入load hammurabi runload会从当前挂载的文件夹中把同名.ms程序读入内存run开始执行。这种方式适合喜欢在带模拟显示器、可交互终端环境中运行经典游戏的玩家。四、源码结构单文件内的模块化设计hammurabi.ms 全文约 190 行没有使用类或对象而是利用了 MiniScript 的两个核心特性map字典作为唯一状态容器与一等函数。4.1 全局状态容器 game程序一开始定义了中心状态 mapgame {} game.z 0 // year game.p 95 game.s 2800 // bushels in store game.h 3000 // bushels eaten by rats game.e game.h - game.s game.food 0 // bushels given to people to eat game.y 3 // value (in bushels) per acre game.a game.h / game.y // acres owned game.i 5 // immigration/births game.d 0 // how many starved this year game.d1 0 // total starved over the whole game game.p1 0 // average % of population starved per year game.q 1 // if negative, then a plague strikes所有状态字段的含义与初始值如下表并与 原始 BASIC 程序 第 95110 行逐项对应字段含义初始值BASIC 对应z当前年份0进入循环后立即 1Z0p人口95P95s仓库存粮蒲式耳2800S2800h当年收获量3000H3000e老鼠吃掉的存粮3000-2800200EH-Sfood当年分给民众的口粮0循环内临时量y每英亩产出/交易单价3Y3a拥有的英亩数3000/31000AH/Yi新增/移入人口5I5d本年度饿死人数0D0d1十年累计饿死人数0D10p1平均每年饿死率%0P10q瘟疫标记为负则爆发瘟疫1Q1值得注意仓库主 README 描述初始状态为100 人、3000 蒲式耳存粮而实际源码中人口为 95、仓库存粮为 2800。这是程序实现与概述文案之间的既有差异收获量h初始为 3000移植版忠实保留了 BASIC 原版的数值设定。4.2 函数清单整个程序由 9 个以function字面量定义、赋给局部变量的函数构成职责边界清晰函数职责startYear年份推进、人口/瘟疫结算并打印年度报告exitGame打印结束语含响铃char(7)并退出impeach弹劾结局打印national fink并退出getNumber带校验的输入封装负数退出、超上限重问hint可选提示默认关闭min求三个数的较小值getDecisions每年三项决策买卖土地、喂食、播种simulateYear年末结算收获、鼠灾、生育、瘟疫、饿死printFinalResult十年终局评估与评级主循环位于文件末尾while true startYear if game.z 11 then break getDecisions simulateYear end while printFinalResult exitGame从源码结构看这个循环把年度报告 → 决策 → 年末结算组织成标准的游戏回合制框架先结算并报告上年结果若未到第 11 年即未满十年则继续决策与结算。五、输入校验与提示机制5.1 getNumber统一输入入口原 BASIC 中每个INPUT后都紧跟若干IF校验如第 320324、340344、410422 行移植版把这些重复逻辑收敛为一个getNumber函数getNumber function(prompt, max, maxMsg) while true value input(prompt ? ).val if value 0 then print; print Hamurabi: I cannot do what you wish. print Get yourself another steward! exitGame end if if value max then return value print Hamurabi: Think again. maxMsg Now then, end while end function它有三个要点均为 MiniScript 语法特性input(prompt ? ).valinput返回字符串.val将其转换为数值一步完成读入转型输入负数视为严重冒犯直接进入exitGame对应 BASIC 第 850 行的Get yourself another steward!流程超过上限则打印Think again. maxMsg Now then,后重新循环直到合法为止。maxMsg由调用方传入用于输出具体的资源上限如存粮数、土地数把 BASIC 中分散的GOSUB 710/GOSUB 720提示子程序统一成了数据驱动的提示。5.2 hint为降低难度预留的调试开关hint function(msg) // This was not in the original program. But if you want to make // the game easier, uncomment this line: //print msg end function这是原版没有的移植者附加功能当玩家在播种前不确定可种植上限时取消//print msg一行的注释即可在运行时打印内部提示如people want X bushels、You can plant up to Y acres显著降低上手难度。5.3 min三点播种上限min function(a, b, c) m [a, b, c] m.sort return m[0] end functionMiniScript 列表自带sort方法取排序后首元素即三数最小值。这个辅助函数专门服务于播种上限的提示见下一节。六、年度决策流程getDecisionsgetDecisions依次处理三件事且每一件都有对应的资源约束校验。6.1 买卖土地c floor(10 * rnd); game.y c 17 print Land is trading at game.y bushels per acre. qty getNumber(How many acres do you wish to buy, floor(game.s / game.y), You have only eol game.s bushels of grain.) if qty 0 then game.a qty game.s - game.y * qty else qty getNumber(How many acres do you wish to sell, game.a, You own only eol game.a acres.) game.a - qty game.s game.y * qty end if地价由floor(10*rnd) 17生成取值范围 1726 蒲式耳/英亩与主 README 描述一致输入 0 视为买入上限为floor(存粮/地价)买不起则重问输入 0 或负值负值会被getNumber拦截则转入卖出分支卖出上限为当前拥有土地数购买时s - y*qty卖出时s y*qty土地与存粮此消彼长eol char(10)用于在提示中换行显示存粮数。6.2 喂食game.food getNumber(How many bushels do you wish to feed your people, game.s, You have only eol game.s bushels of grain.) game.s - game.food喂食上限为当前存粮输入后立即从存粮中扣除food记入年末结算。6.3 播种三重限制播种是整个决策部分最复杂的环节移植版用注释明确写出了三个约束并用while循环逐条校验hint You can plant up to min(game.a, floor(game.s * 2), floor(game.p*10-1)) acres. game.d 0 while game.a 0 and game.s 2 game.d getNumber(How many acres do you wish to plant with seed, game.a, You own only game.a acres.) // enough grain for seed? (each bushel can plant 2 acres) if floor(game.d / 2) game.s then print Hamurabi: Think again. You have only eol game.s bushels of grain. Now then, continue end if // enough people to tend the crops? (each person can tend 10 acres) if game.d game.p * 10 then print But you have only game.p people to tend the fields! Now then, continue end if break end while game.s - floor(game.d / 2)三条限制分别是土地限制播种量不得超过拥有的英亩数game.a种子限制每蒲式耳种子可播种 2 英亩即需要floor(d/2) s否则提示存粮不足并continue重问人力限制每人照料 10 英亩即d p*10否则提示人手不足并重问。hint行中的min(a, s*2, p*10-1)恰好预计算了这三者共同约束下的可种上限。循环条件game.a 0 and game.s 2意味着只要既无土地又无种子连 2 蒲式耳都不到就跳过播种环节对应 BASIC 中IF D0 THEN 511直接进入结算的分支。结算时s - floor(d/2)统一扣除种子消耗。七、年末结算simulateYearsimulateYear function // A bountiful harvest! c floor(rnd * 5) 1 game.y c; game.h game.d * game.y; game.e 0 c floor(rnd * 5) 1 if c % 2 0 then // rats are running wild!! game.e floor(game.s / c) end if game.s game.h - game.e ...年末结算按固定顺序完成五件事收获随机产出c floor(rnd*5)115 蒲式耳/英亩h 播种量 * 产出收获入仓鼠灾再掷一次 15若为偶数则老鼠吃掉s/c蒲式耳存粮对应 BASIC 第 522525 行 RATS ARE RUNNING WILD生育i floor(c*(20*as)/p/1001)婴儿数正比于土地与存粮、反比于人口满腹人口c floor(food/20)即每 20 蒲式耳口粮养活 1 人瘟疫判定game.q floor(10*(2*rnd-0.3))——当rnd 0.15时q为负即约 15% 概率爆发瘟疫该标记在次年startYear报告中生效人口减半。7.1 饿死与弹劾if game.p c then game.d 0 else // starve enough for impeachment? game.d game.p - c if game.d 0.45 * game.p then print; print You starved game.d people in one year!!! impeach end if game.p1 ((game.z - 1) * game.p1 game.d * 100 / game.p) / game.z game.p c game.d1 game.d end if若当年满腹人口c不少于现有人口则无人饿死d0否则饿死人数d p - c若单年饿死超过人口的 45%立即触发impeach弹劾并退出未触发弹劾则更新累计指标p1是逐年递推的加权平均饿死率((z-1)*p1 d*100/p)/zd1为十年累计饿死总数随后人口更新为c。7.2 年度报告与瘟疫落地startYearstartYear在次年年初打印上年结算结果game.z 1 print In year game.z , game.d people starved, game.i came to the city, game.p game.i if game.q 0 then game.p floor(game.p / 2) print A horrible plague struck! Half the people died. end if注意执行顺序先加上年度新生人口i再检查q是否在上年末为负——若为负则人口减半并打印瘟疫信息。这与 BASIC 第 218229 行的逻辑完全一致。八、十年终局评估printFinalResult十年第 11 年初z 11游戏结束后进入终局评估print In your 10-year term of office, game.p1 percent of the print population starved per year on the average, i.e., a total of print game.d1 people died!! acresPer game.a / game.p print You started with 10 acres per person and ended with print acresPer acres per person.; print if game.p1 33 or acresPer 7 then impeach if game.p1 10 or acresPer 9 then // heavy-handed performance... hate your guts!!尼禄式暴君评价 else if game.p1 3 or acresPer 10 then // could have been somewhat better...一般评价随机生成刺客人数 else // A fantastic performance!! Charlemange, Disraeli, and Jefferson... end if评级依据只有两个指标十年平均饿死率p1与人均英亩数acresPer共分四档条件结局/评语p1 33或acresPer 7弹劾宣布为 national finkp1 10或acresPer 9暴君评价Nero and Ivan IVp1 3或acresPer 10中等评价并随机输出想刺杀你的民众数量floor(p*0.8*rnd)其余情况高度评价Charlemagne, Disraeli, and Jefferson这一评级逻辑与仓库中 C# 移植版的Rules.GetGameResult高度一致——C# 使用元组模式匹配( 33, _)、(_, 7)等写法表达同样的四档判断是理解该判定表的绝佳旁证。九、与原始 BASIC 及其他移植版的对照9.1 逐段对照 hammurabi.basMiniScript 函数对应 BASIC 行号主要变化startYear215270用字符串拼接与换行char(10)替代TAB/分号布局getNumber320324、340344、410422、440455三处INPUT校验收敛为一个带maxMsg参数的函数getDecisions310510while循环 continue替代GOTO重问simulateYear511557随机数统一为rnd模运算用%printFinalResult860975结构逐行保留impeach565、990抽出为独立函数可以看出移植版的算法与数值完全忠实于 BASIC 原版但用函数、循环、break/continue替换了原版密集的GOTO/GOSUB跳转可读性大幅提升。eol、gamemap、getNumber、min、hint都是原版没有的结构性再创作。9.2 与 C# 移植版 的架构对照C# 版将同一套规则拆分为更细的职责模块Program.cs 维护主循环、Rules.cs 以纯函数形式实现BuyLand/SellLand/FeedPeople/PlantCrops/EndTurn/GetGameResult并用GameState不可变记录承载状态。对比可见 MiniScript 版选择单一 map 函数的轻量路线二者规则常量地价 1726、收获 15、每人 20 蒲式耳/年、每人 10 英亩、每 2 英亩 1 蒲式耳种子、45% 弹劾阈值、15% 瘟疫概率完全一致互为印证。结语00_Alternate_Languages/43_Hammurabi/MiniScript 目录以README 单文件的最小形态交付了一个可玩性完整的经典游戏移植README 给出了命令行与 Mini Micro 两条清晰的运行路径hammurabi.ms 则用约 190 行 MiniScript 完整复刻了原始 BASIC 的数值模型与判定规则并借助 map 状态容器、一等函数、输入校验封装等手段显著改善了代码结构。无论你是想快速体验苏美尔治理的艰难还是想研究经典 GOTO 程序向现代脚本语言重构的方法论这个目录都是兼具趣味与学习价值的范本。赞分享示例工程【免费下载链接】basic-computer-gamesAn updated version of the classic Basic Computer Games book, with well-written examples in a variety of common MEMORY SAFE, SCRIPTING programming languages. See https://coding-horror.github.io/basic-computer-games/项目地址https://gitcode.com/gh_mirrors/ba/basic-computer-games点击查看免费下载相关推荐在 MiniScript / Mini Micro 上运行经典《生命游戏》basic-computer-games 仓库 MiniScript 移植版实战指南在 MiniScript / Mini Micro 上运行经典《生命游戏》basic computer games 仓库 MiniScript 移植版实战指南示例工程ToolJet 使用 Okta 作为 OIDC 身份提供商的 SSO 配置实战ToolJet 使用 Okta 作为 OIDC 身份提供商的 SSO 配置实战 本文以 ToolJet 官方文档 Okta 指南为主体完整讲解如何把 Okta示例工程在 MiniScript 与 Mini Micro 中运行经典月球着陆游戏Basic Computer Games 的 LEM / LUNAR / ROCKET 移植指南在 MiniScript 与 Mini Micro 中运行经典月球着陆游戏Basic Computer Games 的 LEM / LUNAR / ROCKE示例工程上一篇猫抓Cat-Catch终极指南3分钟快速上手浏览器资源嗅探神器下一篇GrapesJS MJML API全解析扩展编辑器功能的实用指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Skia demos.skia.org 本地运行指南:用本地 CanvasKit 构建调试 Web 2D 演示

Skia demos.skia.org 本地运行指南:用本地 CanvasKit 构建调试 Web 2D 演示

图形学 【免费下载链接】skia Skia is a complete 2D graphic library for drawing Text, Geometries, and Images. See documentation for contribution instructions. 项目地址: https://gitcode.com/gh_mirrors/ski/skia 点击查看 免费下载 导读 本文围绕 Skia…

2026/9/24 15:03:20 阅读更多 →
Play Framework(Scala)Body Parsers 完全指南:从内置解析器到自定义流式解析

Play Framework(Scala)Body Parsers 完全指南:从内置解析器到自定义流式解析

后端Web框架 【免费下载链接】playframework The Community Maintained High Velocity Web Framework For Java and Scala. 项目地址: https://gitcode.com/gh_mirrors/pl/playframework 点击查看 免费下载 HTTP 请求由头部(Header)与请求体…

2026/9/24 15:03:20 阅读更多 →
RK3588适配IMX586实战:MIPI CSI硬件链路与V4L2驱动深度调试

RK3588适配IMX586实战:MIPI CSI硬件链路与V4L2驱动深度调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/24 15:03:20 阅读更多 →

最新新闻

深度学习新闻分类推荐系统:从TextCNN到个性化推荐

深度学习新闻分类推荐系统:从TextCNN到个性化推荐

简介:这份基于深度学习的新闻分类推荐系统Python实现源码,是专为课程设计与期末大作业准备的高分项目,下载后无需修改即可运行,适用于需要快速交付完整课题的高校学生。系统涵盖新闻数据预处理、文本分类模型训练、推荐逻辑展示等…

2026/9/25 0:00:41 阅读更多 →
汽车电子底层软件开发:AUTOSAR与CAN总线实战解析

汽车电子底层软件开发:AUTOSAR与CAN总线实战解析

1. 这门“汽车电子底层软件开发就业课”到底在教什么?——不是写个LED闪烁就能上岗的很多人看到“汽车电子底层软件开发就业课”这个标题,第一反应是:不就是嵌入式C语言单片机CAN通信?刷几道LeetCode、调通一个STM32 CAN收发例程&…

2026/9/25 0:00:41 阅读更多 →
Vim基础操作全攻略:保存退出、模式切换与高频命令实战

Vim基础操作全攻略:保存退出、模式切换与高频命令实战

1. 项目概述1.1 核心需求解析今天聊聊Vim。写这个题目的原因是:几乎每个后端开发者、运维人员、数据工程师某天都会遇到一个场景——深夜加班,服务器登录界面只有黑底白字,编辑器只有vi/vim,你必须在五分钟内完成一次配置修改并保…

2026/9/25 0:00:41 阅读更多 →
Python+CNN车牌识别实战:从数据预处理到模型训练与部署

Python+CNN车牌识别实战:从数据预处理到模型训练与部署

简介:基于Python与卷积神经网络的车牌识别项目,面向计算机视觉初学者及智能交通开发者,目标是帮助用户掌握从数据预处理、模型构建到实际部署的完整流程。压缩包共25个文件,包含jpg/png图像样本、py训练脚本、md说明文档、dat数据…

2026/9/25 0:00:41 阅读更多 →
AI元人文:从工具使用到思维重构的深度探索

AI元人文:从工具使用到思维重构的深度探索

最近半年我一直在琢磨一件事:AI元人文到底是什么?说白了,就是“用元视角重新审视人与AI的关系”,也在“探索AI如何反向逼着我们发现自己的思考边界”。标题里的“元探索”,在我看就是一层套一层的追问——当你用AI解决…

2026/9/25 0:00:41 阅读更多 →
CVE-2025-27591深度解析:日志组件本地权限提升漏洞与防御

CVE-2025-27591深度解析:日志组件本地权限提升漏洞与防御

CVE-2025-27591 最近在安全圈里讨论度不低,核心是 Below 这个日志处理组件在权限控制上出了问题,低权限用户有机会利用日志文件、临时目录的处理流程,把自身权限抬升到管理员甚至系统级别。很多人一听到“利用脚本”就先想到怎么打&#xff0…

2026/9/24 23:59:40 阅读更多 →

日新闻

AI元人文:从工具使用到思维重构的深度探索

AI元人文:从工具使用到思维重构的深度探索

最近半年我一直在琢磨一件事:AI元人文到底是什么?说白了,就是“用元视角重新审视人与AI的关系”,也在“探索AI如何反向逼着我们发现自己的思考边界”。标题里的“元探索”,在我看就是一层套一层的追问——当你用AI解决…

2026/9/25 0:00:41 阅读更多 →
Python+CNN车牌识别实战:从数据预处理到模型训练与部署

Python+CNN车牌识别实战:从数据预处理到模型训练与部署

简介:基于Python与卷积神经网络的车牌识别项目,面向计算机视觉初学者及智能交通开发者,目标是帮助用户掌握从数据预处理、模型构建到实际部署的完整流程。压缩包共25个文件,包含jpg/png图像样本、py训练脚本、md说明文档、dat数据…

2026/9/25 0:00:41 阅读更多 →
Vim基础操作全攻略:保存退出、模式切换与高频命令实战

Vim基础操作全攻略:保存退出、模式切换与高频命令实战

1. 项目概述1.1 核心需求解析今天聊聊Vim。写这个题目的原因是:几乎每个后端开发者、运维人员、数据工程师某天都会遇到一个场景——深夜加班,服务器登录界面只有黑底白字,编辑器只有vi/vim,你必须在五分钟内完成一次配置修改并保…

2026/9/25 0:00:41 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/24 14:34:13 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/24 9:10:42 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/24 14:33:56 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/24 12:50:34 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/24 14:33:48 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/24 12:49:17 阅读更多 →