Elasticsearch商品搜索实战:MySQL模糊查询从5秒到50ms
商品表 800 万行,运营要按关键词搜商品名。开发用 LIKE '%无线耳机%' 写了个接口,上线第一周就崩了:不带索引的模糊查询只能全表扫,单次 5 秒起步,并发一上来数据库连接池直接被打满,整个订单服务跟着遭殃。
JMeter 必存:BeanShell 常用脚本 9 段实战
做接口或性能测试久了,你会发现 JMeter 自带的元件能解决 80% 的问题,但剩下 20% 的 "脏活"—— 提取复杂 JSON、动态算时间、连库校验、密码加密 —— 全靠 BeanShell 脚本兜底。这篇把我日常用得最多的 9 段整理出来,直接复制改改就能用。
90%程序员都踩过!MySQL时间字段这5个坑,让线上报表直接少数据
本文基于大量真实线上事故复盘整理。每一个坑都是"SQL 执行成功、程序运行正常、但数据就是不对"的安静型 BUG。建议对照自己的项目自查。
线上日期突然跳到1970年,罪魁祸首竟是SimpleDateFormat
交易系统核心接口大面积报错,DBA 查数据库时间戳一切正常,NTP 同步没问题,服务器时区配置也没动过。但日志里密密麻麻的订单创建时间全是 1970年1月1日——有的甚至是 2037年。更诡异的是,流量降下来之后,错误自己消失了。第二天凌晨三点,准时复发。
单一职责原则:JAVA LocalDate的设计取舍
学习和理解单一职责,一个比较好的办法,是去看一个真正按这个原则设计的类。比如JDK 17里的java.time.LocalDate。第一次接触LocalDate时,很容易会认为,既然它负责表示日期,那日期格式化是不是也应该由它来做?但实际上,LocalDate根本不负责格式化。
周五改个时间字段,线上接口全红:TIMESTAMP 换 DATETIME 的隐形坑
摘要:一个库存保存接口,仅把 create_time/update_time 从 TIMESTAMP 改为 DATETIME,发版后大量报“字段没有默认值 / 不能为 null”。
本地运行正常,上线就崩?解决3个后端经典隐形Bug,告别线上踩坑
本地运行正常,上线就崩?搞定这3个后端经典隐形Bug,从此告别线上踩坑相信所有后端开发者都有过崩溃的瞬间:辛辛苦苦写完代码,本地调试完美运行,测试环境毫无问题,一旦部署生产环境,各种诡异报错、数据异常接踵而至。排查半天找不到原因,白白浪费大量时间精力。
研发执行Agent:基于设计文档的代码生成、审查与质量门禁
本文聚焦研发全生命周期中的第三阶段——研发执行。技术设计文档定稿后,RD进入编码阶段。研发执行Agent不是简单的代码补全工具,而是深度理解技术设计文档的编码伙伴——它能读设计文档生成代码骨架,能作为第一个Reviewer审查PR,能嵌入CI/CD流水线做质量门禁。1.
spring-rest接口LocalDateTime转时间戳
本文介绍spring-rest接口中的LocalDateTime日期类型转时间戳的方法。 具体的代码参照 示例项目 https://github.
Java 8 到 17 新特性实战:从 Stream 到 Record,真正写出现代代码
还在用 for 循环遍历集合、用一长串 if 判空、写一堆 getter/setter/toString?这些写法能跑,但早已不是现代 Java 的最优解。