buguge - Keep it simple,stupid

知识就是力量,但更重要的,是运用知识的能力why buguge?

导航

随笔分类 -  TechArt

1 2 3 4 5 ··· 17 下一页

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

posted @ 2025-10-22 20:47 buguge 阅读(2) 评论(0) 推荐(0)

靠谱的程序员推荐阅读----->《阿里Java开发手册》【强制】所有的覆写方法,必须加@Override注解
摘要:将程序错误前置扼杀在编译期,是这个规约对我们开发者带来的最大的收益。 阅读全文

posted @ 2025-09-24 12:48 buguge 阅读(102) 评论(0) 推荐(0)

别滥用面向对象设计(OOD)中的继承:从一则简单的回调工具类的重构案例,来看OOP/OOD原则
摘要:博客园支持 mermaid 语法了,赞一个👍🏻 阅读全文

posted @ 2025-09-08 23:14 buguge 阅读(14) 评论(0) 推荐(0)

妙哉!这个业务语义化的Builder模式,让对象构建变得更稳、更准、更快
摘要:妙哉!这个业务语义化的Builder模式,让对象构建变得更稳、更准、更快还在用传统的builder模式来实例化构建对象吗?来,给你的程序注入点新鲜血液🩸! 阅读全文

posted @ 2025-09-08 22:55 buguge 阅读(29) 评论(0) 推荐(0)

【程序员英语】程序设计中,day 与 date 这2个单词的区别
摘要:程序设计中,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 阅读全文

posted @ 2025-09-01 22:19 buguge 阅读(39) 评论(0) 推荐(0)

程序设计原则 之——Fail-Fast
摘要:“一旦发现问题,立刻抛出异常,拒绝执行,而不是隐藏错误或进行可能导致不确定结果的尝试。” 阅读全文

posted @ 2025-09-01 21:52 buguge 阅读(34) 评论(0) 推荐(0)

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

posted @ 2025-08-24 18:37 buguge 阅读(62) 评论(1) 推荐(0)

一个表示金额的数字是 100000000L,这是多少米(多少钱)?【代码可读性实践】
摘要:一个表示金额的数字是 100000000L,这是多少米(多少钱)?【代码可读性实践】易读的代码(Readable Code)是高质量软件开发的核心要素之一 阅读全文

posted @ 2025-08-12 16:14 buguge 阅读(117) 评论(0) 推荐(0)

【分享排雷经历】系统引入Apache-Tika产生的NoClassDefFoundError错误
摘要:为实现文件导入的安全控制,在系统中引入了基于`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`,问题得以解决且功能满足需求。 阅读全文

posted @ 2025-08-07 23:30 buguge 阅读(97) 评论(0) 推荐(0)

`System.out.println(Object)` 的打印行为详解
摘要:System.out.println(Object) 是 Java 中最常用的输出方法之一,它的行为等同于 java.io.PrintStream#println(Object),因为 System.out 是一个 PrintStream 实例。 package java.lang; public 阅读全文

posted @ 2025-07-22 18:36 buguge 阅读(89) 评论(0) 推荐(0)

Javadoc can be as clear and readable as "@JsonUnwrapped"
摘要:🍀 🍀 The javadoc screenshot at first. 🍀 🍀 Let's take a glance at its javadoc bellow. package: com.fasterxml.jackson.annotation @Target({ElementType 阅读全文

posted @ 2025-07-18 14:35 buguge 阅读(7) 评论(0) 推荐(0)

SpringBean的静态字段/静态属性(static的field),支持Apollo配置热更新吗?
摘要:我们知道,springbean的静态field可以通过显式的setter方法(实例方法)实现注入。 下面LaborFeeCalculator,其中的 basePercentage 是一个静态field。通过显式@Value的setter方法来进行配置参数赋值。 @Component public c 阅读全文

posted @ 2025-07-11 22:12 buguge 阅读(70) 评论(0) 推荐(0)

Spring MVC中枚举序列化-如何处理VO中的枚举字段?
摘要:枚举是Java中表达有限状态的利器,使用枚举不仅可以增强类型安全,同时也会极大提升代码的可读性和可维护性。 阅读全文

posted @ 2025-06-16 14:21 buguge 阅读(67) 评论(0) 推荐(0)

上层应用如何为其所依赖的基础SDK里的静态属性赋值?
摘要:我们的系统对商户暴露了RestAPI,供合作商户以API的形式接入。为了提高合作商户侧API接入的开发效率,我编写了一个SDK。 下面 ClientApiUtils是这个SDK一个工具类,封装了API数据加解密、API数字签名的工具方法。这些工具方法都是静态方法。在这个 ClientApiUtils 阅读全文

posted @ 2025-06-05 09:45 buguge 阅读(55) 评论(0) 推荐(0)

一个Mybatisplus组件扫描不当引起的bug:弄巧成拙,认真的锅,自我怀疑
摘要:有时呢,后来证明,我的认真,反而让我犯了错。一些努力和实践带来了一些负面影响,然后我要为我的“认真”付出代价。当然,我始终认为这些是应该做的,应该致力于做。当然,有时候,也难免自我怀疑、自我否定。人大概就是在不断地自我摸索、自我怀疑、自我否定中成长吧! 阅读全文

posted @ 2025-05-27 09:04 buguge 阅读(45) 评论(0) 推荐(0)

开窍了!如何为缓存工具类(CacheUtil中的static方法)定义interface(下)
摘要:职责相同的2个工具类里都是static方法,基于OOP的程序设计思想,我如何为这2个工具类抽取共同的interface? 阅读全文

posted @ 2025-04-28 09:12 buguge 阅读(84) 评论(2) 推荐(0)

开窍了!如何为缓存工具类(CacheUtil中的static方法)定义interface(上)
摘要:职责相同的2个工具类里都是static方法,基于OOP的程序设计思想,我如何为这2个工具类抽取共同的interface? 阅读全文

posted @ 2025-04-28 09:11 buguge 阅读(67) 评论(0) 推荐(0)

关于BigDecimal的除法运算,注意2个表达式 :`orderAmt.divide(divisor).setScale(2, roundingMode)` 与 `orderAmt.divide(divisor, 2, roundingMode)`
摘要:别用错。用错可能就会邂逅bug~ 阅读全文

posted @ 2025-04-24 14:00 buguge 阅读(195) 评论(0) 推荐(0)

lexer(词法分析器)与 parser(语法分析器)
摘要:在编程语言解析和编译过程中,词法分析器(Lexer)和语法分析器(Parser)是两个核心组件,它们协同工作将原始输入(如JSON字符串、代码文件)转换为结构化数据(如对象、抽象语法树)。 Lexer(词法分析器) Lexer(词法分析器)是编程语言处理中的核心工具,负责将源代码转换为一系列词法单元 阅读全文

posted @ 2025-04-21 16:05 buguge 阅读(425) 评论(0) 推荐(0)

FastJSON 对 `Integer` 类型的编解码(序列化和反序列化)
摘要:FastJSON 对 Integer 类型的编解码(序列化和反序列化)是通过内置的 IntegerCodec 类实现的。FastJSON 在初始化时,会通过 ParserConfig 和 SerializeConfig 自动默认注册该编解码器。 阅读全文

posted @ 2025-04-21 15:24 buguge 阅读(164) 评论(0) 推荐(0)

1 2 3 4 5 ··· 17 下一页