<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Java Backend Developer</title><description>Java 后端、业务项目、踩坑复盘与 AI 协作开发。</description><link>https://yunan.aiutil.cloud/</link><item><title>大量代码由 AI 完成后，我要把哪些事做对</title><link>https://yunan.aiutil.cloud/blog/ai-assisted-development-ownership/</link><guid isPermaLink="true">https://yunan.aiutil.cloud/blog/ai-assisted-development-ownership/</guid><description>结合批创、BI 和个人 AI 平台，梳理自己的贡献：定义业务动作、约束实现、追踪问题和验证交付。</description><pubDate>Thu, 15 Oct 2026 00:00:00 GMT</pubDate></item><item><title>把 AI 视频生成从一次请求，改成可追踪的任务</title><link>https://yunan.aiutil.cloud/blog/ai-video-durable-job-workflow/</link><guid isPermaLink="true">https://yunan.aiutil.cloud/blog/ai-video-durable-job-workflow/</guid><description>长耗时模型调用需要独立的任务生命周期：受理、排队、提交、轮询、终态、积分与素材清理。</description><pubDate>Thu, 15 Oct 2026 00:00:00 GMT</pubDate></item><item><title>资产重复导入时，复用和跳过不是一回事</title><link>https://yunan.aiutil.cloud/blog/pitfall-asset-reuse-dependencies/</link><guid isPermaLink="true">https://yunan.aiutil.cloud/blog/pitfall-asset-reuse-dependencies/</guid><description>BI 资产迁移中，同名对象、目标 ID 和依赖传播必须一起看；只给导入加一个去重判断并不够。</description><pubDate>Thu, 15 Oct 2026 00:00:00 GMT</pubDate></item><item><title>图片没多生成一张，Base64 却多存了一份</title><link>https://yunan.aiutil.cloud/blog/pitfall-base64-audit-payload/</link><guid isPermaLink="true">https://yunan.aiutil.cloud/blog/pitfall-base64-audit-payload/</guid><description>把服务商原始响应直接写入请求审计，会让图片数据混入日志；审计与展示需要各自的数据边界。</description><pubDate>Thu, 15 Oct 2026 00:00:00 GMT</pubDate></item><item><title>AI 已经回答成功，为什么结算时又余额不足</title><link>https://yunan.aiutil.cloud/blog/pitfall-chat-token-settlement/</link><guid isPermaLink="true">https://yunan.aiutil.cloud/blog/pitfall-chat-token-settlement/</guid><description>聊天从固定费用切到 Token 计费后，预扣、输出上限和实际结算必须使用同一套成本边界。</description><pubDate>Thu, 15 Oct 2026 00:00:00 GMT</pubDate></item><item><title>CSV 导出去再导入，ID 为什么多了一对引号</title><link>https://yunan.aiutil.cloud/blog/pitfall-csv-quoted-identifiers/</link><guid isPermaLink="true">https://yunan.aiutil.cloud/blog/pitfall-csv-quoted-identifiers/</guid><description>ID 标签和分群的导入问题：还原 CSV 的外层引号、转义双引号与 BOM，同时保留真实业务值。</description><pubDate>Thu, 15 Oct 2026 00:00:00 GMT</pubDate></item><item><title>发布成功了，旧页面点菜单却加载失败</title><link>https://yunan.aiutil.cloud/blog/pitfall-stale-lazy-loaded-assets/</link><guid isPermaLink="true">https://yunan.aiutil.cloud/blog/pitfall-stale-lazy-loaded-assets/</guid><description>前端懒加载资源带版本哈希，用户长时间打开的页面可能引用已被新版本替换的文件。</description><pubDate>Thu, 15 Oct 2026 00:00:00 GMT</pubDate></item><item><title>Spring Boot 项目别只会启动，先把边界搭清楚</title><link>https://yunan.aiutil.cloud/blog/spring-boot-production-boundary/</link><guid isPermaLink="true">https://yunan.aiutil.cloud/blog/spring-boot-production-boundary/</guid><description>从 Controller、Service、Mapper、配置和异常处理几个维度，整理一个 Java 后端项目的生产化骨架。</description><pubDate>Wed, 01 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Redis 缓存一致性：不要迷信一种删除策略</title><link>https://yunan.aiutil.cloud/blog/redis-cache-consistency-playbook/</link><guid isPermaLink="true">https://yunan.aiutil.cloud/blog/redis-cache-consistency-playbook/</guid><description>从读写路径、延迟双删、消息补偿和可观测性四个角度，整理缓存一致性方案。</description><pubDate>Tue, 30 Jun 2026 00:00:00 GMT</pubDate></item><item><title>MyBatis 动态 SQL 写复杂查询时，最怕的是不可预期</title><link>https://yunan.aiutil.cloud/blog/mybatis-dynamic-sql-review/</link><guid isPermaLink="true">https://yunan.aiutil.cloud/blog/mybatis-dynamic-sql-review/</guid><description>动态 SQL 不只是 if 和 foreach，重点是参数归一化、索引命中、可读性和执行计划。</description><pubDate>Mon, 29 Jun 2026 00:00:00 GMT</pubDate></item><item><title>XXL-Job 定时任务：真正难的是重复执行还能对</title><link>https://yunan.aiutil.cloud/blog/xxl-job-idempotent-scheduler/</link><guid isPermaLink="true">https://yunan.aiutil.cloud/blog/xxl-job-idempotent-scheduler/</guid><description>结合媒体数据拉取和 BI 计算场景，整理分布式定时任务的幂等、分片、超时和补偿设计。</description><pubDate>Sun, 28 Jun 2026 00:00:00 GMT</pubDate></item><item><title>消息队列异步链路：别只关注发出去没有</title><link>https://yunan.aiutil.cloud/blog/mq-async-pipeline-checklist/</link><guid isPermaLink="true">https://yunan.aiutil.cloud/blog/mq-async-pipeline-checklist/</guid><description>一条可靠 MQ 链路，需要同时考虑唯一键、重试、顺序、死信、补偿和观测。</description><pubDate>Sat, 27 Jun 2026 00:00:00 GMT</pubDate></item><item><title>一个 Java 后端程序员的个人网站应该放什么</title><link>https://yunan.aiutil.cloud/blog/backend-personal-site/</link><guid isPermaLink="true">https://yunan.aiutil.cloud/blog/backend-personal-site/</guid><description>个人网站第一版不需要复杂后台，先把身份、项目、文章和联系方式讲清楚。</description><pubDate>Fri, 26 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Java 并发调用第三方 API：快不是唯一目标</title><link>https://yunan.aiutil.cloud/blog/java-concurrent-third-party-api/</link><guid isPermaLink="true">https://yunan.aiutil.cloud/blog/java-concurrent-third-party-api/</guid><description>第三方接口批量拉取时，要同时控制并发、超时、限流退避、局部失败和结果幂等。</description><pubDate>Fri, 26 Jun 2026 00:00:00 GMT</pubDate></item><item><title>BI 分析 SQL 不该散落在业务代码里</title><link>https://yunan.aiutil.cloud/blog/starrocks-bi-sql-planner/</link><guid isPermaLink="true">https://yunan.aiutil.cloud/blog/starrocks-bi-sql-planner/</guid><description>从路径分析和结果分群场景出发，聊聊为什么复杂 BI 查询需要 Planner/Builder。</description><pubDate>Thu, 25 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Java 后端看 RAG：本质是检索链路，不是魔法提示词</title><link>https://yunan.aiutil.cloud/blog/rag-for-java-backend/</link><guid isPermaLink="true">https://yunan.aiutil.cloud/blog/rag-for-java-backend/</guid><description>RAG 要解决的是知识注入和事实性问题，核心在文档切分、向量检索、重排、引用和权限。</description><pubDate>Wed, 24 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Spring AI Tool Calling：让模型调用工具前，先设计边界</title><link>https://yunan.aiutil.cloud/blog/spring-ai-tool-calling-agent/</link><guid isPermaLink="true">https://yunan.aiutil.cloud/blog/spring-ai-tool-calling-agent/</guid><description>Tool Calling 的重点不是让模型能调接口，而是参数约束、权限控制、审计日志和失败回退。</description><pubDate>Tue, 23 Jun 2026 00:00:00 GMT</pubDate></item><item><title>MCP 和 Agent 接入后端系统时，第一原则是最小权限</title><link>https://yunan.aiutil.cloud/blog/mcp-agent-backend-guardrails/</link><guid isPermaLink="true">https://yunan.aiutil.cloud/blog/mcp-agent-backend-guardrails/</guid><description>MCP 让 Agent 连接工具和数据源更标准，但后端接入时要特别关注权限、命令白名单和审计。</description><pubDate>Mon, 22 Jun 2026 00:00:00 GMT</pubDate></item><item><title>接口幂等设计的后端检查清单</title><link>https://yunan.aiutil.cloud/blog/idempotency-design/</link><guid isPermaLink="true">https://yunan.aiutil.cloud/blog/idempotency-design/</guid><description>从请求唯一性、状态流转、数据库约束和异步补偿四个角度梳理幂等设计。</description><pubDate>Sat, 20 Jun 2026 00:00:00 GMT</pubDate></item><item><title>缓存设计不要只问怎么删 Redis</title><link>https://yunan.aiutil.cloud/blog/cache-notes/</link><guid isPermaLink="true">https://yunan.aiutil.cloud/blog/cache-notes/</guid><description>缓存问题的重点是数据来源、失效策略、降级路径和可观测性。</description><pubDate>Fri, 12 Jun 2026 00:00:00 GMT</pubDate></item></channel></rss>