这里记录每周值得分享的科技内容,周五发布。
本杂志开源,欢迎投稿。另有《谁在招人》服务,发布程序员招聘信息。合作请邮件联系([email protected])。
封面图

重庆涪陵某景区架设了世界首座"巨石索桥",桥面就是一块块巨石,一不小心就会踏空。(via)
测试是新的护城河
Next.js 是目前排名第一的 JS 框架。平时遇到的 JS 全栈应用,我估计,一半用它开发。

两周前,这个框架被一则新闻颠覆了。
一个 Cloudflare 工程师宣布,他只用一个星期就用 AI 重新实现了 Next.js,起名为 vinext。

事实上,一天就生成产品原型了,后面几天只是在完善。
"真正动手是2月13日,当天晚上,基本功能已经实现。第二天下午,11个路由器做好了10个。第三天,已经部署到我们的服务器,实现了完整的客户端水合。
接下来的几天,主要进行安全加固:修复极端情况,扩展测试套件,提升 API 覆盖率至 94%。"
这个新的实现,比原版 Next.js 性能更好。
"早期基准测试中,构建速度提升了4倍,客户端软件包的体积缩小了57%,生产环境的 Next.js 应用已经直接跑在上面了。"
这个 vinext 的代码已经放出来了。

我觉得,这件事对 Next.js 的打击非常大。
Next.js 是 Vercel 公司的产品,背后有一个大型开发团队,每年都是巨额投入,已经整整做了10年。虽然是开源软件,但是企业版、云服务、插件、皮肤都要收费,去年的年收入达到2亿美元。
这种看似难以逾越的护城河,在 AI 面前不堪一击。一个工程师用了一个星期,就复刻了大团队十年的工作成果,现有的网页应用不改一行代码,放上去就能跑,原版的每个功能都支持。
你知道花了多少钱?Token 费用仅仅为 1100 美元!
这叫 Vercel 怎么再向 Next.js 的开发投钱,客户又怎么愿意再为某个功能付出高昂的使用费。
推而广之,所有的商业软件都受到了重创。代码的护城河不存在了,只要投入一小笔金钱,AI 就能复刻出大型软件。
那么,为了保护自己,软件公司下一步肯定要防止 AI 复刻。
怎么防呢?关键就是测试用例。
Cloudflare 工程师这一次能够复刻成功,主要原因是 Next.js 有完备的文档、庞大的社区文章、以及完整的测试用例。AI 模拟的每一个 API,只要能够通过原有的接口测试,就能确认百分百兼容。
如果拿不到测试用例,谁知道代码行为是否一致,谁敢放到生产环境运行。
可以想象,为了防止复刻,大型软件项目一定会保护自己的测试用例。测试才是新的护城河。

世界最流行的数据库 SQLite,本身代码15.6万行,但是测试用例9205万行,足足大了590倍!
其中,最核心的测试套件 TH3 是闭源的,不公开,主要测试航空、医疗等关键行业的极端情况和边缘案例,属于核心技术资产。正是这些保密用例,才让 SQLite 难以复刻。
无独有偶,就在前两天,另一个开源项目 tldraw 也准备将测试用例闭源。

说实话,保密的测试用例肯定不利于开源项目的发展,但是开发者需要保护自己的利益。在日益强大的 AI 面前,越来越多的软件可能会选择这样做。
AI 复刻的版权问题
AI 复刻软件还有一个版权问题,也引起了很大争议。

Next.js 是最宽松的 MIT 许可证,所以复刻没有版权问题。但是,有人复刻了一个叫做 chardet 的项目,就争议巨大。
chardet 本来采用的许可证,是限制较多的 LGPL,复刻以后改成了 MIT 许可证,引发了原始作者的抗议。
网上的意见也分成了两派。
支持者说,AI 只复刻了功能和接口,代码完全不一样,当然可以更改许可证。
反对者说,GPL 规定了,所有衍生作品都不能更改许可证,AI 复刻就属于衍生。
更麻烦的是,美国法律规定,AI 生成产物无版权,属于公共领域。这意味着,AI 复刻的软件不能设置许可证,设置了无效。
按照这条法律,软件许可证就意义不大了。管你是什么许可证,任何人 AI 复刻一下就能规避,AI 实现的版本一律没有版权。
科技动态
1、AI 改写脏话
游戏平台 Roblox 宣布,将用 AI 实时修改玩家的对话,让其变得更文明。

