数据存储
关于单位转换相关问题的常见思路
作者在文章中讨论了其在工作过程中遇到的一个单位转换的问题,并通过不同方案进行解决。文章首先描述了作者感受到的工作压力,导致其反思人类问题的本质,而非寻求最优解。在具体业务场景中,作者讲述了客户要求将重量单位统一转换为吨,作者首先尝试了在视图增加字段的方式,但很快意识到需要更复杂的数据映射处理。通过使用 AutoMapper 工具,作者实现了重量单位的转换,同时避免了在映射规则中写入过多业务逻辑。此外,作者还提到了在设计数据库表结构时考虑单位转换的必要性,以及在实际应用中如何通过反射等技术在数据库层面进行单位转换。文章最终表达了对客户需要的积极回应和对工作中遇到的各种规则的适应,同时略微讽刺了工作中的加班文化以及个人对简单生活的向往。
编程语言
基于过滤器实现异常处理的探索
本文讨论了异常处理的概念和实践,作者分享了自己对异常处理的理解和经验,以及在项目中引入 AOP 后,从 try-catch 转向 Interceptor 的处理方式。文章首先区分了异常和错误,强调了软件工程中测试和错误处理的重要性,并提出统一的异常处理入口,避免代码中到处都是 try-catch 和日志记录的混乱。接着,文章介绍了 CheckedException 的概念,讨论了 Java 和 C# 中对异常处理的不同策略,并提出了基于过滤器的异常处理方案,通过定义异常基类和过滤器,利用 Attribute 关联异常和过滤器,达到代码解耦和增强可维护性的效果。作者通过实际案例展示了如何将异常处理代码重构为更优雅的形式,并通过多态和过滤器的概念简化异常处理流程,最后强调了程序员应追求代码设计的优雅,以适应不断变化的需求。1