技术实践
京东研发用 JoyCode 结对编程开发 SQL 指纹限流 MyBatis 插件
概述
京东数据库研发工程师针对突发流量冲击数据库的场景,借助京东内部 AI 编码工具 JoyCode 以结对编程方式开发 MyBatis 数据库保护插件(sword-mybatis-plugins)。设计阶段先以 prompt 让 JoyCode 产出包含 SQL 指纹解析、基于 ServiceLoader SPI 的阈值配置接口、Abort/Ignore/Delay 三种处理策略及比例执行的设计文档。编码阶段由 JoyCode 生成 com.jd.sword.mybatis.plugin.protector 包下的主体代码(maven 依赖人工补齐),随后人工完成代码风格对齐、复杂度简化、无用类删除与 SlidingWindowCounter 每次 new Window 的内存问题优化,分包调整因低效转人工。单测由 JoyCode 编写(checked exception 部分人工参与),并更新 DESIGN_DOCUMENT.md、README.md、SIMPLIFICATION_GUIDE.md 三份文档。插件可经 maven 坐标(artifactId 为 sword-mybatis-plugins)接入,作者称设计、开发、测试效率大大提升,但为体感口径、无量化数据。