以前,如果玩家在游戏里面骂脏话,系统只会将其过滤,显示为 ####,你还是知道他在骂人。
现在,AI 将重新修改整个句子,让表达变得更礼貌、更文明,你就察觉不到对方在骂人。
虽然这样未免有点虚假,但确实有必要。网络论坛也应该跟进,不要让人身攻击毁掉交流氛围。
2、飞机的激光上网
欧洲航天局成功进行了飞机的"激光上网"实验,通过激光将一架飞机与一颗卫星连接,实现了高速通信。

飞机上网现在都通过无线电波,比如星链就通过无线电,让飞机连接卫星。本次实验则是通过激光连接卫星。

上图就是安装在飞机舷窗上的激光终端。
激光通信的优点是带宽大,不受无线频谱的限制,这次实验的上网速度达到了 2.6Gbps,是星链的8到10倍。
缺点是激光与卫星之间必须保持直线,不能有云层和大气的障碍物。所以采用这种方式,大概只有飞到高空时才能上网。
Grammarly 是一个写作服务,提供一个收费功能"专家意见",让专家点评你的文章。

一个国外用户使用该功能时,震惊地发现,点评专家里面有他的前老板(下图),但是他知道老板已经去世了。

原来这不是真人点评,而是 AI 为每个专家建了一个分身,用他们各自的文章进行训练,然后让分身点评你的文章。
这引起了争议,我们是否有权搭建别人的"数字分身",然后冠以原始人物的名义(比如"孔子分身"或者"爱因斯坦分身")?
4、太阳能邮筒
网络通信普及以后,传统的邮筒怎么办?
英国皇家邮政想出一个办法,将英国各地3500个邮筒,变为"太阳能邮筒"。

邮筒顶部加装了太阳能光伏片,功能也从寄信,变成了收寄小包裹。

这样既保存了传统的红色邮筒,成为街道的景观,又为人们邮寄包裹提供了方便。

文章
1、GitHub Issue 标题的注入攻击(英文)

这可能是第一起 AI 模型注入的真实攻击。Cline 项目使用 AI 对 GitHub Issue 进行分类,有人就在标题插入恶意提示词,从而成功拿到 npm 令牌,发布了一个恶意版本。本文告诉你这是怎么做到的。
2、重新评估 AGENTS.md(英文)

最近的一项研究提出,跟推荐做法相反,AGENTS.md 文件对 AI 编码不是促进,而是阻碍。
它只是让模型"思考"得更多(成本上升),生成结果却没有更好(性能下降)。
3、Temporal API 的九年历程(英文)

本周,Temporal API 正式通过了第四阶段。这意味着,它进入了 ES2026 标准,成为了 JavaScript 语法的一部分。本文是这个标准的起草者对九年推进历程的回顾。
4、AI 的胡说测试(英文)

国外有一个 BuillshitBench,专门问 AI 一些胡说八道的问题,看 AI 能不能分辨这是胡说,还是一本正经地回答。
5、原生 CSS 就足够了(英文)

本文展示了 37Signals 公司的 CSS 代码,表明不使用任何框架(比如 Tailwind)和构建工具(比如 Sass),只用原生 CSS 代码完全可以。
6、粪便物理学(英文)

一篇很另类的科普文章,解释为什么动物不管大小,排便时间都在5~19秒之间,平均12秒。
工具
1、KULA

Linux 服务器的监控工具,只有一个二进制文件。

mac 电脑的屏保程序,用彩色的 Ansi 字符画作为屏保图案。
3、upiano

在命令行下模拟钢琴弹奏。

一个开源 Windows 应用,通过图形界面管理 Windows Subsystem for Linux(WSL)发行版。
5、Mole

开源的 Mac 电脑清理和优化工具。
6、PipeGate
一个将内网服务映射到外网的隧道工具,特点是比较简单,就是几个 Python 脚本,并且可以设置 UUID 客户端认证。

一个管理、测试 Webhook 的在线工具,个人可以免费使用。
8、Sentinel

将安卓手机转化为网络摄像头,实现实时监控和图像采集。(@suzuran0 投稿)

Mac 电脑的系统监控、管理面板。(@chentao1006 投稿)
AI 相关

