112天前
|
|
|
## DEV 社区中文精选 NO.20250428
Dev Community 是一个面向全球开发者的技术博客与协作平台,本文是基于 dev.to 的中文日报项目,每天自动抓取 Dev Community 热门文章及评论,通过 AI 生成中文解读与总结,传递科技前沿信息。

---
## 机器人主题射击游戏 ROBOLTS 及其背后的技术实现
本文介绍了名为 ROBOLTS 的机器人主题生存动作 RPG 游戏,该游戏结合了 Soul Knights 的设计灵感,并使用了阿里巴巴云服务。文章详细阐述了游戏的设计、开发过程以及对阿里巴巴云服务的应用。
文章首先介绍了 ROBOLTS 游戏的主要特点,包括独特的机器人主题的精灵和瓷砖设计、三种具有不同能力的初始角色、躲避子弹的冲刺机制、提供多种武器的自动售货机以及排行榜功能。 随后,文章重点介绍了游戏如何使用阿里巴巴云服务,特别是阿里巴巴云对象存储服务(OSS)来实现排行榜功能。作者详细阐述了选择 OSS 的原因,包括其服务器架构、成本效益、简单性、全球可用性以及与 Node.js 的集成。
文章还提供了 OSS 在游戏中的具体实现细节,包括服务器端实现、API 端点和数据存储模式。作者分享了使用阿里巴巴云服务的经验,包括遇到的挑战和解决办法。最后,文章总结了游戏开发的亮点,包括首次游戏开发项目、首次使用阿里巴巴云服务以及首次实现和个人创作精灵和瓷砖。
评论区对该游戏的评价主要集中在以下几个方面:
* **技术实现**: 开发者分享了使用阿里巴巴云服务的经验,这引发了对云服务在游戏开发中应用的讨论。
* **游戏设计**: 游戏的设计灵感和特点,特别是机器人主题和 Soul Knights 的结合,引起了玩家的兴趣。
* **开发经验**: 开发者分享的开发过程和遇到的挑战,为其他开发者提供了参考。
总的来说,这篇文章提供了一个关于游戏开发和云服务应用的有趣案例,同时也展示了开发者在实践中遇到的问题和解决方案。
- 原文: [🤖ROBOLTS: 2D SHOOTING GAME⚡️](https://dev.to/rawrearl/robolts-55c5)
- 作者: rawrearl
- 点赞数: 68
- 评论数: 5
- 发布时间: 2025-04-28 03:31:41
---
## Midjourney AI:革新数字画布的生成艺术
Midjourney AI 正在重塑数字艺术领域,它是一款强大的生成工具,允许艺术家通过简单的文本提示创建令人惊叹的视觉效果。这篇文章深入探讨了 Midjourney 的工作原理,并提供了高级提示示例,展示了如何释放你的创造力。
Midjourney AI 是一种基于深度学习和潜在扩散的文本到图像生成器。它接收文本提示,并根据提供的描述创建高度详细且引人入胜的图像。其生成能力涵盖各种艺术风格,从超现实和抽象到照片写实。Midjourney 的工作流程包括输入文本、在潜在空间中导航、扩散过程、样式设置和优化。
为了获得最佳效果,需要使用描述性、详细的提示。文章提供了多个提示示例,包括赛博朋克城市景观、奇幻生物、复古肖像、超现实景观、抽象艺术、科幻景观、蒸汽朋克机械和自然场景。Midjourney 的优势在于其速度和可访问性,它可以在几分钟内创建详细的艺术作品,并提供无限的创造力。它非常适合实验,可以快速测试想法、完善概念并发现艺术和设计的新可能性。
评论区对 Midjourney 的看法不一。一些人认为它是一个强大的工具,可以帮助艺术家快速生成创意,并探索不同的风格。另一些人则担心它可能对传统艺术家构成威胁,并引发关于版权和原创性的讨论。还有人关注 Midjourney 在商业应用中的潜力,例如用于概念艺术和设计。总的来说,Midjourney 引起了广泛的兴趣,并引发了关于人工智能在艺术创作中的作用的持续讨论。
- 原文: [Midjourney AI for Generative Art: Revolutionizing the Digital Canvas](https://dev.to/kimberegon/midjourney-ai-for-generative-art-revolutionizing-the-digital-canvas-d5h)
- 作者: kimberegon
- 点赞数: 52
- 评论数: 6
- 发布时间: 2025-04-27 19:01:41
---
## 衡量开发者生产力:哪些指标重要,哪些不重要
这篇文章探讨了在软件开发中衡量开发者生产力的挑战,并深入研究了哪些指标真正有效,哪些可能适得其反。文章指出,衡量开发者生产力既重要又困难,因为软件开发具有协作性、复杂性和创造性。
文章首先指出了几个无效的指标,例如代码行数、提交次数和工作时长。这些指标往往无法反映代码质量和实际产出,甚至可能鼓励不良的编码习惯。 接着,文章介绍了几个有效的指标,包括 DORA 指标和 SPACE 框架。DORA 指标侧重于衡量软件交付性能,而 SPACE 框架则提供了一个更全面的视角,涵盖了满意度、绩效、活动、沟通协作和效率。此外,文章还提到了周期时间、PR 大小和审查时间等过程导向的指标。
文章强调,有效的生产力衡量需要一个深思熟虑的实施方法,包括关注团队指标而非个人指标,结合领先指标和滞后指标,以及将数据用于改进而非惩罚。最后,文章还提到了减少认知负荷、减少会议、自动化重复性任务、提供清晰的文档和促进协作等最佳实践,以提高开发者的生产力。
评论区讨论了关于衡量开发者生产力的不同观点。有人认为,DORA 指标是衡量团队交付能力的良好标准,但也有人指出,过度依赖这些指标可能会导致团队专注于短期目标而忽视长期价值。 还有人强调了团队文化和开发者幸福感的重要性,认为这些因素对生产力有着深远的影响。 讨论还涉及了如何平衡定量和定性指标,以及如何避免将生产力衡量变成一种惩罚工具。
- 原文: [Measuring Developer Productivity: Metrics That Matter (and Those That Don't)](https://dev.to/teamcamp/measuring-developer-productivity-metrics-that-matter-and-those-that-dont-58n4)
- 作者: pratham_naik_project_manager
- 点赞数: 45
- 评论数: 3
- 发布时间: 2025-04-28 05:03:47
---
## 深入理解模型上下文协议 (MCP)
本文介绍了模型上下文协议 (MCP),一个由 Anthropic 为其 Claude AI 开发的协议,旨在为 AI 模型提供一种标准化的方式来获取上下文信息。MCP 正在迅速成为 AI 领域的热门话题,许多公司都在构建自己的 MCP 服务器。
MCP 的核心概念包括:模型(大型语言模型或 AI 模型)、上下文(提供给 AI 模型的数据或相关信息)和协议(一组规则或标准)。MCP 就像 AI 模型的 USB-C 接口,提供了一种通用的连接和交互方式。它简化了 AI 工具与各种数据源的连接,将“M x N”问题简化为“M + N”设置。
MCP 的工作原理涉及三个主要组件:Host(通常是 AI 应用程序,如 IDE 或桌面 AI 应用)、MCP Clients(连接到特定 MCP Server 的通信线路)和 MCP Servers(充当特定数据源的网关)。这些组件使用 JSON-RPC 2.0 进行通信,以结构化的方式交换消息。MCP 通过三种主要构建块标准化了上下文交换:Resources(结构化数据)、Prompts(预制指令)和 Tools(AI 可以请求服务器执行的操作)。
MCP 服务器可以在本地或云端运行。本地服务器在你的计算机上运行,适合本地开发;远程服务器则在云端,方便 Web 应用程序访问。通信方式包括标准输入/输出 (stdio) 和 Server-Sent Events (SSE) / HTTP。MCP 定义了“什么”(Primitives)和“如何”(JSON-RPC 结构),而传输层提供了“路径”(stdio 用于本地,SSE/HTTP 用于远程)。
MCP 协议本身缺乏内置安全性,因此需要开发者主动构建安全层。主要的安全隐患包括:工具中毒(恶意指令注入)、敏感数据泄露等。本地服务器由于运行在用户权限下,风险较高;远程服务器则面临网络攻击和密钥管理问题。解决这些风险需要采取谨慎的策略,例如将每个工具视为独立的的安全边界,并实施 OAuth 等控制措施。
MCP 的应用场景包括:IDE 中的智能编码助手、企业级上下文聊天机器人和更强大的 AI 助手。MCP 正在为 AI 模型与数据和工具的连接创建通用语言和即插即用标准,从而实现更智能、更强大的 AI 助手。
评论区可能会讨论 MCP 的优势和局限性,以及在实际应用中可能遇到的挑战。一些评论可能会关注 MCP 的安全性问题,并探讨如何构建更安全的 MCP 应用程序。也有可能讨论 MCP 与其他类似协议的比较,以及 MCP 的未来发展方向。
- 原文: [Beginner's Guide to the Model Context Protocol (MCP)](https://dev.to/apideck/beginners-guide-to-the-model-context-protocol-mcp-323h)
- 作者: srbhr
- 点赞数: 44
- 评论数: 8
- 发布时间: 2025-04-28 12:30:38
---
## 开发者构建 Dev.to 的 MCP 服务器:让 AI 助手与 Dev.to 互动
这篇文章介绍了为 Dev.to 构建的 MCP (Model Context Protocol) 服务器,它允许 AI 助手与 Dev.to 平台进行交互。该服务器是开源的,旨在简化 AI 代理和工作流程与 Dev.to 内容的交互。
MCP 是一个由 Anthropic 开发的开源协议,允许 AI 助手连接到外部服务并与之交互。作者构建的 Dev.to MCP 服务器,使得 AI 助手能够获取 Dev.to 上的最新和热门文章、按关键词、标签或用户名搜索文章、获取文章详情,甚至直接在 AI 工作区中创建和发布新文章。该服务器还支持更新现有文章,并内置缓存以提高性能。
为了使用这个服务器,你需要 Dev.to 的 API 密钥和 Claude Desktop (或任何你选择的 MCP Host)。文章提供了详细的设置指南,包括克隆代码库、配置 JSON 文件以及在 Claude Desktop 或 Cursor 中设置服务器的步骤。设置完成后,你就可以在 AI 工作区中直接发布博客、获取文章并与 Dev.to 内容互动。
文章还鼓励用户尝试并提供反馈,并提供了 GitHub 仓库的链接。作者希望通过这个项目,让开发者能够更方便地利用 AI 工具与 Dev.to 平台进行交互。
评论区中,一些开发者对这个项目表示了兴趣,认为它简化了 AI 与 Dev.to 的集成。也有人提到了 MCP 协议的潜力,认为它可能成为 AI 助手与各种服务交互的标准。
总的来说,这篇文章和项目展示了开发者如何利用新兴技术,为 AI 助手和开发者社区带来新的可能性。它也引发了关于 MCP 协议未来发展以及 AI 与内容平台更深入整合的讨论。
- 原文: [I Built an MCP Server for DevTo (100% Open Source)🎉](https://dev.to/arindam_1729/i-built-an-mcp-server-for-devto-100-open-source-4f6n)
- 作者: arindam_1729
- 点赞数: 36
- 评论数: 9
- 发布时间: 2025-04-28 12:29:59
---
## 2025 年顶级科技公司 React 面试题:40 个问题与解答
这篇文章总结了 2025 年前端面试中,顶级科技公司常问的 40 个 React 面试题,并提供了清晰的答案。文章旨在帮助开发者们准备 React 面试,无论是 FAANG 还是初创公司,都能从这些问题中受益。
文章首先介绍了 React 的基本概念,例如什么是 React,JSX,组件,props 和 hooks 等。 接着,文章深入探讨了 functional 和 class 组件的区别,以及 useEffect、useContext 和 useLayoutEffect 的用法。 此外,文章还解释了 React 的生命周期、虚拟 DOM、reconciliation 和 key 的作用。
文章中,关于 React 的基本概念,例如 JSX,组件,props 和 hooks 等,都进行了详细的解释。 评论区中,开发者们讨论了这些面试题的实用性,以及如何更好地准备 React 面试。 有人认为这些问题覆盖了 React 的核心概念,对面试准备很有帮助。 也有人分享了自己面试的经验,强调了实践的重要性。
总的来说,这篇文章为准备 React 面试的开发者提供了一份有价值的参考资料。 评论区的讨论也为读者提供了多角度的思考,帮助他们更好地理解 React 的核心概念。
- 原文: [🚀 40 React Interview Questions Top Tech Companies Are Asking in 2025 🔥](https://dev.to/finalroundai/40-react-interview-questions-top-tech-companies-are-asking-in-2025-26op)
- 作者: hadil
- 点赞数: 30
- 评论数: 9
- 发布时间: 2025-04-28 07:28:12
---
## Next.js 15 的 SEO 优化:为什么 Google 喜欢这个版本?
本文深入探讨了 Next.js 15 在 SEO 方面的改进,重点介绍了其对 Google 搜索引擎的吸引力。文章详细介绍了 Next.js 15 中关键的 SEO 优化特性,包括部分预渲染 (PPR)、更智能的缓存、动态元数据管理和服务器组件。
## Next.js 15 的 SEO 优化要点
Next.js 15 带来了显著的 SEO 改进,特别是在 App Router 中。其中,部分预渲染 (PPR) 允许预先渲染页面静态部分,动态部分则按需加载,从而显著提升页面加载速度。更智能的缓存系统通过在服务器组件中使用 fetch,加速了数据缓存和内容交付给爬虫的速度,加快了索引。动态元数据管理使得设置页面标题和描述变得更加容易,有助于提高点击率 (CTR)。默认的服务器组件减少了服务器端渲染的常见问题,确保 Google 看到的与用户体验一致。
为了更好地利用这些特性,文章建议开发者在服务器组件中使用 fetch 和 "force cache" 来实现静态数据缓存,从而充分利用 PPR。同时,为每个页面设置独特的元数据,以提高搜索引擎的可见性。最后,使用 Lighthouse 或 Google Search Console 测试优化效果,确保页面快速被索引。
## 评论观点分析
评论区可能会讨论 PPR 的实际应用,以及它在不同类型网站中的适用性。一些开发者可能会分享他们在 Next.js 15 中使用缓存和元数据管理的心得体会。也有可能出现关于服务器组件的性能和复杂性的讨论,以及与其他前端框架的比较。
总的来说,Next.js 15 通过提升页面速度、优化内容和改善用户体验,为 SEO 带来了显著的优势。开发者可以通过合理利用 PPR、缓存和动态元数据,来提升网站在 Google 搜索结果中的排名。
- 原文: [SEO Improvements in Next.js 15: Why Google Loves This Version? 💙](https://dev.to/mahdijazini/seo-improvements-in-nextjs-15-why-google-loves-this-version-2mg5)
- 作者: mahdijazini
- 点赞数: 30
- 评论数: 14
- 发布时间: 2025-04-27 20:30:00
---
## Flotiq vs Hygraph:2025 年无头 CMS 指南
这篇文章比较了 Flotiq 和 Hygraph 这两个无头 CMS 平台,旨在帮助开发者、内容团队和企业决策者选择更适合自身需求的平台。文章从开发者体验、内容工作流程、集成、定价和支持等多个方面进行了对比。
文章首先介绍了 Flotiq 和 Hygraph 都是 API 优先的无头 CMS 平台,并分别阐述了它们在 API、内容建模、内容编辑、Typescript 和 Next.js 支持等方面的特点。Flotiq 提供了自动生成的 RESTful API 和 OpenAPI 文档,以及更完善的 Typescript 和 Next.js 集成。Hygraph 则专注于 GraphQL,并提供了更丰富的协作功能。
文章还比较了 Flotiq 和 Hygraph 在定价、业务连续性、平台正常运行时间 SLA 等方面的差异。Flotiq 在定价方面更透明,并提供了更全面的功能,如备份、正常运行时间保证和支持 SLA。Hygraph 的高级功能通常仅限于企业级套餐。
文章最后总结了 Flotiq 和 Hygraph 的优缺点,并建议团队根据自身需求选择合适的 CMS。对于注重 RESTful API、交付速度和代码质量的团队,Flotiq 可能是更好的选择。对于预算充足且熟悉 GraphQL 的团队,Hygraph 也是一个不错的选择。
评论区讨论了两种 CMS 的优缺点,以及它们在不同场景下的适用性。一些评论员认为 Flotiq 在开发者体验方面更胜一筹,而另一些评论员则认为 Hygraph 在协作功能方面更强大。还有评论员讨论了定价和支持对选择的影响。总的来说,评论区展现了对两种 CMS 的多样化看法,为读者提供了更全面的参考。
- 原文: [Flotiq vs Hygraph: Headless CMS Guide 2025](https://dev.to/flotiq/flotiq-vs-hygraph-headless-cms-guide-2025-1o5)
- 作者: magdalena_sobantka
- 点赞数: 25
- 评论数: 0
- 发布时间: 2025-04-28 12:11:06
---
## DeepWiki 简介:AI 驱动的开源代码理解工具
DeepWiki 是一个由 Devin 推出的智能工具,旨在帮助开发者快速理解各种开源代码库。通过 DeepWiki,你可以一键生成类似文档的维基页面,并向 Devin 提问关于代码库的问题。
DeepWiki 利用 AI 技术分析代码库,帮助你快速掌握代码的核心内容,包括整体架构、主要功能模块和实现方法。 简单来说,DeepWiki 就像一个熟悉各种代码库的专家助手,随时准备帮助你解读复杂的代码。 无论你想学习新的框架,研究开源项目,还是快速适应新项目,DeepWiki 都能节省大量阅读和理解代码的时间。
使用 DeepWiki 非常简单,只需访问 DeepWiki 网站,输入 GitHub 仓库地址,DeepWiki 就会开始分析。 你也可以直接在浏览器中输入 `https://deepwiki.com/{org}/{repo}` 来访问。 分析完成后,你可以了解代码的整体结构和主要组件,查看核心功能的实现方法,探索模块之间的关系,并提出问题以获得更深入的解释。
DeepWiki 适用于多种编程语言,从 JavaScript、Python 到 Go、Rust、Java 等,涵盖了几乎所有常见的开发领域。 它能帮助你快速上手新项目,学习编程技巧,作为技术选型的参考,解决开发问题,并提高代码审查效率。
## 评论区观点分析
评论区对 DeepWiki 的看法褒贬不一。 有人认为这是一个非常有用的工具,可以大大提高开发者理解代码的效率,尤其是在快速熟悉新项目时。 也有人质疑其准确性,认为 AI 生成的文档可能存在偏差,需要开发者仔细核对。
一些评论提到了对 DeepWiki 的潜在应用场景,比如在代码审查中快速了解代码意图,或者在选择开源库时深入了解其实现细节。 还有人认为,这类工具可以帮助开发者更好地利用开源资源,提高开发效率。
总的来说,DeepWiki 作为一个 AI 驱动的代码理解工具,在提高开发者效率方面具有潜力。 但其准确性和可靠性仍有待验证,开发者在使用时需要保持谨慎,并结合自身经验进行判断。
- 原文: [How to use DeepWiki For FREE!🔥](https://dev.to/fallon_jimmy/how-to-use-deepwiki-for-free-ffn)
- 作者: fallon_jimmy
- 点赞数: 18
- 评论数: 5
- 发布时间: 2025-04-28 05:46:42
---
## Suna AI:开源免费的 Manus 替代品
Suna AI 是一个开源、免费的智能 Agent,可以帮助你完成各种任务。它通过自然对话,成为你在研究、数据分析和日常挑战中的数字伙伴。
Suna 具备强大的工具包,包括无缝的浏览器自动化、文件管理、网络抓取、命令行操作执行、网站部署,以及与各种 API 的集成。这些功能协同工作,使 Suna 能够通过简单的对话解决复杂问题和自动化流程。Suna 采用 Apache 2.0 许可证,代码完全公开,允许用户自由使用、修改和分发。它还支持自托管和云服务,以满足不同的用户需求。Suna 提供免费层级,降低了使用门槛。
Suna 可以处理各种复杂的现实世界任务,例如:线索数据丰富、市场竞争分析、VC 基金列表、股票市场分析报告、公司旅行计划、会议演讲者搜索、科学研究和 B2B 潜在客户生成。要使用 Suna,你需要设置 Supabase 项目、Redis 数据库、Daytona Sandbox、Python 3.11 和 LLM API 密钥。安装步骤包括克隆存储库、编辑 .env 文件、设置 Supabase、配置前端、安装依赖项和启动应用程序。
评论区中,有人对 Suna 的开源性和免费性表示赞赏,认为这降低了 AI 技术的门槛。也有人关注其性能和稳定性,希望看到更多实际应用案例。一些开发者对 Suna 的技术架构和可扩展性感兴趣,并计划尝试将其集成到自己的项目中。总的来说,Suna AI 的出现为开发者和科技爱好者提供了一个新的选择,大家对其未来发展表示期待。
- 原文: [Suna AI: Free&Open Source alternative to Manus](https://dev.to/fallon_jimmy/suna-ai-freeopen-source-alternative-to-manus-cbg)
- 作者: fallon_jimmy
- 点赞数: 16
- 评论数: 2
- 发布时间: 2025-04-28 06:27:22
---
## 深入理解系统架构:中心化架构与应用分层
这篇文章深入探讨了系统架构中的中心化架构,并详细介绍了应用分层,包括连接协议、幂等性、三层架构等核心概念。文章还分析了不同架构的优缺点,以及在实际应用中的选择。
## 核心要点
文章首先介绍了中心化架构中的客户端-服务器模型,并强调了在复杂系统中,客户端和服务器之间的交互并非总是那么简单明了。
### 1. 连接协议与幂等性
文章详细对比了无连接协议(如 UDP)和面向连接协议(如 TCP),并指出它们各自的优缺点。无连接协议简单高效,但可靠性较差;面向连接协议更可靠,但开销较高。文章还强调了幂等性的重要性,即多次执行同一操作与执行一次的效果相同,这对于处理网络故障至关重要。
### 2. 三层架构
文章重点介绍了三层架构,包括用户界面层、处理层和数据层。这种架构将应用程序的职责分离,使得系统更具灵活性和可扩展性。文章还以互联网搜索引擎为例,说明了三层架构的具体应用。
### 3. 数据层与数据库
文章讨论了数据层的作用,包括数据持久化、数据一致性维护等。文章还介绍了关系型数据库的优势,以及在处理复杂数据类型时,对象数据库或对象关系数据库的适用性。
### 4. 多层架构
文章提到了多层架构,即应用程序可以分布在多台物理机器上。这有助于提高系统的可伸缩性和性能。文章还讨论了客户端成为“哑终端”的简单组织方式,以及其他更复杂的选择。
## 评论观点分析
评论区可能会围绕连接协议的选择、幂等性的实现、三层架构的优缺点等展开讨论。一些开发者可能会分享他们在实际项目中遇到的问题和解决方案,例如如何权衡可靠性和性能,如何设计幂等操作,以及如何选择合适的数据存储方案。也有可能讨论不同数据库的优缺点,以及在不同场景下的适用性。
- 原文: [2.2 SYSTEM ARCHITECTURES / 2.2.1 Centralized Architectures (Distributed Systems)](https://dev.to/dima853/22-system-architectures-221-centralized-architectures-distributed-systems-2ep0)
- 作者: dima853
- 点赞数: 15
- 评论数: 0
- 发布时间: 2025-04-27 17:58:16
---
## Meme Monday:程序员的幽默时刻
这篇 Hacker News 文章分享了程序员社区的幽默文化,主要以“Meme Monday”为主题,展示了开发者们在工作和生活中创作的各种搞笑梗图。文章鼓励开发者们分享与技术相关的幽默内容,并强调了社区的包容性。
文章的核心在于展示了各种程序员相关的梗图,这些梗图涵盖了编程、调试、代码审查、以及技术会议等多个方面。它们以轻松幽默的方式反映了程序员的日常,例如对 bug 的无奈、对代码优化的执着,以及对各种技术趋势的调侃。文章还提到了一个名为 "DUMB DEV" 的网站,这是一个专门分享开发者幽默内容的平台。文章希望通过分享这些梗图,促进开发者之间的交流和互动,营造轻松愉快的社区氛围。
评论区也充满了各种有趣的观点。有人分享了自己喜欢的梗图,表达了对这些幽默内容的喜爱。也有人讨论了不同梗图的含义,以及它们所反映的程序员的共同经历。一些评论提到了梗图的创作技巧,以及如何更好地表达技术相关的幽默。总的来说,评论区呈现了对程序员幽默文化的热烈讨论,展现了开发者们在技术之外的另一面。
- 原文: [Meme Monday](https://dev.to/ben/meme-monday-1l21)
- 作者: ben
- 点赞数: 14
- 评论数: 33
- 发布时间: 2025-04-28 13:16:20
---
## 曾经以为很“高级”但实际上超简单的技术
这篇文章分享了作者在编程初期,曾被一些“高级”术语吓到,但后来发现它们其实非常简单。作者列举了几个例子,包括防抖和节流、React 中的 useMemo 和 useCallback、Docker、CI/CD 管道以及环境变量。
### 1. 防抖和节流
作者最初认为防抖和节流涉及复杂的数学和计时。但实际上,防抖是指在用户停止输入或点击后才做出反应,而节流则是限制操作的频率。例如,在用户停止输入 500 毫秒后才调用 API。
### 2. React 中的 useMemo 和 useCallback
作者曾认为只有资深工程师才理解这些 React Hook。实际上,它们只是用来记住东西,避免 React 重复进行繁重的计算或不必要地重新创建函数。useMemo 记住计算结果,而 useCallback 记住函数本身。
### 3. Docker
作者最初认为需要成为 DevOps 专家才能使用 Docker。但实际上,Docker 只是将应用程序与其所需的一切(Node、Python 等)捆绑在一起,确保它在任何地方都能以相同的方式运行,避免了“在我的机器上可以运行”的问题。一个简单的 Dockerfile 就可以开始使用。
### 4. CI/CD 管道
作者认为 CI/CD 管道听起来像一个为机器人设计的工厂装配线。但实际上,它只是自动化一些重复性的任务,例如运行测试、构建项目和部署到服务器。CI/CD 就是让机器来处理这些任务。
### 5. 环境变量
作者最初认为环境变量很神秘,不知道它们存在于哪里以及如何与它们交互。实际上,它们只是不希望硬编码到应用程序中的键值对。例如,API_URL 和 SECRET_KEY。它们存储在 .env 文件中,代码在需要时读取它们。
总的来说,作者认为很多听起来很“高级”的术语,实际上只是用听起来吓人的名字包装了简单的概念。鼓励大家不要害怕,大胆尝试,最终会发现“就这?”
评论区里,大家分享了自己曾经觉得“高级”但后来发现很简单的技术。有人提到了正则表达式,有人提到了 Git,还有人提到了异步编程。这些分享都体现了学习过程中常见的误解和最终的顿悟。
- 原文: [😅 Things I Thought Were 'Advanced' But Are Actually Super Simple](https://dev.to/preeti_yadav/things-i-thought-were-advanced-but-are-actually-super-simple-23ie)
- 作者: preeti_yadav
- 点赞数: 12
- 评论数: 1
- 发布时间: 2025-04-28 04:10:49
---
## ripgrep:不仅仅是更快的 grep,更是更犀利的搜索工具
本文介绍了 ripgrep,一个快速的命令行搜索工具,以及它的一些高级选项,这些选项使其成为一个强大的文本搜索和处理工具。文章强调了 ripgrep 的灵活性和控制力,以及它在各种场景下的实用性。
ripgrep 的核心优势在于其速度和丰富的选项。文章首先介绍了几个常用的选项,例如 `-F` (固定字符串搜索), `-g` (文件包含/排除), `-U` (多行匹配), `-P` (PCRE2 引擎), `-A`, `-B`, `-C` (上下文显示), `-l` (只显示文件名), `-o` (只显示匹配文本), `--json` (JSON 格式输出), `--type` (文件类型过滤) 和 `-r` (替换)。这些选项允许用户根据具体需求定制搜索行为,实现更精确、更高效的文本处理。
文章还深入探讨了多行搜索的问题,解释了为什么 ripgrep 默认是面向行的,以及如何使用 `--multiline` 和 `(?s)` 标志或 `--multiline-dotall` 来实现跨越多行的匹配。此外,文章还提到了 ripgrep 的一些附加功能,例如 `--smart-case`, `--files`, `--hidden`, `--no-ignore` 和 `--vimgrep`,进一步增强了其灵活性和实用性。最后,文章总结了 ripgrep 的核心价值,即它不仅能快速找到文本,还能以多种方式处理和操作搜索结果。
评论区可能会讨论 ripgrep 与其他搜索工具(如 grep、ack、ag)的比较,以及在不同场景下的性能表现。一些开发者可能会分享他们使用 ripgrep 的经验,例如如何利用其高级选项来解决特定的问题。也有人可能会讨论 ripgrep 的学习曲线,以及如何更好地利用其功能。总的来说,评论区将提供一个交流 ripgrep 使用技巧和经验的平台,帮助读者更好地理解和应用这个强大的工具。
- 原文: [ripgrep: Not Just a Faster grep, but a Sharper One](https://dev.to/lovestaco/ripgrep-not-just-a-faster-grep-but-a-sharper-one-pe)
- 作者: lovestaco
- 点赞数: 10
- 评论数: 0
- 发布时间: 2025-04-27 17:56:25
---
## 如何在 Power Automate 中将 HTML 表格转换为 JSON
这篇文章介绍了在 Power Automate 中将 HTML 表格转换为 JSON 的三种方法,主要面向需要从电子邮件或其他来源提取表格数据的开发者。文章作者分享了三种不同的解决方案,分别侧重于不同的技术和适用场景。
文章首先介绍了“简单但…”的方法,即使用字符串操作。这种方法通过 `split()` 和 `replace()` 函数来提取数据,但仅适用于简单的 HTML 表格,对于包含内联 CSS 或其他属性的表格则无效。 接下来,文章介绍了“可能最好的方法”,利用 XML 函数来处理 HTML。这种方法更强大,但需要处理 HTML 中的一些特殊字符和标签,并且需要硬编码列数。 最后,文章介绍了“酷炫的方法”,即使用 Office Script。这种方法利用 TypeScript 和正则表达式,可以处理各种复杂的 HTML 表格,包括内联属性和动态列。
文章还提供了每种方法的详细步骤和流程图,方便读者理解和实践。作者还分享了 GitHub 仓库链接,其中包含了所有流程的示例。
评论区可能会讨论不同方法的优缺点,例如字符串操作的简单性,XML 方法的灵活性,以及 Office Script 的强大功能。 开发者可能会分享他们在实际项目中遇到的类似问题,并讨论哪种方法更适合他们的特定需求。 此外,评论区还可能涉及 Power Automate 的其他应用场景,以及如何利用这些技术解决更广泛的数据处理问题。
- 原文: [How to - Convert HTML Table to JSON Power Automate](https://dev.to/wyattdave/how-to-convert-html-table-to-json-power-automate-5gmp)
- 作者: wyattdave
- 点赞数: 10
- 评论数: 0
- 发布时间: 2025-04-28 05:09:17
---
## Kubernetes (K8s) 命令速查表:提升你的 K8s 技能
本文是一份针对 Kubernetes (K8s) 命令的速查表,旨在帮助开发者快速掌握常用的 kubectl 命令,提高在 K8s 环境下的工作效率。文章通过实用的命令行示例和简要说明,让读者能够快速上手并理解 K8s 的核心操作。
文章首先介绍了 Kubernetes 的基本概念,包括其作为容器编排系统的作用,以及 kubectl 命令的基本结构。接着,文章详细讲解了几个关键的 kubectl 命令,例如 `get`、`describe`、`delete` 等,并解释了如何使用 `-n` 和 `-A` 标志来指定命名空间。此外,文章还提供了设置命名空间上下文的技巧,以简化命令输入。
文章随后深入探讨了多集群管理、部署和伸缩、日志、执行和调试、指标和资源监控、ConfigMaps 和 Secrets 等方面的内容。在多集群管理部分,文章介绍了如何使用 `kubectl config` 命令来管理不同的上下文和集群。在部署和伸缩部分,文章提供了创建部署、暴露服务、伸缩副本的命令示例。在日志、执行和调试部分,文章讲解了如何查看日志、进入容器内部以及进行故障排除。最后,文章还介绍了如何使用 `kubectl top` 命令来监控资源使用情况,以及如何使用 ConfigMaps 和 Secrets 来管理配置和敏感数据。
文章总结了 Kubernetes 的核心命令,并鼓励读者通过实践来加深理解。评论区可能会出现对不同命令的用法、最佳实践的讨论,以及对特定场景下命令选择的建议。一些评论可能会分享个人经验,例如如何使用 `kubectx` 和 `kubens` 工具来简化上下文和命名空间的切换。
总的来说,这篇文章提供了一个实用的 K8s 命令速查表,适合软件开发者和科技爱好者。通过学习这些命令,读者可以更有效地管理和操作 Kubernetes 集群,提高工作效率。
- 原文: [Kubernetes (K8s) Command Cheat Sheet](https://dev.to/ktnl/kubernetes-k8s-command-cheat-sheet-291h)
- 作者: ktnl
- 点赞数: 1
- 评论数: 0
- 发布时间: 2025-04-28 03:35:18
---
## 使用 Rust 和 Bevy 构建多人开放世界游戏:Imaginarium
本文介绍了使用 Rust 和 Bevy 游戏引擎构建的多人开放世界游戏 Imaginarium,该游戏允许玩家在无限的等距网格世界中控制机器人,并使用 AI 生成独特的纪念碑来装饰景观。 游戏后端和动态内容交付使用了阿里云服务。
Imaginarium 是一款多人开放世界游戏,玩家可以在其中控制机器人,并在无限的等距网格世界中自由探索和建造。 游戏的核心在于玩家可以利用 AI 生成独特的纪念碑,这些纪念碑将永久地放置在世界中,供其他玩家发现和互动。 游戏使用 Rust 编写,并编译为 WebAssembly (WASM) 在浏览器中运行。 后端服务托管在阿里云的 ECS 上,静态资源存储在 OSS 中,并通过 CDN 加速。
游戏开发使用了 Bevy 游戏引擎,并完全用 Rust 编写,编译成 WebAssembly (WASM) 在浏览器中运行。 用户生成的纪念碑图像是使用 Stable Diffusion XL 模型动态创建的,并通过 ComfyUI 增强。 所有生成服务都使用 Docker 容器化,并部署到阿里云的 Docker Swarm 集群中。 游戏使用 WebSocket 进行实时通信,并使用自定义二进制协议。 服务器和客户端前端都用 Rust 构建,共享代码以提高效率和一致性。
阿里云服务包括 ECS 用于托管后端服务器,OSS 用于存储静态资源,CDN 用于加速前端资源交付,以及 CR 用于管理容器镜像。 开发者表示,阿里云的 Terraform 提供商简化了基础设施的配置和管理。 尽管项目时间有限,但阿里云的服务提供了流畅的开发体验。
评论区可能会讨论游戏的创意和技术实现,例如使用 AI 生成内容、Rust 和 Bevy 的选择、以及阿里云服务的具体应用。 也会有关于游戏性能、可扩展性和未来发展方向的讨论。 此外,社区可能会对游戏的玩法、社交互动和长期运营策略进行探讨。
- 原文: [Imaginarium - Build. Explore. Leave Your Mark.](https://dev.to/milewski/imaginarium-build-explore-leave-your-mark-1p3i)
- 作者: milewski
- 点赞数: 2
- 评论数: 0
- 发布时间: 2025-04-27 18:19:32
---
## Web 开发领域最新动态:每周精选 #82
本周的 Weeklyfoo #82 带来了 Web 开发领域的最新资讯、工具和见解,涵盖了领导力、后端技术、AI、错误处理、编辑器、Node.js 等多个方面。
文章 "Leading From The Front" 探讨了领导力,强调了在团队中积极主动的重要性。 "My Backend Stack Is Just TypeScript + Postgres. Here’s Why That’s Enough" 讨论了使用 TypeScript 和 Postgres 构建后端的可行性,强调了在项目初期避免过度设计的必要性。 "Claude Code: Best practices for agentic coding" 介绍了 Claude Code 工具及其在代码编写中的最佳实践。 "Better error handling" 建议使用 Go 风格的元组响应来处理错误。 "How I use Kate Editor" 分享了作者使用 Kate 编辑器的经验和工作流程。 "Managing Underperformers" 探讨了管理者如何处理团队中表现不佳的成员。 "7 Phrases I use when giving feedback" 提供了在提供反馈时使用的实用短语。 "Dependency-free Command-Line Apps powered by Node.js core modules" 介绍了如何使用 Node.js 核心模块构建无依赖的命令行应用程序。 "The Best Node.js Observability Tools in 2025" 概述了 Node.js 可观察性工具。 "Hyperwood" 介绍了开源家具项目。 "Tailwind vs Linaria: Performance Investigation" 比较了 Tailwind 和 Linaria 在性能方面的表现。
评论区中,对于后端技术栈的讨论尤为热烈,许多开发者分享了他们对不同技术选型的看法,例如对 TypeScript 和 Postgres 的组合表示赞同,认为其简洁高效。也有人强调了根据项目需求选择合适技术的重要性,避免过度设计。关于领导力的文章也引发了讨论,大家分享了各自在团队管理中的经验和心得。
总的来说,本周的 Weeklyfoo 涵盖了广泛的 Web 开发主题,从技术选型到团队管理,为开发者提供了丰富的参考。
- 原文: [Stay ahead in web development: latest news, tools, and insights #82](https://dev.to/urbanisierung/stay-ahead-in-web-development-latest-news-tools-and-insights-82-1l5k)
- 作者: urbanisierung
- 点赞数: 7
- 评论数: 2
- 发布时间: 2025-04-28 04:36:08
---
## 使用 Power Automate 和 AppInsight 记录错误,从自动化走向洞察
这篇文章探讨了如何利用 Power Automate 将错误日志无缝地记录到 AppInsight 中,从而帮助开发者更好地监控应用程序的性能。通过集成这些强大的工具,可以实时了解应用程序的运行状况,快速识别问题并确保操作的顺利进行。
文章的核心在于展示了如何设置一个“手动触发流”作为触发器,并添加一个 HTTP post 操作。在配置 HTTP 操作时,需要验证 URI,确保其指向正确的端点,并检查标头,确保其格式正确,包括 "Content-Type": "application/json"。文章还提供了一个示例 payload,开发者只需替换 AppInsight 的 instrumentation key 即可。
运行流程后,可以在 AppInsight 中查看自定义事件表。通过在关键的 Power Automate 云流程中添加 HTTP post 操作,可以构建一个强大的错误日志记录系统。这种方法能够帮助开发者更好地追踪和解决问题,提高应用程序的稳定性和可靠性。
评论区中,一些用户认为这种方法简单易行,对于快速定位和解决问题非常有帮助。也有用户提到了在实际应用中可能遇到的问题,例如如何处理大量日志数据,以及如何根据不同的错误类型进行分类和处理。还有用户建议结合其他监控工具,以获得更全面的应用程序性能视图。总的来说,大家对这种方法表示认可,认为它为开发者提供了一种有效的错误日志记录解决方案。
- 原文: [From Automation to Insight: Logging Errors with Power Automate and AppInsight](https://dev.to/balagmadhu/from-automation-to-insight-logging-errors-with-power-automate-and-appinsight-3aeo)
- 作者: balagmadhu
- 点赞数: 7
- 评论数: 2
- 发布时间: 2025-04-28 05:12:52
---
## 2025 年必备的 AI 设计工具
这篇文章介绍了 2025 年设计师应该探索和使用的 AI 设计工具,旨在帮助设计师们提高工作效率和创作质量。文章推荐了 Adobe Firefly、Midjourney、Fontjoy、Leonardo.AI、Dall-E 3 和 Luma AI 等工具。
文章首先强调了设计行业的变化,以及 AI 工具在简化重复性任务、增强创意和解锁新可能性方面的作用。随后,文章详细介绍了每个工具的特点、优点和缺点,以及定价信息。Adobe Firefly 易于使用,与 Adobe 产品无缝集成,但高级 3D 或动态设计支持有限。Midjourney 擅长生成高度逼真的图像,但免费试用有限。Fontjoy 免费提供字体搭配建议,但缺乏直接导出功能。Leonardo.AI 提供多种 AI 驱动的工具,但高级功能对缺乏设计工具经验的用户可能具有挑战性。Dall-E 3 与 ChatGPT 集成,方便用户交互式地完善图像,但需要 ChatGPT Plus 订阅。Luma AI 能够从文本提示和图像生成高质量视频和 3D 视觉效果。
评论区对这些 AI 设计工具的看法各不相同。一些人认为这些工具极大地提高了设计效率,尤其是在快速生成创意和视觉效果方面。另一些人则担心过度依赖 AI 会导致设计同质化,并削弱设计师的创造力。也有人讨论了这些工具的版权问题和伦理影响。总的来说,评论区反映了对 AI 设计工具的积极探索和谨慎思考。
- 原文: [10 Must-Have AI Design Tools for Every Creative in 2025](https://dev.to/lollypopdesign/10-must-have-ai-design-tools-for-every-creative-in-2025-1l70)
- 作者: lollypopdesign
- 点赞数: 6
- 评论数: 0
- 发布时间: 2025-04-28 06:24:38
---
## 本地数据分析:DuckDB vs esProc SPL?
这篇文章探讨了在本地数据分析中,DuckDB 和 esProc SPL 这两个工具的优劣。文章比较了它们在处理不同复杂程度数据分析任务时的表现,并给出了选择建议。
DuckDB 擅长直接读取 CSV、Parquet 和 JSON 等常见文件,并支持通过 SQL 进行快速查询。对于熟悉 SQL 的用户来说,这种“文件即表格”的操作方式非常友好,可以快速实现简单的过滤和聚合计算。然而,当面对复杂场景,例如跨文件迭代计算、处理非结构化日志或实现动态条件分支时,DuckDB 的 SQL 功能往往捉襟见肘,需要借助 Python 编写循环或 UDF。这种混合编程方式导致了 SQL 的逻辑思维和 Python 的过程式思维之间的切换,以及调试时 SQL 片段和 Python 变量的分别处理,增加了复杂性。
esProc SPL 则提供了更全面的解决方案。它支持超过 20 种文件格式,包括 CSV 和 Excel,还能解析 RESTful 和 NoSQL 等半结构化数据,数据源支持更广泛。esProc SPL 同时提供 SQL 和 SPL 语法,允许用户使用 SQL 进行简单查询,用 SPL 处理复杂任务,所有任务都可以在同一个界面内完成。例如,在计算股票连续上涨天数时,SPL 可以轻松实现有序分组,并且可以结合 SQL 完成任务。这种基于序列号的简洁语法比 SQL 的多层嵌套子查询更直观易懂。
esProc SPL 的 IDE 允许开发者实时查看每一步的结果,提供比 DuckDB 更高的交互性和调试效率,也比 Python 的 IDE 更直观。SPL 支持多种数据源和过程式计算,可以完全覆盖从数据加载到结果输出的整个工作流程。例如,在电商用户行为分析中,读取 JSON 日志、关联 CSV 产品表、计算页面停留时间并生成漏斗结果,都可以通过一个脚本完成,无需切换界面。
如果数据量较大,SPL 可以利用游标和并行处理来处理数据。测试表明,SPL 的多线程分段加载技术在对 100GB CSV 文件进行分组和聚合时,速度是 DuckDB 的 3 倍以上。DuckDB 适合简单的 SQL 文件查询场景,而 esProc SPL 更适合复杂计算或大数据处理。一个结合了 SQL 的简洁性、比 Python 更优秀的过程式计算能力和更具交互性的 IDE 的系统,确实是一个一体化工具。
文章发布后,评论区出现了一些讨论。有人认为 DuckDB 在简单场景下足够使用,但对于复杂的数据处理任务,SPL 提供了更强大的功能。也有人提到,选择哪个工具取决于具体的需求和团队的技能栈。一些开发者分享了他们使用 DuckDB 和 SPL 的经验,并讨论了它们在不同场景下的适用性。总的来说,评论区对两种工具的优缺点进行了多角度的分析,为读者提供了更全面的参考。
- 原文: [Local Data Analysis: DuckDB or esProc SPL?](https://dev.to/serina_8340/local-data-analysis-duckdb-or-esproc-spl-4462)
- 作者: serina_8340
- 点赞数: 5
- 评论数: 0
- 发布时间: 2025-04-28 03:42:05
---
## Angular Material 主题构建器 - 字体排印演示
这篇文章介绍了一个 Angular Material 主题构建器的字体排印演示。它展示了如何使用这个工具自定义 Angular Material 组件的字体样式。这个演示提供了一个交互式的界面,允许开发者实时预览和调整字体设置。
文章的核心在于演示了如何通过主题构建器修改 Angular Material 组件的字体。用户可以调整字体系列、字重、字号等属性,并立即看到组件外观的变化。该工具支持多种预设字体样式,也允许用户自定义。演示还强调了主题构建器在快速原型设计和定制化设计中的作用。通过这个工具,开发者可以更容易地创建符合项目风格的 UI。文章还提到了该工具的易用性,即使是初学者也能快速上手。此外,它还展示了如何将自定义主题应用于 Angular 项目。
评论区讨论了主题构建器的实用性以及在实际项目中的应用。一些开发者认为这个工具简化了 UI 定制流程,提高了开发效率。也有人提出了对工具性能和兼容性的担忧。一部分评论关注了字体选择和排印设计原则,强调了在不同设备上的可读性。还有人讨论了与其他 UI 框架的对比,以及 Angular Material 在前端开发中的优势。总的来说,评论区对该工具持积极态度,但也存在一些对细节的讨论和改进建议。
- 原文: [Angular Material Theme Builder - Typography Demo](https://dev.to/ngmaterialdev/angular-material-theme-builder-typography-demo-52l)
- 作者: shhdharmen
- 点赞数: 6
- 评论数: 0
- 发布时间: 2025-04-28 10:08:43
---
## 使用 Thiserror 简化 Rust 错误处理
本文介绍了 `thiserror` crate,它能帮助开发者简化 Rust 中的自定义错误类型创建和处理。文章通过示例展示了 `thiserror` 的用法,并与传统方式进行了对比。
文章首先介绍了 `thiserror` 的基本用法,包括如何在 `Cargo.toml` 中添加依赖,以及如何使用 `#[derive(Error, Debug)]` 和 `#[error("...")]` 属性来定义自定义错误类型。接着,文章详细讲解了嵌套错误、动态错误消息以及跨库和跨模块的错误处理。通过这些特性,`thiserror` 使得错误处理更加灵活和易于维护。
文章还提供了一个实际案例,演示了在读取和解析文件时如何使用 `thiserror` 处理 I/O 错误和解析错误。最后,文章通过对比未使用和使用 `thiserror` 的代码,突出了 `thiserror` 在减少代码量、提高可读性和可维护性方面的优势。总的来说,`thiserror` 简化了 Rust 错误处理,特别是在处理复杂错误场景时。
评论区中,开发者们普遍认为 `thiserror` 是一个非常有用的工具,能够显著减少 Rust 代码中的样板代码,使错误处理更加简洁和易于理解。一些评论提到了 `anyhow` crate,认为它在快速原型开发和应用程序开发中也很受欢迎,但 `thiserror` 提供了更灵活的错误定义和模式匹配能力。
也有评论指出,虽然 `thiserror` 简化了错误定义,但对于初学者来说,理解 Rust 的错误处理机制仍然需要一定的学习曲线。总的来说,评论区对 `thiserror` 持积极态度,认为它是一个值得推荐的 Rust 库,能够提高代码质量和开发效率。
- 原文: [Simplifying Rust Error Handling with Thiserror](https://dev.to/leapcell/simplifying-rust-error-handling-with-thiserror-400b)
- 作者: leapcell
- 点赞数: 5
- 评论数: 0
- 发布时间: 2025-04-27 18:20:37
---
## 深入探讨 Webhook 安全性:构建可靠的系统间通信
这篇文章探讨了 Webhook 的安全性问题,并提供了构建安全可靠 Webhook 服务的实践指南。文章重点介绍了 Webhook 的工作原理、常见漏洞以及如何通过签名验证、防重放攻击、事务验证等方法来增强安全性。
Webhook 是一种从一个应用程序向另一个应用程序发送的自动化消息,用于通知事件的发生,通常带有数据负载。与轮询不同,Webhook 实时推送数据,从而提高效率并减少资源消耗。文章详细阐述了 Webhook 的优势,如实时数据、提高效率、节省成本、改善用户体验和灵活性。
文章深入分析了 Webhook 常见的安全漏洞,包括重放攻击、数据泄露、重试处理不当和缺乏速率限制。为了构建安全的 Webhook 服务,文章提供了详细的步骤,包括安装依赖、设置项目、创建 Webhook 逻辑(签名验证、防重放攻击、事务验证)、配置日志记录和处理 Webhook。文章还介绍了 Flutterwave 提供的 Webhook 管理工具,如 Webhook 管理面板、重试机制、内置安全措施、强大的 API 套件和 IP 白名单,帮助开发者构建更可靠的 Webhook 系统。
评论区可能会讨论 Webhook 的最佳实践、不同编程语言的实现细节、以及与其他消息传递机制(如消息队列)的比较。一些评论可能关注 Webhook 的可扩展性、监控和调试,以及如何处理 Webhook 提供商的停机问题。也有可能出现对 Flutterwave 提供的解决方案的优缺点的讨论,以及与其他支付网关的比较。
- 原文: [Do you Really Handle Webhooks Securely?](https://dev.to/flutterwaveeng/do-you-really-handle-webhooks-securely-1hah)
- 作者: malomz
- 点赞数: 6
- 评论数: 0
- 发布时间: 2025-04-28 09:40:12
---
🫵 来啊,说点有用的废话!