buguge - Keep it simple,stupid

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

导航

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

#

[置顶] 面试题沟通整理

摘要: int与Integer-基本类型与包装类型的区别、使用场景, 如 数据表对应的实体类中,int类型字段对应的 属性 为什么是Integer? 幂等、防重复提交, 概念与区别。 如何系统全局做 防重复提交? fastjson关于枚举反序列化:当字符串不是枚举常量时,会怎样?请写出来测试代码。 数据的状 阅读全文

posted @ 2026-01-30 00:54 buguge 阅读(30) 评论(0) 推荐(0)

2026年9月18日 #

邮件正文不该进log日志:通过【lombok注解语法糖】实现从 整块屏蔽 到 安全预览

摘要: 一次邮件 DTO 日志脱敏的取舍 —— 三条泄露路径、两种方案,以及为什么"少打印一点"比"完全不打印"更可取 背景:发邮件是一个独立的中间服务 在这套体系里,邮件发送不是某个业务系统的内部功能,而是一个独立的中间服务。业务系统只负责组装邮件参数,再通过 RPC 调用这个服务去完成投递: 业务系统 阅读全文

posted @ 2026-09-18 22:48 buguge 阅读(34) 评论(0) 推荐(0)

2026年9月10日 #

交易成功还要记 3 笔账?我们直接砍到 1 笔—— 网络红包记账的一次自顶向下业务层重构

摘要: 交易成功还记 3 笔账?我们把它砍到 1 笔 —— 网络红包记账的一次自顶向下业务层重构 先给结论:性能优化,立足于业务层优化,收益最大。当一段代码的"保险"价值前提已经不存在时,它就不再是保护,而是纯粹的负债。我们把网络红包的记账从两阶段(冻结→解冻→扣减)改成直扣模式,RPC 请求量省掉一半,记 阅读全文

posted @ 2026-09-10 10:09 buguge 阅读(18) 评论(0) 推荐(0)

2026年9月9日 #

分享一次针对hardcode的小重构:不要把 package 名写死在代码里

