kitlau
kitlau

kitlau's blog

Code Quality


借 Moq 事件谈一谈单元测试的重要性

这篇文章讨论了开源软件安全性和单元测试的重要性。作者提到最近GitHub上发生的一个关于恶意NuGet包的事件,强调审查和测试第三方库的必要性。随后,文章转向单元测试,解释其在提高代码质量和确保功能正确方面的作用,并列举不写单元测试带来的问题,如降低代码可维护性和项目健康度,以及在未来开发中增加难度。作者还用一个恶性循环图展示了忽视单元测试的危害,并呼吁国内开发者和公司更重视单元测试。最后,文章附上了一则求职广告,希望寻找青岛base或远程工作的机会。--DeepSeek

.NET Test unit testing Software Development Code Quality Software Development Methodology

C# required:跟 string 的空引用异常说再见

文章讨论了一个软件开发中的常见问题:属性类型设置错误导致线上bug,并结合C#11引入的`required`关键字探讨了如何避免此类问题。作者指出,在快速开发和压缩工时的环境下,开发者可能忽视基础质量保障,最终导致软件质量下降,影响用户体验。文中通过技术手段(如`required`关键字)与管理反思(批评急功近利的绩效考核模式),强调了在开发过程中重视代码质量和可维护性的重要性。同时,作者吐槽了团队中普遍存在的“外包模式”思维,认为这种做法会损害产品质量和用户信任,并呼吁在软件开发中避免牺牲质量以追求速度。--DeepSeek

C# Code Quality required keyword Nullables Engineering Practices Software Product Management

谁是你的菜?IEnumerable、IQueryable 和 ICollection 选择指南

在编程中选择合适的集合类型至关重要,需综合考虑功能需求和代码维护性。文章指出,ICollection<T>适用于需要增删元素的场景,而IQueryable<T>在处理ORM时能提升效率。返回集合类型应选择不可变的IReadOnlyCollection<T>或其子类(如IReadOnlyList<T>),以避免调用方随意修改数据源并提高代码可维护性。此外,需注意IEnumerable<T>的延迟评估特性可能引发问题,尤其是在数据库上下文已释放时进行枚举会导致错误。文章通过示例展示了不同集合类型的功能和潜在风险,并强调在选择集合类型时应兼顾功能需求和代码稳定性与维护性。--DeepSeek

.NET C# Code Quality IEnumerator IQueryable Lazy Evaluation

  • 1