🎯 一句话定位:当 MyBatis Plus 默认的 LocalDateTime 映射失效时,用 @PostConstruct 手动注册 TypeHandler 是最可靠的解法。 💡 核心理念:理解 TypeHandler ...
终端长任务不断线:从 Ctrl+Z、bg 到 tmux 的选择指南
一句话定位:这是一篇帮你弄清“前台、后台、挂起、脱离会话”区别的终端任务管理笔记。 核心理念:Ctrl+Z 和 bg 管的是当前 shell 里的作业,tmux 管的是整段终端会话能不能断开后再接回来。 3 分钟速览版 点击...
Redis ZSet 实现延时告警重推:从需求出发的架构选型思考
🎯 一句话定位:一个告警重推需求,三种方案对比,一次关于「只有最适合的架构,没有最好的架构」的实战思考。 💡 核心理念:架构设计不是秀技术栈,而是在约束条件下找到最小复杂度的解决方案。 📖 3分钟速览版 📊 点击展开...
数据库迁移实战:Oracle → MySQL → 国产化数据库完整方案
🎯 一句话定位:一篇覆盖 Oracle → MySQL → 国产化数据库的全链路迁移指南,从语法差异到灰度切流,帮你少踩 80% 的坑。 💡 核心理念:迁移不是翻译 SQL,而是重新理解业务在新引擎上的最优表达。 📖 ...
自定义 RedisTemplate 使用 StringRedisSerializer 避免双重引号问题
🎯 一句话定位:解决 Redis 存储值被 """" 双重双引号包裹的序列化陷阱。 💡 核心理念:让 RedisTemplate 只做纯字符串存取,序列化的活交给业务层自己控制。 📖...
float[][] 矩阵序列化:用 Base64 二进制编码替代 JSON 文本,避免 OOM
🎯 一句话定位:大矩阵序列化时,JSON 文本格式是内存杀手,Base64 二进制编码才是正解。 💡 核心理念:用二进制紧凑表示替代人类可读的 JSON 文本,在序列化/反序列化的每一步都减少内存分配。 📖 3 ...
Vibecoding 实践指南:用 Claude Code CLI 重新定义编程工作流
🎯 一句话定位:Vibecoding 不是”让 AI 写代码”,而是用自然语言驱动的方式,与 AI 协作完成从构思到交付的完整编程工作流。 💡 核心理念:好的 vibecoding 不在于 prompt 写得多巧妙,而在于你为 ...
博客安全检查方案优化——从 Git Hooks 到 AI 审查的多层防护
背景个人博客用 Git Hooks + Bash 正则做密钥泄露检测已经跑了一段时间,基本够用。但遇到几个痛点: .git/hooks/ 不受版本控制,换环境要手动装 检测模式不够全,缺少 Google、Slack、JWT 等常见格...
用 Map, Field[]> 缓存优化 Java 反射:从慢 10 倍到接近原生性能
🎯 一句话定位:每次 getDeclaredFields() 都在做数组拷贝和安全检查——用一个 ConcurrentHashMap<Class<?>, Field[]> 缓存它,高频反射场景性能立刻提升 ...
用 UNLINK 清理 Redis Key:从一次线上操作引发的缓存清理思考
🎯 一句话定位:生产环境清理 Redis Key,用 UNLINK 代替 DEL,异步释放内存不阻塞主线程——这个替换背后,藏着 Redis 内存管理的核心逻辑。 💡 核心理念:缓存清理不是简单地”执行删除”,理解 Redis ...