后端探秘

12 篇文章
MySQL 逻辑删除遭遇唯一索引冲突的优雅解法

MySQL 逻辑删除遭遇唯一索引冲突的优雅解法

在现代化后端开发中,逻辑删除(Logical Delete) 几乎是互联网项目的标配。通过用一个 is_delete(0-未删除,1-已删除)字段来代替物理删除,既能防止用户误删数据,又便于后续的数据留存分析。 然而,当逻辑删除碰上唯一索引(Unique Key),一个隐藏的巨坑就悄然出现了。 今天

设计模式实战:用 Java 优雅实现适配器模式解决接口不兼容

设计模式实战:用 Java 优雅实现适配器模式解决接口不兼容

在日常的系统开发或重构中,我们经常会遇到这样的尴尬场景:系统需要引入一个新的第三方库,或者需要兼容一个老旧的遗留系统。但是,这些外部或老旧系统的代码往往与我们当前系统内部的标准接口不一致。甚至在很多历史遗留项目中,压根就没有定义接口规范,业务逻辑被死死地硬编码在具体的类中。 如果我们直接修改现有的核

使用 AOP + 自定义注解优雅实现方法级权限校验

使用 AOP + 自定义注解优雅实现方法级权限校验

在日常的后端开发中,接口的权限校验是一个绕不开的话题。相比于在每个 Controller 方法里写一堆 if-else 来判断当前登录用户的角色,使用 自定义注解 + AOP(面向切面编程) 无疑是一种更加优雅、解耦且易于维护的解决方案。 今天这篇文章,我将结合实际项目代码,手把手带你实现一个 @A

滑动窗口:优雅解决 API 批量处理限制

滑动窗口:优雅解决 API 批量处理限制

在 AI 应用开发或者对接第三方服务时,我们经常会遇到一个非常现实的“拦路虎”:API 的调用限制。 比如最近我在做 RAG(检索增强生成)知识库时,需要把本地的 Markdown 文档向量化并存入 PostgreSQL。我使用的 DashScope(通义千问)嵌入模型虽然效果很棒,但它有一个硬性规