一个 Python 命令行工具,监控本地各种 coding agent(比如 Claude Code、Codex、OpenCode)的使用量。(@MrQianjinsi 投稿)

一个开源的连接器,将各种 AI 编程工具与手机聊天软件相连。(@chenhg5 投稿)

只要在网页插入这个 JS 库,就可以使用自然语言操作页面,比如"点击导航栏的文档链接,总结其内容"。
一个 macOS 沙箱工具,用来在沙箱里运行 AI 编程工具。

一个 GitHub Action,为你的仓库添加一个图形标签(上图),显示该仓库相当于多少 Token,用来大模型的计算量。
资源
1、世界监控(World Monitor)

世界局势的一个实时看板,把各种消息源都放在一个网页里。
2、炼油厂探索

一个动画互动网站,展示炼油厂怎样将石油变成汽柴油。

弹簧笔、打火机等生活小物品的机械装置动画。
图片
1、密码的替代方法
一位程序员发明了一种新的密码方法,你觉得可行吗?
系统向用户展示一副扑克牌,让其从52张牌中依次挑出5张,作为密码。

下次登录时,用户必须按同样顺序挑出同样的5张牌。
文摘
1、复杂社会的崩溃
我们都知道,一个软件的复杂度不断上升,超过某个极限后,就会难以维护,最后往往被放弃。
美国历史学家约瑟夫·坦特(Joseph Tainter)认为,人类社会也是如此。如果社会的复杂度超过极限,这个社会最终也会崩溃。

