kitlau
kitlau

kitlau's blog

Featured Posts


5 分钟 .NET 单元测试极简入门

本文通过具体代码示例介绍了使用xUnit进行单元测试的实践方法重点演示了如何针对BookService类的GetBooksByAuthor和GetBooksByPublishedYearRange方法编写测试用例文章展示了两种测试场景的编写方式正常流程验证和异常处理测试通过[Fact]属性实现基础测试用例通过[Theory]和InlineData实现参数化测试验证了null空字符串负数年份等边界条件的处理逻辑利用NSubstitute模拟对象替代真实依赖返回预设数据集并使用FluentAssertions进行断言验证测试结果包括检查返回数据数量验证属性值范围以及异常类型和消息的匹配文章提供了完整的测试代码结构包含12个测试用例覆盖了所有业务逻辑分支最后通过dotnet test命令展示了测试运行结果并附带了测试通过的截图说明测试框架能够有效验证代码逻辑的正确性和鲁棒性--Qwen3

.NET Test xunit unit testing nsubstitute tdd

微服务生产环境故障难调试?OpenTelemetry 了解一下?

本文系统性地介绍了OpenTelemetry在微服务系统中的应用与价值,通过分布式追踪、指标度量和日志标准化三大核心功能构建系统可观测性。以k8s环境下的.NET微服务案例演示了OpenTelemetry与Jaeger集成实现请求链路追踪的技术实践,展示了通过Tracing分析性能瓶颈、定位问题根源的核心价值。深入解析了Metrics在业务与基础设施监控中的六类仪器工具及其聚合机制,对比传统日志在分布式系统中的局限性,强调OpenTelemetry Logs通过上下文关联、统一数据模型和端到端集成能力解决日志碎片化、难以追溯等问题。最终总结了OpenTelemetry在跨平台数据采集、故障诊断效率提升、业务指标分析及云原生系统监控方面的综合优势,为开发者提供从概念理解到实际落地的可观测性解决方案框架。--Qwen3

.NET OpenTelemetry Observability Jaeger Microservices Distributed Tracing

为什么我的接口,慢得跟蜗牛一样啊?系列文章目录与导读

如何让慢如蜗牛的接口重现活力?本系列从生产环境的真实痛点出发,揭秘了结构化日志与分布式追踪两大利器的实战智慧。通过Serilog构建的结构化日志系统,开发者能够将混沌的请求过程转化为可量化的数据流,而Seq日志中心则让这些数据焕发新生——当请求耗时异常时,你可以精确锁定是数据库查询在偷懒还是第三方API在拖后腿。但这仅仅是开始,当系统架构演进为微服务,单点日志已无法满足跨服务追踪的迫切需求,OpenTelemetry的出现颠覆了传统监控思维:它不仅将traces、metrics、logs三类数据统一编码,更通过标准化协议构建了跨越服务边界的数字探针。当一个请求在多个服务间穿梭时,你是否想过如何证明它们属于同一个因果链?当系统性能出现波动时,是该优先优化高频热点接口还是深挖偶发长尾?这些看似简单的问题背后,藏着对监控体系深度与广度的终极拷问——而答案,或许就藏在你尚未启用的OpenTelemetry仪表化代码中。--Qwen3

.NET Performance OpenTelemetry structured logging Serilog performance analysis

Welcome to MoongladePure

MoongladePure通过去除对特定云服务的依赖实现了软件架构的彻底本地化部署能力这种去耦合设计不仅重构了原有系统的运行逻辑更在技术伦理层面提出了一个值得深思的命题——当软件不再绑定特定云生态时开发者与用户是否获得了更大的技术自主权文章展示了该系统在部署灵活性上的突破性进展其核心价值在于将基础设施的控制权重新交还给终端用户这种设计哲学暗示着数字世界中"去中心化"趋势的又一重要实践但这种架构革新是否预示着开源社区对云服务自主权的重新思考又是否会在未来引发更多关于技术主权的讨论值得每个关心数字生态建设的读者深入探索--Qwen3

MoongladePure Moonglade dependencies removal on premises deployment cloud agnostic deployment solution

  • 1