我发布了一款小型的Devvit应用,途中遇到的几件事情似乎值得在这里写下。 它是什么。 一个预言牌的布局,适用于开发者。您抽取五张牌,每张牌都是开发者词汇中的一个片段——ROLLBACKSOLDER JOINTCONTEXT WINDOWSINGLE POINT OF FAILURE——每张牌都有一个ON面和一个OFF面。同一个词,相反的意思。 72张牌 x 2张面 = 144种结果,并且没有牌重复在一张牌中。五张牌落在五个固定阶段,顺序是:BOOT -> BUILD -> DEPLOY -> PROD -> RELEASE,所以一张牌的读取是一种故事,而不是一个随机的信息。可以在这里玩,耗时约一分钟:https://www.reddit.com/r/TheDebugOracle/comments/1vien1k/the_debug_oracle_draw_your_stack_trace/ 它是如何构建的。 客户端使用React,一个小型的Hono服务器用于抽牌。洗牌和发牌发生在服务器端——部分原因是为了防止客户端干扰牌堆,主要原因是为了保持一张牌中不重复的规则更加容易在一个地方实现。该帖子本身就是整个游戏:没有外部网站,没有下载,没有注册,只需要在Reddit上。 我学到的三件事,可能可以节省别人的时间: 1. context.username 是查看该帖子的用户名称,而不是作者。 我花了相当长的时间才意识到这点。 2. onAppInstall 创建启动帖子是非常有用的:在一个子版块中安装应用后,游戏帖子就会出现,没有手动步骤。即使是小型应用,也值得配置。 3. 使用 devvit playtest 创建的测试版块无法公开。 POST /api/site_admin 请求 type=public 返回 200,但实际上什么也没有改变;在 UI 中,同样的操作会变成一个 "请求更改为公开" 的表单,会被发送到人类并通过 modmail 回复。如果需要在公开的地方展示应用,请创建一个正常的版块并安装应用——耗时分钟而不是天。 花费的昂贵部分不是代码。 72个关键词 x 2张面 x 一条建议是216个单独的文本,每一个都必须是真实的才能让它有趣。这是最大的工作;Devvit的一半是轻松的。全盘披露:这个应用是使用大量的人工智能帮助编码和牌堆复制的,人工编辑层次在上面。欢迎对任何实现细节进行讨论。如果牌堆中缺少你期望的关键词,请说明——扩展它是轻而易举的。