技术博客
技术博客
围绕工程效率、系统交付、健身实践与 AI 工程化进行沉淀。
.NET AOP 与 Castle DynamicProxy:横切逻辑怎么落地
把日志、审计、缓存、性能统计等横切逻辑放到代理层,但不要把核心业务藏进去。
C# 值类型、引用类型与对象语义
把 class、struct、object 放回类型语义里理解:什么时候表达值,什么时候表达对象身份。
.NET 托管堆与垃圾回收:对象生命周期怎么被管理
从对象分配、可达性、代际回收到 IDisposable,理解 GC 解决什么,也不解决什么。
C# Equals、GetHashCode 与哈希集合语义
解释为什么自定义相等性时必须同时处理 Equals 和 GetHashCode,以及哈希集合如何使用它们。
C# double、decimal 与业务精度选择
解释二进制浮点为什么会有精度误差,以及金额、折扣、统计场景应该如何选择数值类型。
C# ConditionalAttribute:让调试诊断逻辑不污染主流程
说明 ConditionalAttribute 适合哪些调试、日志和诊断调用,以及它和 #if 的边界。
dotnet CLI 日常开发工作流
把 dotnet new、restore、build、test、run、publish 串成本地开发和 CI 都能复用的统一入口。
.NET 线程成本、线程池与异步边界
从线程空间成本、调度成本到线程池和 async,理解为什么现代 .NET 不应该随意创建线程。
C# lock、死锁与共享状态治理
聚焦 lock 的正确用法、死锁形成条件,以及如何通过锁顺序和临界区设计降低风险。
.NET BlockingCollection 与生产者消费者背压
把 BlockingCollection 放回生产者/消费者模型里理解:容量、阻塞、取消和背压。
ASP.NET Core 依赖注入与生命周期选择
DI 生命周期不是注册语法问题,而是资源、线程安全和请求边界的设计问题。
MediatR 请求处理与 Pipeline Behavior 边界
把 MediatR 用在请求和处理解耦,而不是把简单 CRUD 包成过度抽象。
HttpClientFactory 与 Polly:让外部 HTTP 调用更稳
外部 HTTP 调用的稳定性来自客户端生命周期、超时、重试、熔断和降级的组合设计。
TCP 连接生命周期:三次握手、四次挥手与 TIME_WAIT
从可靠双向连接的角度理解 TCP 三次握手、四次挥手、半关闭、TIME_WAIT,以及排查连接问题时应该看什么。
WCF 作为 .NET 服务通信历史资产该怎么看
WCF 曾经统一 SOAP、Remoting、消息队列和服务契约;今天更适合作为历史资产来评估迁移边界。
gRPC 在 .NET 中的契约优先服务通信
解释 gRPC 为什么适合内部服务调用、强契约通信和流式传输,以及它不适合的边界。
JWT 认证与 .NET API Token 校验要点
JWT 校验要关注签名、issuer、audience、过期时间和权限声明,不能把“已签名”误解为“已加密”。
NuGet 源管理与私有包治理
聚焦 nuget.config、私有源、包删除/取消列出、凭据和依赖混淆风险。