<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0"><channel><title>赵榕笔记</title><link>http://47.115.62.199/</link><atom:link href="http://47.115.62.199/rss.xml" rel="self" type="application/rss+xml"/><description>中华人民共和国程序员</description><generator>Halo v2.23.1</generator><language>zh-cn</language><image><url>https://qiniu-cdn.zhaorong.pro/images/china-coder.webp</url><title>赵榕笔记</title><link>http://47.115.62.199/</link></image><lastBuildDate>Thu, 30 Apr 2026 02:45:31 GMT</lastBuildDate><item><title><![CDATA[Python打包成可执行文件]]></title><link>/archives/R69rp8ur</link><description><![CDATA[<img src="http://localhost:8090/plugins/feed/assets/telemetry.gif?title=Python%E6%89%93%E5%8C%85%E6%88%90%E5%8F%AF%E6%89%A7%E8%A1%8C%E6%96%87%E4%BB%B6&amp;url=/archives/R69rp8ur" width="1" height="1" alt="" style="opacity:0;">将 Python 脚本（.py）打包成可执行文件（.exe）最常用且推荐的方法是使用 PyInstaller 工具。它能将所有依赖库和 Python 解释器打包在一起。操作步骤为：安装 pip install pyinstaller -&gt; 终端运行 pyinstaller -F your_scrip]]></description><guid isPermaLink="false">/archives/R69rp8ur</guid><dc:creator>damon</dc:creator><pubDate>Fri, 3 Apr 2026 15:03:44 GMT</pubDate></item><item><title><![CDATA[是谁咬下了“苹果”的一角？]]></title><link>/archives/EC0krln2</link><description><![CDATA[<img src="http://localhost:8090/plugins/feed/assets/telemetry.gif?title=%E6%98%AF%E8%B0%81%E5%92%AC%E4%B8%8B%E4%BA%86%E2%80%9C%E8%8B%B9%E6%9E%9C%E2%80%9D%E7%9A%84%E4%B8%80%E8%A7%92%EF%BC%9F&amp;url=/archives/EC0krln2" width="1" height="1" alt="" style="opacity:0;">当比尔·盖茨热衷于慈善事业，将个人的巨额财产慷慨地捐出，并向世界宣布他的儿女将不会得到其巨额遗产，世人对这位地球首富万分崇敬时；当迈克·戴尔每天卖出上万台电脑，谱写着IT界华丽的乐章，其“直销模式”被世人奉为典范时；当19岁的电脑神童布雷克·罗斯带着他“火狐”（FireFox）浏览器向IE叫板，让世]]></description><guid isPermaLink="false">/archives/EC0krln2</guid><dc:creator>damon</dc:creator><category>我的日记</category><pubDate>Wed, 11 Mar 2026 10:10:19 GMT</pubDate></item><item><title><![CDATA[ClaimsPrincipal序列化为Json的正确姿势]]></title><link>/archives/et5u8LqY</link><description><![CDATA[<img src="http://localhost:8090/plugins/feed/assets/telemetry.gif?title=ClaimsPrincipal%E5%BA%8F%E5%88%97%E5%8C%96%E4%B8%BAJson%E7%9A%84%E6%AD%A3%E7%A1%AE%E5%A7%BF%E5%8A%BF&amp;url=/archives/et5u8LqY" width="1" height="1" alt="" style="opacity:0;">在现代 .NET 应用（尤其是 ASP.NET Core）中，ClaimsPrincipal 是身份认证和授权的核心对象。它封装了当前用户的身份信息、角色声明（claims）以及其他安全上下文数据。然而，当你需要将用户身份信息跨服务传递、记录日志、缓存或用于调试时，往往会遇到一个看似简单却颇具挑战的]]></description><guid isPermaLink="false">/archives/et5u8LqY</guid><dc:creator>damon</dc:creator><category>攻城湿</category><pubDate>Tue, 3 Mar 2026 03:44:51 GMT</pubDate></item><item><title><![CDATA[PipelinR：在Java中实现优雅的CQRS架构]]></title><link>/archives/6VY1uEou</link><description><![CDATA[<img src="http://localhost:8090/plugins/feed/assets/telemetry.gif?title=PipelinR%EF%BC%9A%E5%9C%A8Java%E4%B8%AD%E5%AE%9E%E7%8E%B0%E4%BC%98%E9%9B%85%E7%9A%84CQRS%E6%9E%B6%E6%9E%84&amp;url=/archives/6VY1uEou" width="1" height="1" alt="" style="opacity:0;">使用中介者模式轻松实现命令查询职责分离，构建高内聚、低耦合的应用系统 一、知识点回顾 1. 什么是CQRS？ CQRS是Command Query Responsibility Segregation的缩写，一般称作命令查询职责分离。从字面意思理解，就是将命令（写入）和查询（读取）的责任划分到不同的]]></description><guid isPermaLink="false">/archives/6VY1uEou</guid><dc:creator>榕少</dc:creator><enclosure url="/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fqiniu-cdn.zhaorong.pro%2Fimages%2FCQRS-Diagram-e1598922649719.png&amp;size=m" type="image/jpeg" length="0"/><category>攻城湿</category><pubDate>Tue, 3 Feb 2026 08:19:41 GMT</pubDate></item><item><title><![CDATA[RabbitMQ发布订阅模式多实例消费者防止重复消费实现方式]]></title><link>/archives/rabbitmq-topic-multiple-instance-impl</link><description><![CDATA[<img src="http://localhost:8090/plugins/feed/assets/telemetry.gif?title=RabbitMQ%E5%8F%91%E5%B8%83%E8%AE%A2%E9%98%85%E6%A8%A1%E5%BC%8F%E5%A4%9A%E5%AE%9E%E4%BE%8B%E6%B6%88%E8%B4%B9%E8%80%85%E9%98%B2%E6%AD%A2%E9%87%8D%E5%A4%8D%E6%B6%88%E8%B4%B9%E5%AE%9E%E7%8E%B0%E6%96%B9%E5%BC%8F&amp;url=/archives/rabbitmq-topic-multiple-instance-impl" width="1" height="1" alt="" style="opacity:0;">书接上回。 上一篇文章中已经通过一个实际的业务场景结合RabbitMQ的四种交换机类型对RabbitMQ发布订阅模式同一消费者多个实例如何防止重复消费这个问题给出了解决方案。结尾的时候挖了个坑，水这篇的目的就是要把这个坑填上，给大家提供一个可以直接抄作业的代码。 先把一些参数提前公布出来，后面代码里]]></description><guid isPermaLink="false">/archives/rabbitmq-topic-multiple-instance-impl</guid><dc:creator>damon</dc:creator><enclosure url="/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fi0.wp.com%2Fseventhstate.io%2Fwp-content%2Fuploads%2F2024%2F02%2FWhat-is-RabbitMQ.png%3Fw%3D732%26ssl%3D1&amp;size=m" type="image/jpeg" length="0"/><category>攻城湿</category><pubDate>Wed, 24 Dec 2025 08:49:20 GMT</pubDate></item><item><title><![CDATA[RabbitMQ发布订阅模式同一消费者多个实例如何防止重复消费？]]></title><link>/archives/rabbitmq-topic-multiple-instance</link><description><![CDATA[<img src="http://localhost:8090/plugins/feed/assets/telemetry.gif?title=RabbitMQ%E5%8F%91%E5%B8%83%E8%AE%A2%E9%98%85%E6%A8%A1%E5%BC%8F%E5%90%8C%E4%B8%80%E6%B6%88%E8%B4%B9%E8%80%85%E5%A4%9A%E4%B8%AA%E5%AE%9E%E4%BE%8B%E5%A6%82%E4%BD%95%E9%98%B2%E6%AD%A2%E9%87%8D%E5%A4%8D%E6%B6%88%E8%B4%B9%EF%BC%9F&amp;url=/archives/rabbitmq-topic-multiple-instance" width="1" height="1" alt="" style="opacity:0;">微服务架构模式中，服务间的通信一般采用HTTP、RPC或者MQ（消息队列）。在这三种方案中，HTTP和RPC是一对一的方式，通常用来进行查询或者命令式的操作，MQ则多用于事件的发布和处理。 在实际项目中我们通常会遇到一种情况： 事件有多个订阅者，有的订阅者部署多个实例，要求每个事件只需要发布一次，每]]></description><guid isPermaLink="false">/archives/rabbitmq-topic-multiple-instance</guid><dc:creator>damon</dc:creator><enclosure url="/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fqiniu-cdn.zhaorong.pro%2Fimages%2F20251217131836457.svg&amp;size=m" type="image/jpeg" length="0"/><category>攻城湿</category><pubDate>Wed, 17 Dec 2025 05:24:18 GMT</pubDate></item><item><title><![CDATA[使用 C# 实现一个 Event Bus]]></title><link>/archives/imp-event-bus-use-csharp</link><description><![CDATA[<img src="http://localhost:8090/plugins/feed/assets/telemetry.gif?title=%E4%BD%BF%E7%94%A8%20C%23%20%E5%AE%9E%E7%8E%B0%E4%B8%80%E4%B8%AA%20Event%20Bus&amp;url=/archives/imp-event-bus-use-csharp" width="1" height="1" alt="" style="opacity:0;">Event Bus（事件总线）是一种用于在应用程序内部或跨应用程序组件之间进行事件通信的机制。它允许不同的组件通过发布和订阅事件来进行解耦和通信。 在给定的代码片段中，我们可以看到一个使用C#实现的Event Bus。它定义了一些接口和类来实现事件的发布和订阅。 首先，我们有两个基本的约束接口：IE]]></description><guid isPermaLink="false">/archives/imp-event-bus-use-csharp</guid><dc:creator>damon</dc:creator><category>攻城湿</category><pubDate>Mon, 8 Dec 2025 10:05:37 GMT</pubDate></item><item><title><![CDATA[Azure Functions 的5种托管方式]]></title><link>/archives/azure-functions-hostings</link><description><![CDATA[<img src="http://localhost:8090/plugins/feed/assets/telemetry.gif?title=Azure%20Functions%20%E7%9A%845%E7%A7%8D%E6%89%98%E7%AE%A1%E6%96%B9%E5%BC%8F&amp;url=/archives/azure-functions-hostings" width="1" height="1" alt="" style="opacity:0;">Azure Functions 的五种托管方式，包括 Flex Consumption、Premium、Dedicated、Container Apps 和 Consumption 计划，比较了它们在缩放方式、资源限制、适用场景和计费方式上的差异。]]></description><guid isPermaLink="false">/archives/azure-functions-hostings</guid><dc:creator>damon</dc:creator><category>IT客</category><pubDate>Mon, 24 Nov 2025 03:24:37 GMT</pubDate></item><item><title><![CDATA[REST: HTTP 缓存]]></title><link>/archives/rest-part2-cache</link><description><![CDATA[<img src="http://localhost:8090/plugins/feed/assets/telemetry.gif?title=REST%3A%20HTTP%20%E7%BC%93%E5%AD%98&amp;url=/archives/rest-part2-cache" width="1" height="1" alt="" style="opacity:0;">Cache 在 REST 设计中使用缓存可以缩短响应时间、节约网络带宽。 A “cache” is a local store of previous response messages and the subsystem that controls its message storage, ret]]></description><guid isPermaLink="false">/archives/rest-part2-cache</guid><dc:creator>damon</dc:creator><category>攻城湿</category><pubDate>Fri, 14 Nov 2025 07:32:09 GMT</pubDate></item><item><title><![CDATA[REST：HTTP API 设计思路]]></title><link>/archives/est-part1-api</link><description><![CDATA[<img src="http://localhost:8090/plugins/feed/assets/telemetry.gif?title=REST%EF%BC%9AHTTP%20API%20%E8%AE%BE%E8%AE%A1%E6%80%9D%E8%B7%AF&amp;url=/archives/est-part1-api" width="1" height="1" alt="" style="opacity:0;">What is REST REST, stands for REpresentational State Transfer, proposed by Roy Fielding in his 2000 PhD dissertation[1], is an architectural approach]]></description><guid isPermaLink="false">/archives/est-part1-api</guid><dc:creator>damon</dc:creator><category>攻城湿</category><pubDate>Fri, 14 Nov 2025 07:27:35 GMT</pubDate></item><item><title><![CDATA[BFF治理与优化实践]]></title><link>/archives/bff-governance-and-optimization</link><description><![CDATA[<img src="http://localhost:8090/plugins/feed/assets/telemetry.gif?title=BFF%E6%B2%BB%E7%90%86%E4%B8%8E%E4%BC%98%E5%8C%96%E5%AE%9E%E8%B7%B5&amp;url=/archives/bff-governance-and-optimization" width="1" height="1" alt="" style="opacity:0;">在Thoughtworks的第25期 技术雷达中有一个主题：便利背后的陷阱，再次强调了软件开发的一种反模式： 开发团队一般为了图方便，而在其技术生态系统的复杂环节中，引入一些不合理的行为，从而欠下长期存在的技术债务，并会引发更糟的问题。这种例子不胜枚举，包括将数据库作为集成点，使用 Kafka 作为]]></description><guid isPermaLink="false">/archives/bff-governance-and-optimization</guid><dc:creator>damon</dc:creator><enclosure url="/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fqiniu-cdn.zhaorong.pro%2Fimages%2F8351951710_889911.jpg&amp;size=m" type="image/jpeg" length="0"/><category>攻城湿</category><pubDate>Tue, 11 Nov 2025 02:21:45 GMT</pubDate></item><item><title><![CDATA[BFF架构下需要注意的坑]]></title><link>/archives/5d444364-9063-4fe4-810a-d8910554c02b</link><description><![CDATA[<img src="http://localhost:8090/plugins/feed/assets/telemetry.gif?title=BFF%E6%9E%B6%E6%9E%84%E4%B8%8B%E9%9C%80%E8%A6%81%E6%B3%A8%E6%84%8F%E7%9A%84%E5%9D%91&amp;url=/archives/5d444364-9063-4fe4-810a-d8910554c02b" width="1" height="1" alt="" style="opacity:0;">BFF（Backend for Frontend）架构是一种设计模式，它在后端服务器和前端用户界面之间引入了一个中间层。BFF充当中介，负责处理前端应用程序的请求并与后端服务通信。这种架构可以提高前后端协同效率，优化接口调用，以及满足不同前端设备的需求。 BFF架构开发注意点 在使用BFF架构进行项]]></description><guid isPermaLink="false">/archives/5d444364-9063-4fe4-810a-d8910554c02b</guid><dc:creator>damon</dc:creator><category>攻城湿</category><pubDate>Fri, 7 Nov 2025 08:00:10 GMT</pubDate></item><item><title><![CDATA[RabbitMQ消息堆积的原因]]></title><link>/archives/reasons-for-rabbitmq-message-backlogs</link><description><![CDATA[<img src="http://localhost:8090/plugins/feed/assets/telemetry.gif?title=RabbitMQ%E6%B6%88%E6%81%AF%E5%A0%86%E7%A7%AF%E7%9A%84%E5%8E%9F%E5%9B%A0&amp;url=/archives/reasons-for-rabbitmq-message-backlogs" width="1" height="1" alt="" style="opacity:0;">RabbitMQ消息堆积的主要原因包括生产者发送速度远超消费者处理速度、消费者处理能力不足或故障、消费者未正确发送确认信号（ack）、不合理的QoS/Prefetch设置以及网络或系统资源瓶颈。 当生产者发送的消息堆积在队列中，如果堆积超过队列容量或设置了过期时间（TTL），可能会导致消息被丢弃。]]></description><guid isPermaLink="false">/archives/reasons-for-rabbitmq-message-backlogs</guid><dc:creator>damon</dc:creator><category>攻城湿</category><pubDate>Mon, 27 Oct 2025 06:07:16 GMT</pubDate></item><item><title><![CDATA[Kafka和RabbitMQ架构对比]]></title><link>/archives/difference-between-kafka-and-rabbitmq</link><description><![CDATA[<img src="http://localhost:8090/plugins/feed/assets/telemetry.gif?title=Kafka%E5%92%8CRabbitMQ%E6%9E%B6%E6%9E%84%E5%AF%B9%E6%AF%94&amp;url=/archives/difference-between-kafka-and-rabbitmq" width="1" height="1" alt="" style="opacity:0;">Kafka和RabbitMQ在架构设计、数据处理方式和适用场景上存在显著差异。 Kafka 是一个分布式流处理平台，使用基于主题和分区的日志存储，采用拉取（pull）模式，适合高吞吐量、大数据流和实时数据处理的场景，并允许消息重放。 而RabbitMQ 是一种传统的、更灵活的消息代理，基于**推送（]]></description><guid isPermaLink="false">/archives/difference-between-kafka-and-rabbitmq</guid><dc:creator>damon</dc:creator><category>攻城湿</category><pubDate>Wed, 22 Oct 2025 08:36:37 GMT</pubDate></item><item><title><![CDATA[判断质数，为什么判断到根号N 就可以了？]]></title><link>/archives/why-use-sqrt-to-check-prime-number</link><description><![CDATA[<img src="http://localhost:8090/plugins/feed/assets/telemetry.gif?title=%E5%88%A4%E6%96%AD%E8%B4%A8%E6%95%B0%EF%BC%8C%E4%B8%BA%E4%BB%80%E4%B9%88%E5%88%A4%E6%96%AD%E5%88%B0%E6%A0%B9%E5%8F%B7N%20%E5%B0%B1%E5%8F%AF%E4%BB%A5%E4%BA%86%EF%BC%9F&amp;url=/archives/why-use-sqrt-to-check-prime-number" width="1" height="1" alt="" style="opacity:0;">先说结论 判断一个数n是否为质数（素数）时，只需要判断小于或等于sqrt(n)的数能否整除n即可。这是因为如果n是一个合数，那么n可以分解为a和b两个数，即n = a ✖️ b，那么这两个因数中必然有一个小于或等于sqrt(n)，另一个大于或等于sqrt(n)。因此只需要找出小于或等于sqrt(n)]]></description><guid isPermaLink="false">/archives/why-use-sqrt-to-check-prime-number</guid><dc:creator>damon</dc:creator><category>攻城湿</category><pubDate>Fri, 26 Sep 2025 15:50:12 GMT</pubDate></item><item><title><![CDATA[优秀程序员经验总结]]></title><link>/archives/programmer-experiences</link><description><![CDATA[<img src="http://localhost:8090/plugins/feed/assets/telemetry.gif?title=%E4%BC%98%E7%A7%80%E7%A8%8B%E5%BA%8F%E5%91%98%E7%BB%8F%E9%AA%8C%E6%80%BB%E7%BB%93&amp;url=/archives/programmer-experiences" width="1" height="1" alt="" style="opacity:0;">重构是程序员的主力技能。 工作日志能提升脑容量。 先用profiler调查，才有脸谈优化。 软件设计有两种方式：一种方式是，使软件过于简单，明显没有缺陷；另一种方式是，使软件过于复杂，没有明显的缺陷。 大部分情况下，构建程序的过程本质上是对规范调试的过程。 注释贵精不贵多。杜绝大姨妈般的“例注”。漫]]></description><guid isPermaLink="false">/archives/programmer-experiences</guid><dc:creator>damon</dc:creator><category>IT客</category><pubDate>Thu, 4 Sep 2025 11:35:51 GMT</pubDate></item><item><title><![CDATA[HyperDock不显示预览图的解决方法]]></title><link>/archives/hyperdock_window_previews_are_blurred</link><description><![CDATA[<img src="http://localhost:8090/plugins/feed/assets/telemetry.gif?title=HyperDock%E4%B8%8D%E6%98%BE%E7%A4%BA%E9%A2%84%E8%A7%88%E5%9B%BE%E7%9A%84%E8%A7%A3%E5%86%B3%E6%96%B9%E6%B3%95&amp;url=/archives/hyperdock_window_previews_are_blurred" width="1" height="1" alt="" style="opacity:0;">HyperDock 是一款 macOS 上的增强型窗口管理与 Dock 辅助工具，它为用户带来了更高效的多任务操作体验，起作用类似于Windows的任务栏图标预览。通过 HyperDock，你可以在 Dock 上直接预览应用的窗口缩略图，快速切换、关闭或管理应用。它还支持强大的窗口管理功能，如将窗口]]></description><guid isPermaLink="false">/archives/hyperdock_window_previews_are_blurred</guid><dc:creator>damon</dc:creator><enclosure url="/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fqiniu-cdn.zhaorong.pro%2Fimages%2Ff1qiv5hgjl231.png&amp;size=m" type="image/jpeg" length="0"/><category>IT客</category><pubDate>Thu, 4 Sep 2025 08:56:07 GMT</pubDate></item><item><title><![CDATA[六边形架构模式深度解析]]></title><link>/archives/19027635</link><description><![CDATA[<img src="http://localhost:8090/plugins/feed/assets/telemetry.gif?title=%E5%85%AD%E8%BE%B9%E5%BD%A2%E6%9E%B6%E6%9E%84%E6%A8%A1%E5%BC%8F%E6%B7%B1%E5%BA%A6%E8%A7%A3%E6%9E%90&amp;url=/archives/19027635" width="1" height="1" alt="" style="opacity:0;">在分布式系统设计领域，六边形架构（Hexagonal Architecture，又称端口与适配器模式）作为一种以领域为中心的架构模式，通过明确分离核心业务逻辑与外部交互，有效提升系统的可测试性、可扩展性与可维护性。本文从核心概念、实现原理、应用场景及面试高频问题四个维度，结合Spring生态实践，系]]></description><guid isPermaLink="false">/archives/19027635</guid><dc:creator>damon</dc:creator><enclosure url="/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fqiniu-cdn.zhaorong.pro%2Fimages%2F640.png&amp;size=m" type="image/jpeg" length="0"/><category>攻城湿</category><category>IT客</category><pubDate>Wed, 27 Aug 2025 09:44:48 GMT</pubDate></item><item><title><![CDATA[后端架构师技术大全]]></title><link>/archives/backend-architect-technoligies</link><description><![CDATA[<img src="http://localhost:8090/plugins/feed/assets/telemetry.gif?title=%E5%90%8E%E7%AB%AF%E6%9E%B6%E6%9E%84%E5%B8%88%E6%8A%80%E6%9C%AF%E5%A4%A7%E5%85%A8&amp;url=/archives/backend-architect-technoligies" width="1" height="1" alt="" style="opacity:0;">工欲善其事，必先利其器；士欲宣其义，必先读其书。后台开发作为互联网技术领域的掌上明珠，一直都是开发者们的追逐的高峰。本文将从后台开发所涉及到的技术术语出发，基于系统开发、架构设计、网络通信等几个方面让大家对后台开发有一个清晰的了解，讲解全面易懂。 系统开发 1. 高内聚/低耦合 高内聚指一个软件模块]]></description><guid isPermaLink="false">/archives/backend-architect-technoligies</guid><dc:creator>damon</dc:creator><category>攻城湿</category><category>IT客</category><pubDate>Wed, 27 Aug 2025 09:36:24 GMT</pubDate></item><item><title><![CDATA[Docker部署集成流程图、甘特图、时序图等功能的 Markdown 编辑器]]></title><link>/archives/AA1wSqXP</link><description><![CDATA[<img src="http://localhost:8090/plugins/feed/assets/telemetry.gif?title=Docker%E9%83%A8%E7%BD%B2%E9%9B%86%E6%88%90%E6%B5%81%E7%A8%8B%E5%9B%BE%E3%80%81%E7%94%98%E7%89%B9%E5%9B%BE%E3%80%81%E6%97%B6%E5%BA%8F%E5%9B%BE%E7%AD%89%E5%8A%9F%E8%83%BD%E7%9A%84%20Markdown%20%E7%BC%96%E8%BE%91%E5%99%A8&amp;url=/archives/AA1wSqXP" width="1" height="1" alt="" style="opacity:0;">Markdown 作为一种轻量级且易于阅读的书写语言，正逐步成为内容创作者的首选，今天介绍的这个Markdown 在线编辑器，它集成了众多前沿功能，旨在为您打造一个功能全面、操作简便的创意平台,基于 Vue2、Vditor，所构建的在线 Markdown 编辑器支持绘制流程图、甘特图、时序图、任务列]]></description><guid isPermaLink="false">/archives/AA1wSqXP</guid><dc:creator>damon</dc:creator><category>我的日记</category><pubDate>Wed, 8 Jan 2025 16:08:55 GMT</pubDate></item></channel></rss>