1988年,他出版了一本名为《复杂社会的崩溃》的书,描述了罗马人、玛雅人和查科人等伟大文明的兴衰,试图回答几个世纪以来一直困扰着思想家的一个问题:为什么强大的社会会崩溃?
他认为,原因是这些社会有一个敌人----复杂性。
随着文明的发展,社会增加了越来越多的复杂性:更多的等级制度、更多的官僚机构、更深层次的社会结构。
一开始,新的等级、官僚、组织都是有用的,比如可以增加经济产出、税收等。但到了某个时刻,收益递减规律开始出现,每增加一点复杂度带来的回报越来越少,直至变成零甚至负数。
(1)法律条文和官僚越多,政府开销也就随之上升,长期很可能令社会无法负担。
(2)复杂度变大,会增加社会的不平等,因为能理解所有规则的人就越少,你就越离不开律师。懂规则的人会比其他人占优势。
(3)规则越多,维护和执行这些规则的机构也就越多,不利于社会提高效率。
(4)复杂性最终导致社会各阶层的差距变大,对立也随之而来。
以上因素的共同作用,导致历史上很多强大的社会最终崩溃。
言论
1、
2021年,我感觉做一名优秀的软件工程师棒极了。软件行业蓬勃发展,机会很多,我热爱这份工作,觉得可以永远做下去。
2026年,我已经不确定软件行业十年后会怎样,即使还存在,必定与现在极不相同。我也许能找到出路,也许不得不离开这个行业。无论如何,我热爱的软件工作即将消失。
2、
与强大的 AI 对抗会是什么感觉?
你会感觉自己莫名其妙地弱了不少,AI 做的每件事都超出你的预期。
这就好像你和一位实力强劲的玩家玩一款随机性很强的游戏,你会感觉这位高手总是运气爆棚。
3、
阅读商战书籍是浪费时间。它们将简单的故事变成通用的建议,将偶然的成功转化为普遍的策略,并用激励人心的口号取代复杂的市场。
这些书的成功并不是因为内容正确,而是因为易于阅读并且让读者感觉良好。
4、
我想让 AI 告诉我怎么使用一种全新的、AI 也不会用的工具,就会提示 AI "执行 xxx-tool --help 来了解该工具"(假定工具名字是 xxx-tool),然后 AI 就学会用了。
-- Simon Willison,著名开发者
5、
时间是唯一不可再生的资源。AI 大模型是目前我所知的最便宜的赚取额外时间的方式。
往年回顾
低代码编程,恐怕不会成功(#341)
AI 没有护城河(#291)
中国的增长动力在内陆(#241)
一个程序员的财务独立之路(#191)
(完)

一剑飘红 说:
密码的替代方法?往期周刊好像提到有人开发过一种图像密码,就是点击图片中的某几个位置来作为密码的
2026年3月13日 09:11 | # | 引用
dong 说:
我fork了一个next.js仓库,算是重新生成了一个next.js的替代品吗?
有大公司会用AI生成的吗?
保证没有bug吗?
以后的升级、维护,以及支持,有人管吗?
2026年3月13日 09:12 | # | 引用
qiba 说:
关于那个原生css就够了。所有的框架和构建工具最终都还是要转成原生css的,并没有在原生之外使用什么新的技术,所以不存在原生css就够了这个问题。框架和构建工具只不过是为了方便开发者,减轻部分重复的工作量
2026年3月13日 09:18 | # | 引用
北石 说:
昨天公司也裁员了,现在AI的大力推广对于普通程序员来说并不是一件好事,可替代性太强
2026年3月13日 09:52 | # | 引用
AmaF 说:
扑克牌密码我觉得非常不可行,5个数字好说,5个花色的顺序好难记
2026年3月13日 10:34 | # | 引用
F^[email protected] 说:
在未来,AI会被政府所完全掌控,包括所有的能用到的AI领域与边界。由政府来分配AI资源。因为AI的产生与使用本身就是集整个社会资源与一体的东西。所以,这样的东西不应被任何资本或个人滥用。就像WIFI-水-电-油-粮这样的基础设施。
只有这样,才能维持稳定的人口结构与避免陷入全球内卷的陷阱。
当然,这时候的世界,已经很像《我们》与《美丽新世界》了。
当我前段时间想到这样的未来时,我豁然开朗,不再焦虑。
2026年3月13日 10:44 | # | 引用
4cos90 说:
重新实现? ❌
照着开源代码优化了一版 √
没有原版的产品原型和代码 AI 能用这么少token实现吗,光整理需求输入都费劲吧。
2026年3月13日 11:03 | # | 引用
jiangnanboy 说:
ai的发展是码农的终结者,一声叹息
2026年3月13日 11:09 | # | 引用
app 说:
为什么不能用ai生成测试用例
2026年3月13日 11:37 | # | 引用
id17 说:
Clinejection 那个攻击一顿操作猛如虎,最后是装 openclaw。最近付费装 openclaw 的可以装个 cline 解决一下哈哈。这是真的安装免费,付费删除了
2026年3月13日 12:03 | # | 引用
anny 说:
我觉得裁员和ai没有必然的关系,无论有没有都会拆员,AI的出现会提高程序员效率是显而易见的,就像不断有新的技术和框架出现一样,你如果停滞不前被淘汰是早晚的问题。和技术没关系。
2026年3月13日 12:49 | # | 引用
Leo 说:
8、Sentinel
实际仓库名是 CCTV-Smartphone-AI-Monitoring。
2026年3月13日 13:12 | # | 引用
NoOne 说:
涉及复杂的专业业务场景,这些是不公开的。
2026年3月13日 13:52 | # | 引用
lio 说:
AI对于各个代码第三方包。并不进行校验,而是依赖于文字描述
ai的知识库中并没有对于人类和ai进行合作的知识。所以ai的回答并不是最优解。人类社会甚至还没发明出成熟的 “AI协作方法论”
上下文腐烂问题。聊的越久,可能反应的越差
自动化的程序越高,需要人力参与的进度越多,Automation Paradox(自动化悖论)自动化越高,人类越关键。并不是解决了问题,而是将问题进行转移了。
当 AI 模型不知道某件事时,它并不总会说“I don't know.” 相反,它会基于见过的模式生成看起来最可能的内容。这几条是我整理出来的对于ai的一些心得。不知道大家是什么看法
2026年3月13日 13:55 | # | 引用
XZY 说:
就像唱片普及了之后,去听音乐会的人就少了。现场听的确沉浸感更强,但是大多数人能够忍受这样的品质下降的了。
没有test case保证的AI生成的代码,也会有那些只要短时间能上而不是那么在意品质的人喜欢用的。毕竟大部分软件都没有办法活到类似sqlite的高度的。
2026年3月13日 14:00 | # | 引用
BFlower 说:
windows 锁屏可以设这种图片密码诶
2026年3月13日 14:03 | # | 引用
mirakyux 说:
windows之前的登录方式里就有个这样的图片密码
2026年3月13日 14:05 | # | 引用
老牛 说:
大概率都是:黑红梅方 LOL
2026年3月13日 14:11 | # | 引用
rz 说:
我建议可以搞一个“爱泼斯坦”分身,谁赞成?谁同意?
2026年3月13日 14:12 | # | 引用
秋风于渭水 说:
即使chardet 7.0开发者只给 AI 提供 chardet 的 API 文档、功能描述和测试用例,完全不给 AI 看 chardet 的底层源码。看上去 AI 真的是凭空写出了一套能通过所有测试的代码。
但像 GPT-4、Claude、Gemini 这样的超大模型,其训练数据中极大概率已经包含了开源的 chardet 源码。当chardet 7.0的开发者要求 AI “写一个类似 chardet 的工具”时,AI 实际上可能是从它的权重记忆中“回想”并“拼凑”出了原版 LGPL 代码的逻辑或片段,而不是真正从零开始推导。如果生成的代码中带有原始 chardet 的“代码指纹”或特有的非标准逻辑,并不是真正意义上的从0开始写的,我感觉在法律上依然会被判定为衍生作品。
2026年3月13日 14:35 | # | 引用
xsng 说:
不就是以前的卡密吗?
2026年3月13日 15:00 | # | 引用
DangGwanHOu 说:
扑克牌密码的复杂度应该是(A_52)^5,即排列组合的A、52下标、5上标,存在52 * 51 * 50 * 49 * 48 = 311_875_200种可能,即3.11亿种。如果网站没有设置锁IP等防暴力破解的安全措施,理论上很容易被破解
2026年3月13日 15:13 | # | 引用
baochuquan 说:
AI发展至今,一切始于代码开源,程序员最终把自己的命革掉了
2026年3月13日 15:44 | # | 引用
tietouwa 说:
人类成功从cmd发展出UI,现在又回到了cmd,以后人手一个AI,是不是就不需要UI了
2026年3月13日 16:17 | # | 引用
草梅友仁 说:
扑克牌密码从本质上讲是52个字符选5个到排列数,甚至不能重复,粗略算了下一共就3亿多种可能性。
字符数量其实跟只使用英文字符大小写是一样的,而通常安全的密码还会要求添加数字、特殊字符等来扩大字符范围,也会要求更长的密码来增加破解时间。
故扑克牌密码作为一个秘密是不怎么安全的,只是看上去花哨。
2026年3月13日 16:35 | # | 引用
zheng 说:
数字芯片设计,不仅RTL代码不开源,工具链还支持代码加密,可以商业IP买卖,验证代码一样,各种协议的验证代码,测试用例,都有商业化,比如synopsis。想AI化?连训练素材都拿不到,只有使用文档,有问题就人工技术支持
2026年3月13日 16:38 | # | 引用
云闲 说:
“早晚”的问题对于程序员来事就是最大的问题。多工作一年多赚一年,AI的快速进步使得问题变得更严峻。虽然未来很美好,可惜现阶段人们需要工作来赚钱养家糊口。
2026年3月13日 17:18 | # | 引用
Lance 说:
问题是,走向这一最终图景(且是积极的结局,而非cyberpunk)的过程是很痛苦黑暗动荡的
2026年3月13日 17:25 | # | 引用
Ksir 说:
代码正在变得廉价,而“解决问题的逻辑”正在变得昂贵。 测试中包含了解决什么问题的细节和验证
2026年3月13日 19:24 | # | 引用
老鱼 说:
你错了。你们公司并不是因为 AI 才裁员的。而是因为现在经济很不好,巨头们拿走了大多数利益并且掌控了互联网上面的多数变现渠道。你们公司因为利润过低亏损而开始裁员。AI 当然提升了效率,增加了需求和岗位,但是这些岗位又被集中到大厂去,因为只有大厂才有资源训练 AI 以及对应用场景进行试错。并且现在的大厂似乎并不愿意把生态让出来给中小厂,而是自己亲自动手做应用。因此,这次的 AI 狂潮,对于国内,几乎只是大厂们自己的狂欢。
另外,有可能你们公司已经亏损很久了,所以用 AI 这个借口开始裁员而已。
这就是一句名言所说的“雪崩时,没有一片雪花是无辜的。”国内经济不好时,只要身处这个环境就不可能独善其身。
2026年3月13日 19:54 | # | 引用
老鱼 说:
这基本上就是做梦。这种许愿发生的可能性很低。AI 必然会被资本控制。普通人,还是准备好迎接时代大山压来吧。几乎每次工业革命都会带来战争,第一次、第二次都是。第三次信息革命带来了冷战。很快就要热战了。大家不打几仗是打不成共识的。
2026年3月13日 19:59 | # | 引用
明知故犯 说:
人类目前的排便时间应该会超过这个平均数字,如果是拿着手机,时间会更久一些
2026年3月13日 21:01 | # | 引用
RedNax 说:
略扯。
先不说第一次第二次工业革命是不是“带来”了战争,第三次信息革命发生的时候都苏联解体冷战结束了,哪来战争?海湾战争也要按到信息革命上去吗?
2026年3月14日 04:50 | # | 引用
dg1245 说:
过去记录密码是:脑子想一组数字字符,注册账号输入密码,然后用纸笔记录密码;
现在是:从一副扑克牌里随机抽取几张牌,注册账号选择扑克牌作为密码,然后把抽取的扑克牌按顺序塞到信封里放到抽屉里;
好处是:抽牌比脑子想更随机,不用费劲写字,实物存储密码比网络存储安全;
缺点很多,不一一列举。
2026年3月14日 12:49 | # | 引用
datou 说:
《复杂社会的崩溃》-复杂性边际收益递减,我觉得AI有机会解决这个问题,类似规则太多和需要律师的事,需要使用AI工具打破,包括阶级也是。现在有些医疗种类,明目张胆地结团牟利,感觉已经形成了利益阶层,没有重大变故,难以打破。需要AI工具支持下的平权冲击。
2026年3月14日 21:20 | # | 引用
c0m4r 说:
感谢您提到我的监控工具 - KULA。我邀请所有中国朋友来尝试一下!如果您有任何问题或想要提出更改建议,请在 Github 上写一个问题 - 可能会用您的语言!谢谢。
2026年3月15日 09:13 | # | 引用
mat 说:
很多测试用例都是根据实际问题衍生的,这种测试用例AI没法生成
2026年3月15日 13:31 | # | 引用
plaster 说:
不同的是,速度太快了。
原来新的技术、新的框架出来,到真正大规模应用都有一个比较长的过程,在这个过程中会产生更多的需求,因此效率提高了但对人的需求不会显著降低。
现在AI替代编程的这个速度,直接把人的岗位的替代了,而新岗位还没有产生
2026年3月16日 12:03 | # | 引用
光 说:
不但不需要ui,我看高级语言也不需要,直接二进制。反正AI写的一定大概率会比人写的好,而且只要通过测试,管它代码怎么写的呢?参考AlphaGo下围棋人类看不懂之案例。
2026年3月16日 21:42 | # | 引用
dodo 说:
这不就是安卓的锁屏密码嘛
2026年3月17日 11:35 | # | 引用
shen 说:
1. 巨石悬索桥是怎么保证游客安全的?
2. 英国红色邮筒,太阳能板和寄包裹有啥关系呢?
2026年3月18日 17:52 | # | 引用
shen 说:
说明不相信AI
2026年3月18日 18:03 | # | 引用
Kit Yeung 说:
虽然测试用例可以用于复刻开源产品,但是生态还是无法复刻的。而且从用户的角度来看,其实这是好事,谁的点子多,功能好,就可以取代你,相应的会促进当前产品开发的居安思危,才能把产品做得更好,否则随时被取代。
不然想A\一样,面对opencode和openclaw的行为,只会增加公众对他的厌恶
2026年3月20日 15:27 | # | 引用
阿债 说:
大树杜鹃那个原文,“0.25平方米内发现了40多株”,西双版纳植物所的研究员,都不看自己的稿子了,对吗?
2026年3月20日 17:29 | # | 引用
TechBuilder 说:
"测试作为护城河"这个观点太精辟了。SQLite 测试代码是业务代码的 590 倍,这个数字本身就说明了一切。我们团队以前也觉得写测试用例浪费时间,现在看来,完备的测试集不仅是质量保障,更是核心资产。AI 能复刻代码,但复刻不了你对业务边界的全部理解。
2026年3月25日 19:54 | # | 引用
面向未来 说:
人的进步追不上AI的进步
2026年4月 3日 17:29 | # | 引用
yh 说:
能不能在页面底部加一个下一篇的按钮
2026年4月24日 18:13 | # | 引用