Bug Repellent

RSS: https://blog.safia.rocks/atom.xml
@captainsafia 的博客。

无处可逃:ANSI 转义码深度探秘

一篇充满个人色彩的技术博客,讲述已有近50年历史的ANSI转义码为何至今仍是终端交互的基石。作者以亲身实践者视角,清晰解释了转义码的工作原理(ESC + [ + 命令参数),从最初物理终端的字符流限制讲到256色与24位真彩色扩展,再到现代工具(Spectre.Console、chalk、Vim、htop)如何在此基础上构建丰富的终端UI。亮点是作者坦诚AI参与了交互小工具的代码编写,自己主要负责体验设计,并分享了自己作为后端工程师培养设计审美的个人尝试。
评论点赞收藏72 天前

Aspire 如何向 Azure Functions 运行时暴露资源连接信息

深入解析 IResourceWithAzureFunctionsConfig 接口,揭示 Aspire 如何为 Azure Functions 注入正确的连接字符串引用。作者从实现细节出发,讲解了 Aspire 与 Functions 运行时之间的配置传递机制,对.NET Aspire 和 Azure Functions 开发者的调试与配置理解很有实际帮助。
评论点赞收藏214 天前

报到:IPipelineActivityReporter 的演进故事

一篇有叙事感的 API 演进复盘,追踪 Aspire 的活动报告接口如何从简陋的顺序进度上报,重构为支持并发感知的管道驱动系统。作者不只看最终结果,而是带你经历设计"为什么走弯路"和"并发场景下哪些坑只有踩过才知道"。适合对系统架构演进感兴趣的.NET 后端工程师,尤其那些正在做 Pipeline/Workflow 相关设计的团队。
评论点赞收藏220 天前

2025 年终回顾:告别二十岁

作者回顾了 2025 年:博客回归的动力、首席工程师的日常与成长、AI 辅助副项目的实践经验,以及即将告别 20 岁的真实感慨。一篇有个人温度的年终总结,既有职业思考也有生活体悟,适合对工程师职业生涯不同阶段感兴趣的人阅读。
评论点赞收藏228 天前

修复 Aspire 的镜像问题:13.1 版本容器镜像注册表支持详解

分析 Aspire 13.1 版本对自定义容器镜像注册表支持的改进,核心论点很明确:显式建模优于隐式行为。作者不是列 changelog,而是带你看具体场景——当镜像推送失败时新旧版本的错误提示差异、配置方式的取舍、以及为什么"明确说出来"比"自动推断"更可靠。对使用容器化部署的.NET 团队有直接参考价值。
评论点赞收藏244 天前

Aspire 调用 aspire run 时如何启动 Azure Functions 运行时

来自知名.NET 开发者 Safia 的博客,深入揭秘 Aspire 在本地执行 aspire run 时,如何利用一个巧妙的.NET SDK 特性来启动 Azure Functions 运行时。文章拆解了背后的实现机制,适合关心.NET 工具链、Aspire 项目或 Azure Functions 本地开发流程的读者,提供了一手的技术内幕而非泛泛介绍。
评论点赞收藏257 天前

API 解剖:AsExisting() 引发的存在主义危机

作者以第一人称剖析 Aspire 框架中 RunAsExisting、PublishAsExisting、AsExisting 三组 API 的命名与设计问题。这不是泛泛的吐槽,而是带着实际使用痛点的深度拆解——哪些命名造成歧义、哪些行为在运行时出乎意料、如果重新设计会怎么改。适合写过或维护过 API 的开发者,能从中获得命名直觉和接口设计的具体反省。
评论点赞收藏258 天前

API 解剖:ServerSentEvents() 的三种流式用法

针对.NET Minimal API 中 TypedResults.ServerSentEvents 的三种重载进行实用拆解。每个重载对应什么场景、参数含义、使用边界、以及最容易混淆的地方,都被清楚地对比出来。作者还给出了在实时数据推送场景中避免踩坑的具体建议。干货密集,适合正在用 SSE 做实时落地的前端/全栈开发者。
评论点赞收藏265 天前

API 解剖学:小巧而强大的 MapOpenApi()

深入剖析 Core 中 MapOpenApi 方法的设计决策:为何将其建模为端点、路由模板如何支持 YAML 输出、以及那些让这个微小 API 变得精巧的细节。作者从 API 设计者视角拆解实现权衡,对.NET 开发者理解框架设计思路和 OpenAPI 集成非常有价值。
评论点赞收藏269 天前

登录芦苇

登录后关注作者、收藏内容和参与讨论。