← Financial Cloud CloudCloud Club · 挑战

极点宏观|Financial Cloud Cloud · 挑战

周末创意挑战:领导力卡牌游戏

系列: 挑战

挑战: 05

标签: #creative-expression

文章
Kiro 工作坊
01 使用 Kiro 构建:他加禄语学习 App 的提示优先产品设计工作坊
Kiro 工作坊
02 使用 Kiro 构建:他加禄语 学习 App 的教育优先开发技巧工作坊
Kiro 工作坊
03 使用 Kiro 构建:他加禄语 学习 App 的深入开发流程工作坊
Kiro 工作坊
04 使用 Kiro 构建:将 他加禄语 学习 App 本地化为中文变体工作坊
Kiro 工作坊
05 使用 Kiro 构建:他加禄语 卡片的语法与发音补强流水线工作坊
Kiro 工作坊
06 使用 Kiro 构建:他加禄语 学习 App 中可审查的独特额外例句工作坊
Kiro 工作坊
07 与 Kiro 同行:晶圆厂工程健康度 Hook 工作坊
Kiro 工作坊
08 与 Kiro 同行:蚀刻工艺窗口风险测试自动化工作坊
Kiro 工作坊
09 与 Kiro 同行:黄光微影漂移风险开发工作坊
Kiro 工作坊
10 工程团队入门 — 日常工厂值班使用 fab spc drift sync portal
Kiro 工作坊
11 工程团队附录 — fab spc drift sync portal 的日常工厂值班使用
Kiro 工作坊
12 Kiro:规格驱动工厂软件的现场工程工作坊
Kiro 工作坊
13 Kiro:实施 Lab — 从零构建具类型的 Factory Risk Portal
Kiro 工作坊
14 Kiro:工程开发人员的提示、代码和类型标准手册
Kiro 工作坊
15 Kiro:为什么强 React 提示可以防止类型宣告错误启动
Kiro 工作坊
17 与 Kiro 一起构建:建立工厂自动化门户 React UI
Kiro 工作坊
18 与 Kiro 一同构建:打造工厂自动化门户背后的自动化分析引擎
Kiro 工作坊
19 与 Kiro 一起实施:将 AI 工厂自动化辅助程序新增至工厂自动化门户
Kiro 工作坊
21 Kiro:2 小时专业开发人员工作坊指南
Kiro 工作坊
22 Kiro:从零建置 Fab SPC Drift Synchronization Portal
Kiro 工作坊
23 Kiro:提示词库与深度代码说明附录
Kiro 工作坊
30 与 Kiro 一起构建:建立工厂自动化门户 UI
Kiro 工作坊
31 与 Kiro 一起构建:打造工厂自动化门户背后的自动化分析引擎
Kiro 工作坊
32 与 Kiro 一起实施:为工厂自动化门户添加 AI 工厂自动化辅助程序
Kiro 工作坊
33 与 Kiro 一起开发:重建 CME Direct 风格的量化损益排行榜 UI
Kiro 工作坊
34 与 Kiro 一起开发:重建损益排行榜背后的量化分析引擎
Kiro 工作坊
35 与 Kiro 一起构建:适用于量化排行榜的 AWS AI 驱动交易台助理
Kiro 工作坊
36 单页交易平台 SOP
Kiro 工作坊
AgentCore
A1 使用 AgentCore 与 Strands 构建:Gateway MCP 工具织网开发者工作坊
AgentCore
A2 使用 AgentCore 与 Strands 构建:受治理的多 Agent 风险系统开发者工作坊
AgentCore
A3 使用 AgentCore 与 Strands 构建:运行时主权风险代理人开发者工作坊
AgentCore
模拟考场
E1 用 Vibe Coding 打造多语言 AWS 认证模拟题上线系统
模拟考场
E2 利用 Vibe Coding 开发技巧打造 AWS 认证模拟练习室
模拟考场
E3 打造静态 AWS 模拟考场背后的练习引擎
模拟考场
Amazon Q
Q1 Amazon Q:面向 ACM 证书自动续订的 CloudShell 优先开发人员工作坊
Amazon Q
Tagalog 练习室
T1 用提示词优先的产品设计,为 AWS Manila Community Day 构建 Tagalog 学习应用
Tagalog 练习室
T2 用教育优先的开发提示,为 AWS Manila Community Day 构建 Tagalog 学习应用
Tagalog 练习室
T3 面向 AWS Manila Community Day 的 Tagalog 学习应用深度开发流程
Tagalog 练习室
T4 为 AWS Manila Community Day 将 Tagalog 学习应用本地化为中文变体
Tagalog 练习室
T5 为 AWS Manila Community Day 的 Tagalog 卡片构建语法与发音增强流水线
Tagalog 练习室
T6 在 AWS Manila Community Day 的 Tagalog 学习应用中,让额外示例唯一且可审查
Tagalog 练习室
路线图
R1 企业级 Data Analytics Roadmap 一百个深度情境题
路线图
R2 前端开发路线图:真实企业场景
路线图
香港 Community Day
C1 与 AWS Community Day 共度香港周末:从云端议程到维港灯火
香港 Community Day
C2 演讲者的奢华周末:讲述你的 AWS 故事,再让香港登场
香港 Community Day
C3 在香港的七十二小时:AWS Community Day 演讲者的深度行程
香港 Community Day
马尼拉 Community Day
C4 AWS Community Day Manila:一场连接云技术、城市文化与真挚友谊的快乐周末
马尼拉 Community Day
C5 AWS Community Day Manila:云端建设者在菲律宾感受最幸福的精神
马尼拉 Community Day
C6 AWS Community Day Manila:在快乐之城构建、打破、重来,并找到归属
马尼拉 Community Day
C7 菲律宾马尼拉初次到访建议
马尼拉 Community Day
菲律宾 × 香港
C8 菲律宾香港资本市场升级
菲律宾 × 香港
回测
B1 使用 Bedrock AgentCore 和 Strands Agents 构建机构级 Amazon 只做多回测代理
只做多 AMZN 代理:AgentCore、Strands 与可审计的 Backtrader 台账。
B2 使用 Backtrader、AgentCore 和 Strands Agents 构建具备市场状态感知能力的 Amazon 头寸管理
把市场状态当成头寸控制,而不是图表注释。
B3 使用 Nasdaq、S&P 500、Dow、AgentCore 与 Strands 构建相对基准的 Amazon 择时系统
相对 Nasdaq、S&P 500 与道琼斯判断 AMZN 时机。
B4 使用 Bedrock AgentCore、Strands Agents 与 Backtrader 构建受治理的 Amazon 交易历史工厂
把回测做成可审计的交易历史工厂。
B5 使用 Bedrock AgentCore 与 Strands Agents 构建代理式 Amazon 回测运营模型 [Part 1]
先建立运营模型,再争论结果。
B6 为 Amazon 择时与头寸管理构建自定义 Cerebro 代码解读 [第 2 部分]
先讲 Cerebro 引擎,再讲图表。
B7 为 Amazon 策略结果与经验教训构建交易员复盘记录 [Part 3]
把策略排名写成交易员复盘记录。
B8 使用 AgentCore 和 Strands 构建受治理的 FSI Amazon 头寸管理手册 [第 4 部分]
受治理的 FSI Amazon 头寸管理手册。
B9 使用 Amazon Bedrock AgentCore 构建主权风险交易代理,分析收益率差、FX 对冲与债务重新定价
主权风险代理:收益率差、外汇对冲与债务重定价。
B11 构建现代波动率交易与合法泰国恢复规划智能体:内存驱动的 Strands 多智能体风险保护系统
记忆驱动的 Strands 智能体:波动率与泰国恢复规划。
B12 使用 Amazon Bedrock AgentCore Memory 构建做空跨式交易风险治理
做空跨式的交易风险治理。
B13 在 Amazon EKS 上构建生产环境就绪的信用与收益质押 AI 智能体
在 EKS 上跑生产级信用与收益质押智能体。
挑战
01 周末生产力挑战:Fab SPC 漂移同步门户
Fab SPC 漂移审查与建议门户。
02 周末生产力挑战:Quant P&L Commander — AWS 上由 AI 驱动的交易生产力门户
AWS 上由 AI 驱动的交易生产力门户。
03 周末烦人任务挑战:交易台在云端、链上、空中执行摘要
DeskPulse 日常交易执行摘要。
04 周末 Agent 挑战:早上 6 点交易风险审查
无人值守、以证据为基础的早间交易风险简报。
05 周末创意挑战:领导力卡牌游戏
浏览器版创意引导卡牌。
06 全栈挑战:社区日留言板应用程序
浏览器版活动通信空间。
领导力卡牌
01 Leadership Card Game: 云没有自动化的最后一项技能:像领导者一样说话
写给 构建者的一篇现场随笔:语言、勇气,以及 Leadership Card Game
02 领导力回合解剖:Leadership Card Game 究竟如何玩
写给 构建者的引导员实地指南:如何把演练嵌进真实会议
03 Leadership Card Game: 当机会不再属于组织者
写给 构建者的田野随笔:权力转移、多语言领导力练习夜,以及走完入口、资源与叙事的职业弧线
04 周末创意挑战:Leadership Card Game
一篇构建者手记:愿景、架构,以及周末创意挑战教会我的事
05 从周末挑战项目到 $1,386 众筹:改变你在职场现身方式的领导力练习
一个周末做出的作品,变成 600 张卡的在线领导力练习室,并筹到 $1,386。
06 从周末挑战项目到 $1,386 众筹:进入科技产业的第一天路径
一个周末挑战如何变成具备 600 张卡、由 AWS 驱动的多语产品,并筹到 $1,386?
07 从周末挑战项目到 $1,386 众筹:用转移机会建立专业品牌
一个周末挑战把领导想法做成能跑的多语产品,并筹到 $1,386。
08 Leadership Card Game — 众筹活动
筹款目标: HKD 5,000 已筹金额: HKD 1,386 距目标还差: HKD 3,614 进度: 28% 创作者: D.C. Dan · L.L. Diana · L.K. Lva 所在地: 日本、香港、新加坡 投资人权益: 即期价值、私密会员卡牌编辑器云(Private Membership Card…
09 PR/FAQ 01 — Leadership Card Game 面向社区构建者正式推出
「逆向工作法」文档 · 对外新闻稿 + FAQ 产品: Leadership Card Game 受众: 社区经理、志愿组织者、早期职业构建者
10 PR/FAQ 02 — 企业引导员采用 Leadership Card Game 开展现场领导力演练
「逆向工作法」文档 · 对外新闻稿 + FAQ 产品: Leadership Card Game 受众: 学习与发展负责人、人员管理者、敏捷教练、企业引导员
10 PR/FAQ 03 — 多语言 Leadership Card Game 为构建者归属开放全球练习室
「逆向工作法」文档 · 对外新闻稿 + FAQ 产品: Leadership Card Game 受众: 全球 构建者、双语社区、跨境产品团队、开源导师
AWS Builder Center
01 AWS Builder Center、社区精神与 AWS Builder Jacket
霓虹信号、共享创意,以及为构建者打造的外套。
02 走进 AWS Builder Center:一座能学习、贡献,也让人有归属感的全球技术平台
一段精彩旅程,不一定从机场开始。
03 AWS Community Builder 的巨大成功
当构建者公开分享,整个社区就会一起前进。
04 AWS Builder Center 的巨大成功
一座为好奇心打造、充满活力的全球街区。
05 周末走进 AWS Builder Center:从社区灵感到令人难忘的 AWS Builder Jacket
星期五晚上,开始于构建者熟悉的感觉:有一个点子,正卡在问题与可能性之间。

周末创意挑战:领导力卡牌游戏

#创意表达

在线应用程序: https://vertexmacro.com/cloud_club/demo/leadership_card_game/index.html
GitHub 代码仓库: https://github.com/dchan-dev/Leadership-Card-Game

领导力卡牌游戏架构:EventBridge、DynamoDB、Lambda 与 S3。
领导力卡牌游戏架构:EventBridge、DynamoDB、Lambda 与 S3。
AWS Builder 牌组的 Leadership Practice 浏览画面。
AWS Builder 牌组的 Leadership Practice 浏览画面。

愿景与应用程序功能

领导力卡牌游戏是一款基于浏览器的创意引导工具,能够把棘手的职场对话转化为结构化的卡牌游戏体验。我希望打造一个比参考页面更有表现力、也比领导建议清单更实用的工具。最终成果是一套互动式牌组,可帮助团队、社区负责人、开发者与活动引导者练习在情况变得模糊、充满权力博弈、紧张或事关重大结果时,实际可以说些什么。

应用程序包含600张领导力练习卡。每张卡片都是一个小型创意作品,包含编号、标题、角色、领导原则、技能评级、对话句、附带影响、优势,以及与其他卡片搭配使用的建议。卡片不只是告诉玩家要“改善沟通”,而是提供可以直接说出口、调整、质疑与讨论的语句。因此,应用程序的输出兼具创意与实用性,可针对真实的领导情境产生提示组合、对话、角色扮演、反思与协作式故事叙述。

卡片分为三个主要范围。第001至150张聚焦社区经理角色,第151至300张聚焦开发者角色,第301至600张则涵盖高级情境。高级牌组包括高管冲突、愤怒的利益相关者、公开问责、无法安全表达异议、不可逆转的决策、信任修复,以及困难的跨职能协作等挑战。一至五星的技能指标可帮助玩家了解每张卡片的相对使用难度。

网站提供两种互补的内容使用方式。在浏览模式中,用户可以搜索标题、对话句、原则、优势及附带影响。卡片可按角色或编号范围筛选,也可按编号或技能等级排序。精简视图让大型牌组更容易快速浏览,完整卡片选项则会显示所有字段。选择卡片后,会打开聚焦的详细信息视图。

在游戏模式中,二至六位玩家可以输入姓名,并选择基础或高级牌组。每位玩家会随机获得三张卡片。当前发言者可以讨论卡片或根据卡片采取行动,随后切换至下一位发言者,并通过重新发牌开始新回合。这种设计把静态数据集转化为社交活动。活动引导者可将其用于研讨会,团队可以借此讨论当前面对的挑战,个人也能抽取卡片,作为反思决策的写作提示。

语言可访问性也是愿景的一部分。界面可加载英语、繁体中文与简体中文的独立JSON文件。由于界面与创意内容彼此分离,因此无需重新构建应用程序,就能将牌组扩展到新的语言。

游戏方式:分步说明

本游戏可用于个人反思、小型团队对话,或由活动引导者带领的研讨会。一般流程如下:

● 打开应用程序并选择语言。 在浏览器中启动领导力卡牌游戏。使用语言选择器选择英语、繁体中文或简体中文,界面与卡片内容会切换为所选语言。

● 浏览牌组或开始游戏。 想探索特定领导情境时,请使用浏览模式。若想进行随机发牌且结构明确的团体活动,请选择开始游戏。

● 选择玩家人数。 每场游戏可有二至六位玩家。输入每位参与者的姓名,让应用程序显示个人手牌,并清楚标示当前发言者。

● 选择难度。 基础牌组包含第001至300张卡片,聚焦社区经理与开发者情境。高级牌组包含第301至600张卡片,涵盖更困难的领导与冲突情境。

● 每位玩家发三张牌。 游戏开始后,应用程序会打乱所选卡池,并向每位玩家发放三张卡片。每组手牌都提供多种处理对话的方式,而不是迫使玩家只能采用单一答案。

● 由当前玩家选择卡片。 当前发言者查看手中的三张卡片,并选择最适合真实或假设职场挑战的一张。选择后会打开完整的卡片详细信息。

● 朗读或调整对话句。 玩家可大声朗读卡片上的对话句,或根据情境自然调整。目标是练习可在真实对话中使用的语言,而不是只抽象描述领导原则。

● 讨论行动与权衡。 查看卡片上的领导原则、附带影响及优势。玩家说明自己会采取的行动、预期收益,以及必须接受的成本或风险。其他玩家可提出问题、提供证据,或描述利益相关者可能如何回应。

● 探索卡片组合。 使用卡片的搭配指南,将其与另一张卡片或领导方法连接。这能鼓励玩家形成更完整的策略,也说明困难情境通常无法仅凭一张卡片解决。

● 切换至下一位发言者。 当前玩家完成讨论后,选择下一位发言者。应用程序会轮换当前角色,让每位参与者都有贡献的机会。

● 结束回合并重新发牌。 所有玩家都发言后,选择结束回合并重新发牌。当前手牌会移至弃牌堆,回合计数增加,且每位玩家会获得三张新卡片。

● 反思发生了哪些改变。 活动结束时,讨论哪些对话句最实用、哪些附带影响最难接受,以及提出的行动是否为他人创造了可重复的机会。活动引导者可把最重要的想法记录为团队后续行动。

若要进行较短的个人体验,用户可留在浏览模式,按角色或难度筛选牌组,打开一张卡片,并针对其中的对话句、优势与附带影响撰写回应。因此,同一应用程序既可作为多人引导游戏,也可作为个人创意反思工具。

构建方式

从最小但实用的体验开始

我先从聚焦的最小可行产品入手:加载JSON文件、呈现卡片网格,并允许用户打开一张卡片查看完整详细信息。这项设计刻意保持简单。挑战鼓励开发者先让一个创意概念稳定运行,而不是过度设计整个平台。静态前端也让我无需等待复杂的部署流程,就能快速反复改进。

我使用语义化HTML、CSS与原生JavaScript构建界面。不采用前端框架是有意为之。应用程序不需要服务器端渲染,也不需要庞大的客户端依赖包。单页静态网站可保持较小的下载量、降低维护成本,并自然适配Amazon S3静态网站托管。

基本呈现功能完成后,我加入内容探索功能。客户端搜索会根据卡片编号、标题、角色、领导原则、对话句、优势、附带影响与搭配指南建立可搜索的文本值。角色与范围筛选器可让用户缩小牌组范围,而不必向后端发送请求。排序功能支持卡号升序、卡号降序,以及技能评级从高到低。JSON文件加载后,所有交互都在本地执行,因此响应十分迅速。

下一次迭代加入游戏机制。我建立了类似Fisher-Yates的洗牌算法,分离基础与高级卡池,并实现抽牌堆与弃牌堆。每位玩家每回合获得三张卡片。回合结束后,当前手牌会移至弃牌堆,再发出新手牌。必要时,也可将弃牌重新洗入抽牌堆。由于挑战版本不需要账户、保存会话或实时多人同步,因此游戏状态保留在浏览器中。

分离真实数据源与发布成品

最重要的架构决策,是避免把网站存储桶中的JSON文件当作编辑数据库。网站需要容易获取且经过优化的资源,但内容工作流需要可安全更新的单独记录。因此,我使用Amazon DynamoDB作为卡片信息的权威数据源。每张卡片都以类似JSON的DynamoDB项目存储,包含稳定的卡片标识符及前端需要的字段。

按计划运行的AWS Lambda函数会从DynamoDB读取当前卡片记录,进行验证与排序,将其封装为网站所需的JSON结构,再把最新生成的文件写入S3网站存储桶。Amazon EventBridge Scheduler会按固定计划调用Lambda函数。这种方式可将内容管理与内容交付分离,同时持续为静态网站提供最新且可预测的数据文件。

这种模式很实用,因为浏览器不需要直接查询DynamoDB的权限。浏览器只会通过HTTP请求读取同一网站中的静态JSON对象。这不仅降低前端复杂度,也避免向访问者暴露数据库凭据或写入操作。

关键决策

● 使用S3提供前端。 应用程序完全由静态资源组成,因此我选择S3静态网站托管,而不是运行网站服务器。

● 使用DynamoDB存储可编辑的卡片记录。 可单独新增或更新卡片,无需手动编辑庞大的生产文件。

● 发布自动生成的快照。 Lambda将数据库记录转换为适合浏览器快速交付的版本。

● 计划发布。 EventBridge Scheduler可重复执行更新流程,并移除手动导出步骤。

● 把交互保留在浏览器中。 搜索、筛选、排序、洗牌、发牌、语言切换及对话框视图,不需要每次操作都发送请求。

● 以数据驱动方式处理本地化。 前端会将每种语言映射到各自的卡片JSON文件,让新增语言版本变得直接。

● 面向移动设备与无障碍使用进行设计。 从一开始就纳入响应式布局、清晰标签、键盘友好按钮、对话框语义、Esc键处理、易读字号及减少动态效果等设计。

挑战与解决方式

第一项挑战是牌组的规模与一致性。600张卡片包含许多重复字段,任何格式错误的记录都可能导致呈现失败或造成混淆。我通过定义一致的项目结构来处理此问题,并让Lambda导出步骤负责验证。导出流程应拒绝或报告缺少必要标识符的记录、规范化可选文本值、以确定性方式排序卡片,并生成有效的UTF-8 JSON。这在可编辑数据与公开网站之间建立了质量关卡。

第二项挑战是在不把网站改造成动态网站的情况下保持内容新鲜。静态网站成本低且可靠,但静态文件可能过时。按计划运行的Lambda任务会根据DynamoDB重新生成公开JSON快照,因此解决了这个问题。上传到固定的S3对象键,意味着前端无需知道当前使用的是哪个数据库修订版本。若要强化生产环境,可先将输出写入临时键,验证后再复制到最终键,避免访问者收到只写入一部分的内容。

第三项挑战是客户端性能。在较小型设备上呈现数百张内容丰富的卡片,可能带来较高负担。我保持卡片标记精简、在内存中执行筛选、只呈现当前结果集,并使用对话框显示展开的详细信息,而不是默认把所有字段放在每张卡片中。精简与完整卡片切换功能让用户可自行控制信息密度。

第四项挑战与AWS权限有关。Lambda函数需要读取DynamoDB表,并将特定生成对象写入S3,但不应拥有广泛的管理权限。我使用专用IAM执行角色及最小权限策略,将权限限制在必要的表与存储桶前缀。Lambda运行期间生成的CloudWatch Logs,可为导出数量、验证失败与上传错误提供审计轨迹。

最后,创意设计本身也是一项挑战。卡片必须足够精炼,适合在实时对话中使用,同时仍要呈现权衡。对话句、附带影响、优势与卡片搭配建议的组合,可避免建议流于单一方面,并邀请玩家同时思考行动与后果。

使用的AWS服务与架构概览

Amazon S3

Amazon S3用于托管index.html、样式表、浏览器端JavaScript、图片,以及自动生成的多语言卡片文件,例如card_en.json。S3静态网站托管提供公开入口点,并交付浏览器请求的资源。该存储桶专门用于内容交付,而不是内容编辑。

Amazon DynamoDB

DynamoDB将每张卡片存储为独立项目。稳定的标识符作为分区键,其他属性则存储编号、标题、角色、领导原则、对话句、附带影响、优势、搭配指南与技能评级。此模型支持指定项目更新,也能在未来加入状态、语言、牌组版本或审查元数据。

AWS Lambda

用于导出的Lambda函数会读取表、在扫描或查询时处理分页、验证记录、进行排序、组合预期的JSON有效负载,并将最新输出写入S3。它也会记录导出的卡片数量及任何验证问题。将此转换任务放在Lambda中,意味着不需要持续运行服务器。

Amazon EventBridge Scheduler

EventBridge Scheduler会按照指定间隔调用导出函数。计划可设置为每小时、每日运行,或按内容更新频率调整。由于卡片变更不需要在一秒内发布,因此计划快照非常适合此场景。

AWS Identity and Access Management

IAM可安全连接各项服务。调度器只获得调用导出Lambda函数的权限。Lambda执行角色则获得特定DynamoDB表的读取权限、生成S3对象前缀的写入权限,以及创建运行日志的权限。

Amazon CloudWatch

Lambda会将运行日志写入CloudWatch Logs。这些记录可帮助诊断记录缺失、权限问题、JSON生成失败及S3上传失败。还可加入指标与警报,通知函数错误或重复调用失败。

架构图

请求与发布流程

● 在DynamoDB中新增或更新卡片。

● EventBridge Scheduler在设定时间调用Lambda导出函数。

● Lambda读取所有符合条件的卡片项目,必要时包括其他分页的结果。

● 函数验证必填字段,并建立已排序的JSON文档。

● Lambda使用前端预期的对象键,将生成的文件上传到S3网站存储桶。

● 访问者打开网站,并从S3获取index.html。

● 浏览器从同一存储桶获取当前语言文件,例如card_en.json。

● JavaScript呈现牌组,后续游戏交互则在本地执行。

此架构提供清晰的职责分离。DynamoDB针对记录维护进行优化;Lambda负责转换与发布;S3针对低成本静态内容交付进行优化;EventBridge Scheduler控制内容新鲜度;浏览器则提供互动式创意体验。

学习心得

最大的心得是,创意应用程序不一定需要复杂的后端。这个项目的创意价值,来自卡片内容与围绕卡片建立的互动关系。只要内容模型与用户流程经过仔细设计,轻量级静态前端仍能支持丰富的活动。

我也学会把自动生成的JSON视为发布成品,而不是真实数据源。在这个项目之前,每次牌组变更时,手动上传大型JSON文件可能是很直观的做法。将卡片单独存储在DynamoDB中并生成干净的快照,则可建立更安全的工作流程。它支持验证、可预测排序、自动更新及未来的编辑工具,同时不会让公开应用程序直接向数据库发送请求。

这项挑战加深了我对计划式无服务器工作负载的理解。Lambda常被用于API后端示例,但本项目将它作为可靠的发布工作器。EventBridge Scheduler负责运行时机,Lambda执行范围明确的转换任务,S3则接收结果。这种简单模式也适用于目录、信息流、报告、配置快照及本地化内容包。

我也积累了IAM权限边界的实践经验。早期原型很容易通过广泛授权而顺利运行,但当每项权限都映射到明确的数据流时,最终架构会更清晰。调度器调用一个函数;函数读取一个表、写入一个存储桶前缀,并输出日志。思考这些边界,不仅提高安全性,也加深我对系统的理解。

在前端方面,我体会到渐进增加复杂度的价值。我并未一开始就实现支持六位玩家的多语言游戏,而是先让一张卡片正确呈现。随后加入搜索与筛选,再加入详细信息视图、语言切换、完整牌组显示,最后才完成多人回合流程。每一层功能都重复使用相同的规范化卡片对象,因此应用程序能够持续成长,而无需重写。

我也了解到,无障碍与响应式设计是创意约束,而不是事后整理工作。只能使用鼠标操作,或只能在台式电脑上运行的卡牌游戏,会排除许多可能的研讨会场景。响应式单栏布局、适合触控的目标区域、键盘操作、清晰且可聚焦的控件、对话框标签及减少动态效果支持,都让体验更具适应性。

最重要的是,我理解到内容结构如何塑造对话。“对话句”让建议变得具体;“附带影响”承认领导行动有其成本;“优势”说明可能的回报;“搭配”字段则鼓励玩家连接不同想法,而不是把每张卡片视为孤立规则。技术负责交付牌组,但真正让应用程序发挥作用的,是这组反复出现的创意结构。

应用程序链接

请从此处体验已部署的应用程序:
在线应用程序: https://vertexmacro.com/cloud_club/demo/leadership_card_game/index.html

在线应用程序是主要的提交链接。它展示可搜索的卡片库、卡片详细视图、语言切换、基础与高级牌组、玩家设置、随机发牌、发言者轮换及新回合流程。

结语

领导力卡牌游戏起源于一个周末创意:把领导指南转化为人们可以真正说出口并实际游玩的卡片。保持第一个版本聚焦,让我能把精力投入体验,而不是基础设施。S3提供静态网站,DynamoDB存储结构化卡片记录,Lambda将这些记录转换为最新且可供网站使用的JSON,EventBridge Scheduler则保持自动发布。

项目也保留了成长空间。未来版本可加入需要身份验证的编辑界面、草稿与已发布状态、牌组版本控制、其他语言、尊重玩家隐私的使用分析,或使用CloudFront提供HTTPS交付与全球缓存。核心架构无需因这些新增功能而改变。重要的基础已经存在:清晰的权威数据源、自动化发布路径、快速的静态体验,以及帮助人们练习更好对话的创意格式。

如果玩家抽出一张卡片后,能找到更周全的方法处理困难讨论,这套应用程序就已经实现目标。如果活动引导者使用这副牌,帮助团队为他人创造可重复的机会,那么它所做到的就更多了。