摘要: 一、一个看起来没什么问题的实现 最近看到一段 Spring MVC 的配置代码: @Configuration public class WebMvcConfiguration implements WebMvcConfigurer { @Override public void configure 阅读全文

posted @ 2026-09-09 20:56 buguge 阅读(8) 评论(0) 推荐(0)

2026年9月7日 #

聚合系统设计:如何为银行代付通道抽象出公共的代付接口能力

摘要: interface&Abstract --- 我们可以保留泛型接口,同时使用抽象类封装大多数银行重复的泛型声明。 阅读全文

posted @ 2026-09-07 09:38 buguge 阅读(22) 评论(0) 推荐(0)

2026年8月25日 #

如何自定义 MyBatis/MyBatis-Plus枚举处理器(EnumTypeHandler):分享从 “同包同名 shadow 覆盖” 到 “官方扩展点” 的重构经历

摘要: 场景:sby-component-mybatisplus 组件中自定义 MyBatis 枚举处理器,从"同包同名 shadow 覆盖"重构为"setDefaultEnumTypeHandler 官方扩展点注册"。本文记录两种方案的原理、对比与关于健壮性代码的思考。 一、背景:为什么需要自定义“myb 阅读全文

posted @ 2026-08-25 20:54 buguge 阅读(17) 评论(0) 推荐(0)

2026年8月4日 #

这儿也改状态,那儿也改状态,连AI都理不清楚了… 不妨试试这个状态机good-practice

摘要: 状态机good-practice:让订单状态流转可控、可追溯、可维护 作者:buguge 2026-04-07 一、问题背景:状态流转的"野路子" 在我们的企业应用系统中,业务数据的状态流转是最常见的场景之一。以支付订单为例,状态可能经历: 初始 → 待付款 → 付款中 → 付款成功/付款失败 1. 阅读全文

posted @ 2026-08-04 21:56 buguge 阅读(33) 评论(0) 推荐(0)

业务解耦的经典实践:从订单表解耦开票业务说起(以滴滴网约车开票为例)

摘要: 业务解耦的经典实践:从订单表解耦开票业务说起(以滴滴网约车开票为例) 问题即答案;推敲见文章。------ 问题:耦合;答案:解耦。 阅读全文

posted @ 2026-08-04 12:21 buguge 阅读(75) 评论(0) 推荐(0)

2026年7月21日 #

从 `int` 到 `Duration`:一个缓存 API 的三次演进教会我的事

摘要: 1) 一个让我熬夜排查的 Bug 某天凌晨两点,线上告警:用户 Token 频繁过期,大量请求被踢回登录页。 查了一圈,发现 Redis 里 Token 的 TTL 设置有问题——本该存活 1 小时的 Token,实际只活了 1 分钟。顺着调用链找到罪魁祸首: CacheUtils.set("tok 阅读全文

posted @ 2026-07-21 22:42 buguge 阅读(22) 评论(0) 推荐(0)

2026年7月9日 #

最差实践(bad-practice):开发者在方法里直接实例化线程池对象,然后...(应用gg了)

摘要: 一、问题现场 当需要异步执行一个任务时,开发者随手在方法内部 new 一个线程池: public class AsyncTaskService { public void sendNotification(String message) { // 每次调用都创建全新的线程池 ExecutorServ 阅读全文

posted @ 2026-07-09 22:38 buguge 阅读(17) 评论(0) 推荐(0)

【HttpClient最差实践(bad-practice)】开发者在 http 工具方法中直接实例化 HttpClient,然后……

摘要: 一、问题现场:一段看似“正常”的工具代码 在很多项目的 HTTP 工具类里,你可能会看到这样的写法: public static String doPost(Map<String, String> map, String url) throws HttpTransportException { lo 阅读全文

posted @ 2026-07-09 21:49 buguge 阅读(29) 评论(0) 推荐(0)

2026年7月7日 #

Crypto、Cipher与Password:Java加密开发的三个核心概念

摘要: 引言:三个“密码”,三种含义 在Java安全开发中,有三个极易混淆的术语:Crypto、Cipher和Password。它们的中文翻译都与“密码”有关,但在计算机科学中各自承担着截然不同的角色。 Crypto:密码学的总称,是一个领域或工具箱 Cipher:加密/解密的具体算法或工具 Passwor 阅读全文

posted @ 2026-07-07 21:46 buguge 阅读(84) 评论(0) 推荐(0)

2026年6月21日 #

知识VS技能:如何优雅判空?

摘要: 知道不等于会用,会用才是真本事 在我们的项目中,有一个 EnterpriseSessionContext 工具类,用于管理当前登录企业的 Session 信息。代码很简单: import org.springframework.web.context.request.RequestContextHo 阅读全文

posted @ 2026-06-21 18:45 buguge 阅读(23) 评论(0) 推荐(0)

2026年6月5日 #

20260604SR超时问题排查

摘要: 故障说明: 2026-06-04 09:40 ~ 2026-06-02 10:20 期间,运营后台系统的用户数据查询明显变慢,甚至超时。由大数据StarRocks集群压力过大引发。 导致原因分析(磁盘、网络、实现方式、数据量、使用量) 基于 SR的审计日志 查询比平时增加,导致内存稳定在 85%左右 阅读全文

posted @ 2026-06-05 18:55 buguge 阅读(27) 评论(0) 推荐(0)

2026年5月27日 #

推敲见文章:从 `try..catch` 看异常日志打印的正确姿势

摘要: 一、一个常见的异常处理场景 在 Java 开发中,异常处理和日志记录是基础但容易出错的环节。最近在一次代码评审中,发现了下面这段典型的异常处理代码(其中的BizException是一个自定义异常): try { // 业务逻辑:上传身份证图片 // ... } catch (Exception e) 阅读全文

posted @ 2026-05-27 22:56 buguge 阅读(31) 评论(0) 推荐(0)

2026年5月14日 #

#解决问题要彻底# 慢SQL治理完成后,如何防止同类问题“死灰复燃”?

摘要: 一、 问题现场:一个触发全表扫描的“企业名称”查询 今天巡检系统时,发现一条耗时超过15s的慢SQL: select count(*) as orderNum, sum(amount) as totalAmt, sum(case when order_status = 'SUCCESS' then 阅读全文

posted @ 2026-05-14 21:30 buguge 阅读(20) 评论(0) 推荐(0)

从合同甲方是荒谬的“JD”谈起:软件开发不应遗忘的“常识”

摘要: 我们构建的系统,终将服务于这个充满规则与常识的现实世界。 阅读全文

posted @ 2026-05-14 10:08 buguge 阅读(47) 评论(0) 推荐(0)

2026年4月26日 #

别留小尾巴/尽快剪掉小尾巴:从一次“ABA”字段重命名,谈谈“解决问题要彻底”

摘要: 一、背景:一次计划周密的“ABA”迁移 最近,团队需要对“API商户密钥配置表” enterprise_api_key 中的 enterprise_id 字段进行重命名,新字段名为 partner_id。为确保迁移过程平稳、不影响线上业务,我们采用了经典的“ABA”策略: 阶段A:保留原字段,增加新 阅读全文

posted @ 2026-04-26 22:22 buguge 阅读(18) 评论(0) 推荐(0)

2026年4月21日 #

常见的OOM错误 ( OutOfMemoryError全类型详解)

摘要: Java heap space GC overhead limit exceeded Metaspace Unable to create new native thread 阅读全文

posted @ 2026-04-21 22:08 buguge 阅读(156) 评论(0) 推荐(0)

2026年4月20日 #

开发者暴露了一个无需授权访问的裸接口,我问:如果有人暴力请求怎么办?

摘要: 如下方法,@UnAuthToken 注解代表无需授权访问。 这个方法逻辑很简单,入参“key”是一个md5串,程序根据这个“key”去redis拿到数据,经过转换后返回。 每次调用这个方法,意味着 ①会调redis ②会记操作日志 /** * 企业首页忘记登录密码通过key获取当前用户名 * * @ 阅读全文

posted @ 2026-04-20 21:50 buguge 阅读(56) 评论(0) 推荐(0)

2026年4月9日 #

【SQL性能优化篇】有了!治理慢SQL“WHERE create_time ORDER BY id”的良药---规避“Using filesort”性能杀手

摘要: 如何将WHERE create_time ORDER BY id的低效查询,优化为极致性能的WHERE id ORDER BY id查询? § 引言:一个经典的性能困境 在开发订单流水、记账流水、操作日志、监控数据等按时间分页查询的应用时,下面这条SQL非常常见,但在数据量增长后极易成为性能瓶颈: 阅读全文

posted @ 2026-04-09 10:19 buguge 阅读(64) 评论(0) 推荐(0)

2026年4月2日 #

高效查询商户日终余额:一个SQL的优化实践

摘要: 知识就是力量,但更重要的是运用知识的能力。 阅读全文

posted @ 2026-04-02 13:00 buguge 阅读(106) 评论(0) 推荐(0)

2026年3月23日 #

Hutool 的 `TimedCache` 到期会自动清理吗? ——————hutool cache的"惰性清理"和"定期清理"

摘要: 在创建 `TimedCache` 后立即调用 `schedulePrune()`,以确保过期数据会被及时清理,避免内存泄漏问题。 阅读全文

posted @ 2026-03-23 21:04 buguge 阅读(104) 评论(0) 推荐(0)

2026年3月16日 #

Fastjson枚举反序列化:当字符串不是枚举常量名时,会发生什么?

摘要: 我们知道,对外暴露的 HTTP RestAPI 接口通常使用 JSON 格式传输数据。服务端接收到数据后,会将 JSON 字符串反序列化为对应的请求实体对象。 我司灵工系统使用的是 Fastjson-1.2.83 作为序列化工具。在一次RestAPI开发过程中,我忽然产生一个好奇:当 VO 属性的类 阅读全文

posted @ 2026-03-16 20:20 buguge 阅读(82) 评论(0) 推荐(0)

fastjson-EnumDeserializer类及源码分析

摘要: 本文以fastjson-1.2.83版本中 EnumDeserializer 类的源码,来解释其工作原理和实现细节。 🎯 类结构概览 EnumDeserializer 是 FastJSON 用于将 JSON 反序列化为枚举类型的核心类。它支持: 通过枚举名称(Enum.name())反序列化 通过 阅读全文

posted @ 2026-03-16 18:32 buguge 阅读(27) 评论(0) 推荐(0)

2026年3月9日 #

随笔20260309:我们都是围城里的人

摘要: 开年第一天,在谈到组织建设和团队管理时,老马跟职场的我们几个TL说,“别总靠个人加班、苦劳,长此以往人会崩的。得想机制动员团队的力量。” 在一些人看来,可能直觉以为领导在打鸡血、在PUA。 而我,也作为一个一线的TL,突然有一种大梦初醒的领悟。 ————原来,我一直都是围城里的人。我经常加班,在办公 阅读全文

posted @ 2026-03-09 21:11 buguge 阅读(21) 评论(0) 推荐(0)

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