Posts
All the articles I've posted.
-
DRY 被误解最多的一点:别去重代码,去重知识
Published: at 12:40 AM很多人把 DRY 理解成看到相似代码就抽方法,但 Milan Jovanović 提醒:DRY 关注的是知识,而不是代码形状。错误抽象会制造隐藏耦合,重复有时反而更便宜。真正该抽的是必须一起变化的同一个事实。
-
ASP.NET Core 错误处理:Problem Details 和全局异常处理
Published: at 12:27 AMASP.NET Core Web API 的错误处理不该只返回空的 500。这篇按 .NET 10 语境梳理 Problem Details、UseExceptionHandler、IExceptionHandler、验证错误、日志和开发/生产差异,帮助你做出一致、可追踪、不过度暴露的错误响应。
-
C# Mediator 模式:把对象通信收回到一个中介
Published: at 12:18 AMMediator 模式适合处理多个对象之间越来越乱的通信关系。它把对象间的直接引用改成通过中介协调,降低耦合,但也可能把中介写成 God Object。这篇用 C# 示例、事件驱动变体和 MediatR 讲清楚取舍。
-
ASP.NET Core 模型验证:Data Annotations 还是 FluentValidation
Published: at 12:12 AMASP.NET Core 模型验证的目标,是把坏输入挡在业务逻辑之外。这篇按 .NET 10 语境梳理 Data Annotations、ModelState、[ApiController] 自动 400、自定义属性、IValidatableObject、FluentValidation 和 Minimal API 验证边界。
-
ASP.NET Core JWT 认证:从登录到角色授权
Published: at 12:07 AMJWT 认证适合 SPA、移动端和服务间 API,但它不是只加一个 Bearer 包那么简单。这篇基于 .NET 10 Minimal API,梳理登录签发、JwtBearer 验证、受保护路由、角色授权、测试步骤和生产环境安全边界。
-
ASP.NET Core Middleware:把请求管道顺序讲清楚
Published: at 11:56 PMASP.NET Core middleware 看起来只是几行 app.Use,但真正影响线上行为的是管道模型、注册顺序、短路机制和 DI 生命周期。这篇用请求进入与响应返回的视角,把自定义中间件、IMiddleware、Correlation ID 和请求耗时记录讲清楚。
-
2026 软件工程书单:按你当下的问题来选书
Published: at 12:15 AMDr. Milan Milanović 整理了一份按问题域归类的软件工程书单,涵盖编码思维、架构、分布式系统、AI 工程和职业发展等 8 个方向共 18 本书。不按热门程度排列,而是按「你此刻卡在哪」来组织。
-
ASP.NET Core API 版本管理:URL、Header 和 Query String 怎么选
Published: at 11:51 PMASP.NET Core 没有内置完整 API versioning,常见做法是用 Asp.Versioning.Mvc。本文用原文示例梳理 URL segment、query string、header、组合读取器、版本废弃和 OpenAPI 分版本文档的配置方法。
-
Foundry Memory at Build 2026:让 Agent 记住步骤和边界
Published: at 02:47 AMMicrosoft Foundry 在 Build 2026 更新了 Agent memory,重点从个性化扩展到可靠执行。本文梳理 procedural memory、管理 UI、TTL、多模态、direct memory commands 和 file-based memory 的实际意义。