摘要:以京东为例,全面推进电子发票工作,仅2021年就开具了28亿张发票,由此节约的纸张相当于少砍伐31万棵成年树木。而微信支付各类场景下的电子发票开具,近五年累计实现碳减排量0.83万吨。此外,每次通过钉钉提交日志可实现减碳6.4g,线上考勤打卡实现碳减排29.1g,每次提交审批报销也可碳减排6.4g。
一条完整的异常堆栈日志可能超过100行,若此类异常每日发生数百次,其累积的存储和 processing 能耗不容小觑。
日志输出过多不仅影响调试效率,更是一种数字资源浪费。根据研究,一张A4纸的碳足迹约为16g二氧化碳当量,而存储在固态硬盘上的1TB数据产生的碳排放高达2.41kg二氧化碳当量。由此可见,减少不必要的数据输出,就是减少能源消耗,是技术人员对环保的实质贡献。
阅读全文
摘要:将程序错误前置扼杀在编译期,是这个规约对我们开发者带来的最大的收益。
阅读全文
摘要:博客园支持 mermaid 语法了,赞一个👍🏻
阅读全文
摘要:

还在用传统的builder模式来实例化构建对象吗?来,给你的程序注入点新鲜血液🩸!
阅读全文
摘要:程序设计中,day 与 date 这2个单词的区别 先看下面几个例句感受一下: What day is it today? - It's Firday. What's the date today? - It's September 10th, Teacher's Day. It takes me
阅读全文
摘要:“一旦发现问题,立刻抛出异常,拒绝执行,而不是隐藏错误或进行可能导致不确定结果的尝试。”
阅读全文
摘要:

本文介绍了在账务插件开发中,如何通过“面向接口编程”实现异步转账完成后的回调通知机制。通过定义回调接口 `TransferCallback`,账务组件在异步操作完成后可通知上层应用进行后续业务处理。文章提供了纯 Java 和 Spring 两种实现方式的代码示例,展示了接口在插件化架构中的重要作用,体现了面向接口编程在解耦与扩展方面的优势。
阅读全文
摘要:

易读的代码(Readable Code)是高质量软件开发的核心要素之一
阅读全文
摘要:为实现文件导入的安全控制,在系统中引入了基于`Apache Tika`的文件类型校验机制。但在运行时出现`NoClassDefFoundError`,提示缺少`commons-io`类。经排查发现,`monorepo`依赖的`commons-io`版本(2.6)低于Tika 2.9.1所需版本(2.16.1)。由于系统依赖统一管理,直接升级`commons-io`可能影响其他模块。最终解决方案为降级Tika版本至2.4.1,该版本兼容`commons-io:2.6`,问题得以解决且功能满足需求。
阅读全文
摘要:System.out.println(Object) 是 Java 中最常用的输出方法之一,它的行为等同于 java.io.PrintStream#println(Object),因为 System.out 是一个 PrintStream 实例。 package java.lang; public
阅读全文
摘要:🍀 🍀 The javadoc screenshot at first. 🍀 🍀 Let's take a glance at its javadoc bellow. package: com.fasterxml.jackson.annotation @Target({ElementType
阅读全文
摘要:我们知道,springbean的静态field可以通过显式的setter方法(实例方法)实现注入。 下面LaborFeeCalculator,其中的 basePercentage 是一个静态field。通过显式@Value的setter方法来进行配置参数赋值。 @Component public c
阅读全文
摘要:枚举是Java中表达有限状态的利器,使用枚举不仅可以增强类型安全,同时也会极大提升代码的可读性和可维护性。
阅读全文
摘要:我们的系统对商户暴露了RestAPI,供合作商户以API的形式接入。为了提高合作商户侧API接入的开发效率,我编写了一个SDK。 下面 ClientApiUtils是这个SDK一个工具类,封装了API数据加解密、API数字签名的工具方法。这些工具方法都是静态方法。在这个 ClientApiUtils
阅读全文
摘要:有时呢,后来证明,我的认真,反而让我犯了错。一些努力和实践带来了一些负面影响,然后我要为我的“认真”付出代价。当然,我始终认为这些是应该做的,应该致力于做。当然,有时候,也难免自我怀疑、自我否定。人大概就是在不断地自我摸索、自我怀疑、自我否定中成长吧!
阅读全文
摘要:职责相同的2个工具类里都是static方法,基于OOP的程序设计思想,我如何为这2个工具类抽取共同的interface?
阅读全文
摘要:职责相同的2个工具类里都是static方法,基于OOP的程序设计思想,我如何为这2个工具类抽取共同的interface?
阅读全文
摘要:在编程语言解析和编译过程中,词法分析器(Lexer)和语法分析器(Parser)是两个核心组件,它们协同工作将原始输入(如JSON字符串、代码文件)转换为结构化数据(如对象、抽象语法树)。 Lexer(词法分析器) Lexer(词法分析器)是编程语言处理中的核心工具,负责将源代码转换为一系列词法单元
阅读全文
摘要:FastJSON 对 Integer 类型的编解码(序列化和反序列化)是通过内置的 IntegerCodec 类实现的。FastJSON 在初始化时,会通过 ParserConfig 和 SerializeConfig 自动默认注册该编解码器。
阅读全文