Posts
800
Practical notes on AI assistants, software architecture, and developer tooling.
Posts
800
Tags
452
Featured
0
Uber 每分钟处理 125 万次 GPS 写入。这篇文章一步步用 .NET 复刻同款管道——ConcurrentDictionary 状态缓冲替代队列、Redis GEO 地理索引、BackgroundService 周期刷新、SignalR WebSocket 推送,外加 5 个最容易踩的实现陷阱。
Continue reading
开发环境测试通过、生产环境响应爆炸——这 10 个 EF Core 查询模式问题会在真实流量下把接口拖垮。每个问题都有 .NET 10 下的具体修复代码。
从 .NET 6 到 .NET 10,LINQ 陆续增加了 15 个方法——Chunk、MinBy、CountBy、AggregateBy、Index、LeftJoin 等,这篇文章逐一介绍它们解决了什么问题,以及如何在实际代码中替换掉过去的样板写法。
已有 PostgreSQL?不用再部署 Pinecone 或 Qdrant。pgvector 是一个 PostgreSQL 扩展,让你直接在现有数据库里存储向量并做语义搜索。本文带你用 .NET Aspire、Dapper 和 Microsoft.Extensions.AI 跑通完整流程:启用扩展、创建向量列、生成 embedding、用余弦距离做相似性查询。
几乎每个 .NET 项目都有同一个隐患:DateTime.Now 散落在服务、验证器和业务规则里。表面无害,实际上让时间相关逻辑无法正确测试。本文介绍两种解决方案——自定义 IDateTimeProvider 接口和 .NET 8 内置的 TimeProvider——让时间成为可注入的依赖,配合 FakeTimeProvider 轻松测试订阅到期、试用结束等真实场景。
架构规则写在文档里,六个月后就会被违反。本文介绍用 ArchUnitNET 把层依赖、命名规范、类共位、可见性和第三方库边界这 5 类约定写成自动化测试,让 CI 来守护你的架构意图,而不是靠 Code Review 碰运气。
每次新模型发布,大家都在问哪个更聪明、更快。但在 VS Code 里,模型只是其中一层。真正决定你体验的是 coding harness——负责组装上下文、暴露工具、驱动 agent 循环的系统层。这篇文章来自 VS Code 团队,解释了这套机制是怎么工作的,不同模型为何需要不同配置,以及他们如何用 VSC-Bench 在模型上线前做产品级评测。
SignalR 横向扩展后,每个实例只知道自己的连接,消息很容易发不到目标客户端。本文用 Redis backplane 串起多实例消息路由,并讲清楚 sticky sessions、ChannelPrefix、Redis 故障丢消息和 Azure SignalR Service 的取舍。
架构演进应跟随可测量的痛点,而非流行趋势。本文通过 Northwind Pay 的真实故事,详解 .NET 系统从单体经模块化单体到选择性微服务的完整路线图,包括边界设计、Outbox 模式、CQRS 读写分离和迁移路线图。
全面讲解 C# LINQ 的各类连接操作——从 Join 内连接、GroupJoin 分组连接,到 .NET 10 新增的 LeftJoin 与 RightJoin,再到 Zip 位置配对。每种操作对应 SQL 场景,含完整代码示例。
LINQ 聚合操作覆盖从计数、求和到自定义折叠的完整场景。本文结合 Order/Product/SalesData 领域模型,演示所有聚合操作符的用法,重点解析 Count vs Any 性能陷阱、.NET 6 新增的 MinBy/MaxBy 如何单次遍历直接拿到元素,以及 Aggregate 如何在一次遍历中同时计算多个统计值。