buguge - Keep it simple,stupid

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

导航

上一页 1 2 3 4 5 6 ··· 22 下一页

2025年9月1日 #

【程序员英语】程序设计中,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 阅读(72) 评论(0) 推荐(0)

程序设计原则 之——Fail-Fast

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

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

2025年8月24日 #

【面向接口编程(IOP)典型场景】底层组件如何实现回调通知上层应用系统?

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

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

2025年8月12日 #

一个表示金额的数字是 100000000L,这是多少米(多少钱)?【代码可读性实践】

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

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

2025年8月7日 #

【分享排雷经历】系统引入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 阅读(144) 评论(0) 推荐(0)

2025年7月28日 #

聚合系统设计:利用泛型来重构三方服务的底层调用

摘要: 主流官媒都开始使用“标题党”这种网络传播套路了....适当网络化表达可增强传播力,但过度追求流量易损害公信力。关键在于平衡,区分时政要闻与文化报道的传播尺度,在创新形式的同时坚守媒体责任,实现有效传播与价值引领的统一。 ↓↓↓以下为正文。↓↓↓ 三方服务API接口响应说明 我司通道服务里调用的一个三 阅读全文

posted @ 2025-07-28 09:25 buguge 阅读(91) 评论(0) 推荐(0)

2025年7月22日 #

`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 阅读(163) 评论(0) 推荐(0)

2025年7月18日 #

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 阅读(13) 评论(0) 推荐(0)

2025年7月11日 #

SpringBean的静态字段/静态属性(static的field),支持Apollo配置热更新吗?

摘要: 我们知道,springbean的静态field可以通过显式的setter方法(实例方法)实现注入。 下面LaborFeeCalculator,其中的 basePercentage 是一个静态field。通过显式@Value的setter方法来进行配置参数赋值。 @Component public c 阅读全文

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

2025年6月27日 #

# 跨系统异步业务调用的第一法则::明确失败才失败

摘要: 我司企服系统的企业客户实名认证,通过与三方服务商“ebaoquan”的API通信来实现。 ebaoquan系统的企业实名认证接口采用异步处理机制,提供了以下3个关键接口: ①企业实名认证上传:同步的数据请求接口,正常情况下会返回一个唯一的email地址,ebaoquan称之为“账户”。 ②企业实名认 阅读全文

posted @ 2025-06-27 15:00 buguge 阅读(70) 评论(0) 推荐(0)

2025年6月16日 #

Spring MVC中枚举序列化-如何处理VO中的枚举字段?

摘要: 枚举是Java中表达有限状态的利器,使用枚举不仅可以增强类型安全,同时也会极大提升代码的可读性和可维护性。 阅读全文

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

2025年6月10日 #

告别@Data的“一刀切”:深入理解Lombok的精准控制艺术

摘要: “你也许习惯了使用 lombok的 @Data 注解,来为POJO生成getter&setter。不过,你是否注意到,在有些情况下,例如,内部类POJO并不需要暴露getter&setter,再例如,一些builder模式的POJO可能只需要暴露getter不需要暴露setter。” 阅读全文

posted @ 2025-06-10 20:15 buguge 阅读(122) 评论(0) 推荐(0)

2025年6月5日 #

上层应用如何为其所依赖的基础SDK里的静态属性赋值?

摘要: 我们的系统对商户暴露了RestAPI,供合作商户以API的形式接入。为了提高合作商户侧API接入的开发效率,我编写了一个SDK。 下面 ClientApiUtils是这个SDK一个工具类,封装了API数据加解密、API数字签名的工具方法。这些工具方法都是静态方法。在这个 ClientApiUtils 阅读全文

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

2025年5月27日 #

一个Mybatisplus组件扫描不当引起的bug:弄巧成拙,认真的锅,自我怀疑

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

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

2025年5月20日 #

代码易读性实践

摘要: 🍀 I care about details like this. 下面6行代码,是在给一个转账对象进行赋值操作,其中包括3个转出账户的属性,和3个转入账户的属性。在易读性方面,需要做一个调整,你看出来了吗? transferOrder.setOutMerId(**); transferOrder 阅读全文

posted @ 2025-05-20 11:26 buguge 阅读(47) 评论(0) 推荐(0)

2025年4月28日 #

开窍了!如何为缓存工具类(CacheUtil中的static方法)定义interface(下)

摘要: 职责相同的2个工具类里都是static方法,基于OOP的程序设计思想,我如何为这2个工具类抽取共同的interface? 阅读全文

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

开窍了!如何为缓存工具类(CacheUtil中的static方法)定义interface(上)

摘要: 职责相同的2个工具类里都是static方法,基于OOP的程序设计思想,我如何为这2个工具类抽取共同的interface? 阅读全文

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

2025年4月24日 #

关于BigDecimal的除法运算,注意2个表达式 :`orderAmt.divide(divisor).setScale(2, roundingMode)` 与 `orderAmt.divide(divisor, 2, roundingMode)`

摘要: 别用错。用错可能就会邂逅bug~ 阅读全文

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

2025年4月22日 #

小重构,大收益!技术重构实践:如何优雅升级老旧接口

摘要: 小重构,大收益!技术重构实践:如何优雅升级老旧接口 重构格言:"优秀系统不是设计出来的,而是通过持续重构演进而来的。" —— Martin Fowler《重构:改善既有代码的设计》 阅读全文

posted @ 2025-04-22 21:19 buguge 阅读(133) 评论(0) 推荐(0)

2025年4月21日 #

lexer(词法分析器)与 parser(语法分析器)

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

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

FastJSON 对 `Integer` 类型的编解码(序列化和反序列化)

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

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

2025年4月20日 #

AI都深度思考了,人却不思考了...

摘要: 在了解Fastjson编解码Integer数字时,曹小三同学让DeepSeek“深度思考”生成了一些testcase。下面是DeepSeek提供的JUnit5测试代码。 import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSO 阅读全文

posted @ 2025-04-20 12:03 buguge 阅读(170) 评论(0) 推荐(0)

2025年4月5日 #

代码 “歪楼”:Money 类在程序里的离奇 “旅程”

摘要: 原文:https://www.cnblogs.com/buguge/p/18763748#_label0 以下是与豆包的dialog↓ $ 请将这段话以诙谐的方式来表达出来 宝子们,今儿必须吐槽下咱程序里这段代码,简直要把我笑不活了! 系统公共包里有个Money类,它有fen()和yuan()两个方 阅读全文

posted @ 2025-04-05 19:15 buguge 阅读(85) 评论(0) 推荐(0)

2025年3月30日 #

恕我直言,你不懂开发

摘要: 恕我直言,你不懂开发 "任何一个傻瓜都能写出计算机可以理解的代码,唯有能写出人类容易理解的代码的,才是优秀的程序员。" 阅读全文

posted @ 2025-03-30 22:45 buguge 阅读(37) 评论(0) 推荐(0)

如你所期,DataIdNameVO 来了!

摘要: 小改动,大收益!站在宏观的角度,利用OOP设计思想,来不断重构、调优系统,使之可持续发展。当然,这首先需要我们具备这样的能力 和 意识! 阅读全文

posted @ 2025-03-30 10:39 buguge 阅读(74) 评论(0) 推荐(0)

上一页 1 2 3 4 5 6 ··· 22 下一页