buguge - Keep it simple,stupid

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

导航

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

2025年5月20日 #

代码易读性实践

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

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

2025年4月28日 #

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

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

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

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

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

posted @ 2025-04-28 09:11 buguge 阅读(88) 评论(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 阅读(247) 评论(0) 推荐(0)

2025年4月22日 #

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

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

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

2025年4月21日 #

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

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

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

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

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

posted @ 2025-04-21 15:24 buguge 阅读(189) 评论(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 阅读(153) 评论(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 阅读(72) 评论(0) 推荐(0)

2025年3月30日 #

恕我直言,你不懂开发

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

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

如你所期,DataIdNameVO 来了!

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

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

2025年2月27日 #

如何精准控制业务合同到期后不再发生业务?还是邻家系统做得好!

摘要: 为解决定时任务无法精准控制合同有效期的问题,提出在`contactIsEffective`方法中增加对`expiredTime`的实时检查。此方案类似于缓存技术中的惰性删除策略,简单且高效。 阅读全文

posted @ 2025-02-27 22:59 buguge 阅读(51) 评论(0) 推荐(0)

缓存过期的惰性删除(Lazy Deletion)策略

摘要: 缓存过期 - 惰性删除(Lazy Deletion)是一种用于处理缓存过期的策略,它在读取缓存数据时才去判断缓存项是否过期,如果过期则将其删除并返回空值,而不是在缓存项过期的瞬间就立即进行删除操作。以下从原理、优缺点、适用场景、实现示例几个方面为你详细介绍: 原理 在采用惰性删除策略的缓存系统中,为 阅读全文

posted @ 2025-02-27 22:33 buguge 阅读(111) 评论(0) 推荐(0)

一则修复数据的case,来看什么是*解决问题要彻底*

摘要: 我司年久不修的商旅系统,今天突然遇到一个问题,程序执行的一个sql时出现数据类型转换异常。 经排查,这是一个多表join的sql。 select ... from t_enterprise ent join t_passenger psg on ent.ent_id = psg.ent_id whe 阅读全文

posted @ 2025-02-27 21:59 buguge 阅读(71) 评论(0) 推荐(0)

2025年2月20日 #

Oops! 更改field的数据类型,影响到rabbitmq消费了...(有关于Java序列化)

摘要: 程序中有如下entity类-LevyPaymentFlow @Data @TableName(value = "levy_payment_flow", autoResultMap = true) public class LevyPaymentFlow implements Serializable 阅读全文

posted @ 2025-02-20 15:20 buguge 阅读(70) 评论(0) 推荐(0)

2025年2月14日 #

【研发笔记250214】do what you do

摘要: do what you do. 开发团队里曾经一个中级开发水平的小伙因为KPI不达标而被优化。离职前小伙跟我说:“战哥,我觉得咱们这儿的氛围特别好!”,他接着解释:“你看昨天你觉得我把’联调时间‘命名成’joint_debug_time‘不合适,我立即就按你说的改了。你觉得我那个model定义不符合 阅读全文

posted @ 2025-02-14 10:16 buguge 阅读(34) 评论(0) 推荐(0)

2025年2月10日 #

【注意】sql语句where条件中的数据类型不一致,不仅存在性能问题,还会有数据准确性方面的bug...

摘要: 隐式类型转换规则 MySQL 在进行比较操作时,如果比较双方的数据类型不一致,通常会尝试将其中一个数据类型转换为另一个数据类型,以便进行比较。 对于 select * from t_order where order_no = 1538808276987285507 ,当 order_no 为 va 阅读全文

posted @ 2025-02-10 22:32 buguge 阅读(155) 评论(0) 推荐(0)

2025年1月16日 #

状态机幂等

摘要: 与版本号乐观锁相比,有所不同的是,使用状态机幂等,可以不用事先查询数据。 阅读全文

posted @ 2025-01-16 21:37 buguge 阅读(114) 评论(0) 推荐(0)

2025年1月14日 #

【研发笔记20251114】技术自信 & 不因纠结于细节而放弃本该做的事情

摘要: 技术自信 我们要拥有技术自信! 我们许多同学,是缺乏技术自信的。 我们习惯了代码有改动,就提测给测试团队来进行测试验证。 虽说有测试团队,但有些开发改动,我们开发者,凭借我们的专业能力(技术能力),可以自己确信没有问题,可以不用一律提测。 例如:重命名一个底层工具类的public static方法, 阅读全文

posted @ 2025-01-14 22:44 buguge 阅读(76) 评论(0) 推荐(0)

2025年1月13日 #

【研发笔记250113】功利性人际边界

摘要: 功利性人际边界 蛇年将至,岁末之际,开发组计划组织聚餐。上周一,我的搭档ligan同学拉了一个聚餐的临时微信群,周知大家,将在1月13日晚去单位附近的八斗鸡欢聚一堂。从上周五我就想到,要通过微信单独通知一个同学————一个即将离职的同学,他叫yaoxchao。yaoxchao同学因为工作考核未过关, 阅读全文

posted @ 2025-01-13 14:49 buguge 阅读(146) 评论(1) 推荐(0)

2025年1月7日 #

来了,资金类交易业务(如电商交易、支付结算)中,经常提到的Money类!

摘要: 资金类交易业务中 经常提到的Money类,大家了解一下。 了解了Money类,就会对资金类业务如电商交易、支付更了解。 阅读全文

posted @ 2025-01-07 15:24 buguge 阅读(320) 评论(2) 推荐(0)

2024年12月27日 #

浅谈分布式锁的常用实现

摘要: 序言 在单机系统里,如果有多个线程要同时访问某个共享资源的时候,我们可以采用线程间加锁的机制,即基于 mutex(互斥锁),当某个线程获取到这个资源后,就需要对这个资源进行加锁,当使用完资源之后,再解锁,其它线程就可以接着使用了。例如,在 Java 中 synchronized/Lock 等。 如今 阅读全文

posted @ 2024-12-27 18:09 buguge 阅读(111) 评论(0) 推荐(0)

2024年12月18日 #

【开发笔记241211】论“俯瞰”的重要性

摘要: 2024.12初 我司零工平台,为合作企业客户提供向税地服务商充值的功能,我们内部叫在线分账。我们的在线分账功能,包括充值、分账、提现、通知上账这几个步骤。具体来讲, ①充值:充值指的是客户将资金转入到我们为客户开通的银行虚户里。一般有两种途径,一种是客户线下自行转入,一种是通过我司平台提供的B2B 阅读全文

posted @ 2024-12-18 10:58 buguge 阅读(43) 评论(0) 推荐(0)

2024年12月17日 #

系统网站登录,如何合规传输用户登录密码?

摘要: 这里要说的是,用户登录密码属于用户隐私数据。首先,隐私数据属于敏感数据,不能明文传输;其次,系统server端不能直接触碰用户密码。 阅读全文

posted @ 2024-12-17 21:42 buguge 阅读(573) 评论(3) 推荐(0)

2024年12月9日 #

API设计之道:从商户ID参数设计 看 对外商户API与内部中台服务 的参数设计理念的差异

摘要: 有思想、知章法,才能做出更好的系统!正如本案例,如果不假思索地在zhongtai-trans的付款查询接口上加上商户id,就有些唐突了。 阅读全文

posted @ 2024-12-09 21:39 buguge 阅读(61) 评论(0) 推荐(0)

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