<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0"><channel><title>梦想恒久</title><link>https://blog.qianyecube.cn</link><atom:link href="https://blog.qianyecube.cn/feed.xml" rel="self" type="application/rss+xml"/><description>8 年全栈 + AI · RAG 智能体 · 小程序 · 官网 · 工作流</description><generator>Halo v2.27.0</generator><language>zh-cn</language><lastBuildDate>Mon, 26 Oct 2026 05:16:06 GMT</lastBuildDate><item><title><![CDATA[国内项目验收为什么总卡住]]></title><link>https://blog.qianyecube.cn/archives/acceptance-checklist</link><description><![CDATA[<img src="https://blog.qianyecube.cn/plugins/feed/assets/telemetry.gif?title=%E5%9B%BD%E5%86%85%E9%A1%B9%E7%9B%AE%E9%AA%8C%E6%94%B6%E4%B8%BA%E4%BB%80%E4%B9%88%E6%80%BB%E5%8D%A1%E4%BD%8F&amp;url=/archives/acceptance-checklist" width="1" height="1" alt="" style="opacity:0;">验收卡住，多数时候卡在“做完”没有被定义。把功能、数据、权限、性能、安全、部署、文档、培训八类标准写进合同，尾款才有保障。]]></description><guid isPermaLink="false">/archives/acceptance-checklist</guid><dc:creator>杜恒</dc:creator><enclosure url="https://blog.qianyecube.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2Fcover-20.png&amp;size=m" type="image/jpeg" length="61710"/><category>交付手记</category><pubDate>Fri, 23 Oct 2026 17:42:04 GMT</pubDate></item><item><title><![CDATA[两周交付一个行业系统：范围冻结、里程碑与验收]]></title><link>https://blog.qianyecube.cn/archives/two-week-delivery-scope</link><description><![CDATA[<img src="https://blog.qianyecube.cn/plugins/feed/assets/telemetry.gif?title=%E4%B8%A4%E5%91%A8%E4%BA%A4%E4%BB%98%E4%B8%80%E4%B8%AA%E8%A1%8C%E4%B8%9A%E7%B3%BB%E7%BB%9F%EF%BC%9A%E8%8C%83%E5%9B%B4%E5%86%BB%E7%BB%93%E3%80%81%E9%87%8C%E7%A8%8B%E7%A2%91%E4%B8%8E%E9%AA%8C%E6%94%B6&amp;url=/archives/two-week-delivery-scope" width="1" height="1" alt="" style="opacity:0;">两周交付，切得准比写得快重要。前提是有一套可复用的底座；从零写一套行业系统，两周只够做一个能演示的原型。]]></description><guid isPermaLink="false">/archives/two-week-delivery-scope</guid><dc:creator>杜恒</dc:creator><enclosure url="https://blog.qianyecube.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2Fcover-19.png&amp;size=m" type="image/jpeg" length="59826"/><category>交付手记</category><pubDate>Fri, 23 Oct 2026 17:42:04 GMT</pubDate></item><item><title><![CDATA[一个人做行业软件，先接单再做产品]]></title><link>https://blog.qianyecube.cn/archives/custom-delivery-to-white-label</link><description><![CDATA[<img src="https://blog.qianyecube.cn/plugins/feed/assets/telemetry.gif?title=%E4%B8%80%E4%B8%AA%E4%BA%BA%E5%81%9A%E8%A1%8C%E4%B8%9A%E8%BD%AF%E4%BB%B6%EF%BC%8C%E5%85%88%E6%8E%A5%E5%8D%95%E5%86%8D%E5%81%9A%E4%BA%A7%E5%93%81&amp;url=/archives/custom-delivery-to-white-label" width="1" height="1" alt="" style="opacity:0;">先接单再产品化，是一个人能走通的最短路径。关键是把每一单都当成一次受控实验，3–5 单后只抽跨单重复的那六七成。]]></description><guid isPermaLink="false">/archives/custom-delivery-to-white-label</guid><dc:creator>杜恒</dc:creator><enclosure url="https://blog.qianyecube.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2Fcover-18.png&amp;size=m" type="image/jpeg" length="56800"/><category>交付手记</category><pubDate>Fri, 23 Oct 2026 17:42:03 GMT</pubDate></item><item><title><![CDATA[为什么国内 B 端买家要源码买断，而不是 SaaS 订阅]]></title><link>https://blog.qianyecube.cn/archives/source-code-buyout-vs-saas</link><description><![CDATA[<img src="https://blog.qianyecube.cn/plugins/feed/assets/telemetry.gif?title=%E4%B8%BA%E4%BB%80%E4%B9%88%E5%9B%BD%E5%86%85%20B%20%E7%AB%AF%E4%B9%B0%E5%AE%B6%E8%A6%81%E6%BA%90%E7%A0%81%E4%B9%B0%E6%96%AD%EF%BC%8C%E8%80%8C%E4%B8%8D%E6%98%AF%20SaaS%20%E8%AE%A2%E9%98%85&amp;url=/archives/source-code-buyout-vs-saas" width="1" height="1" alt="" style="opacity:0;">国内买家要源码，不是保守，也不是想盗版。他们买的是资产归属、部署权、二开权和断供后的退路。把这几件事讲清楚，报价才有依据。]]></description><guid isPermaLink="false">/archives/source-code-buyout-vs-saas</guid><dc:creator>杜恒</dc:creator><enclosure url="https://blog.qianyecube.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2Fcover-17.png&amp;size=m" type="image/jpeg" length="62686"/><category>交付手记</category><pubDate>Fri, 23 Oct 2026 17:42:03 GMT</pubDate></item><item><title><![CDATA[行业系统做成白牌，先看领域模型能不能复用]]></title><link>https://blog.qianyecube.cn/archives/white-label-industry-system-domain-model</link><description><![CDATA[<img src="https://blog.qianyecube.cn/plugins/feed/assets/telemetry.gif?title=%E8%A1%8C%E4%B8%9A%E7%B3%BB%E7%BB%9F%E5%81%9A%E6%88%90%E7%99%BD%E7%89%8C%EF%BC%8C%E5%85%88%E7%9C%8B%E9%A2%86%E5%9F%9F%E6%A8%A1%E5%9E%8B%E8%83%BD%E4%B8%8D%E8%83%BD%E5%A4%8D%E7%94%A8&amp;url=/archives/white-label-industry-system-domain-model" width="1" height="1" alt="" style="opacity:0;">很多团队以为白牌就是换 logo、换配色、换菜单，把定制项目包装成产品再卖一遍。真正决定第二单能不能赚钱的，是领域模型、流程、接口、合规这四层能不能复用。这篇讲怎么在接单之前判断，以及为什么先做交付包比先做官网更重要。]]></description><guid isPermaLink="false">/archives/white-label-industry-system-domain-model</guid><dc:creator>杜恒</dc:creator><enclosure url="https://blog.qianyecube.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2Fcover-16.png&amp;size=m" type="image/jpeg" length="64798"/><category>行业观察</category><pubDate>Fri, 23 Oct 2026 17:42:03 GMT</pubDate></item><item><title><![CDATA[蓝领招工难在实名和日结]]></title><link>https://blog.qianyecube.cn/archives/blue-collar-recruiting-realname-daily-settlement</link><description><![CDATA[<img src="https://blog.qianyecube.cn/plugins/feed/assets/telemetry.gif?title=%E8%93%9D%E9%A2%86%E6%8B%9B%E5%B7%A5%E9%9A%BE%E5%9C%A8%E5%AE%9E%E5%90%8D%E5%92%8C%E6%97%A5%E7%BB%93&amp;url=/archives/blue-collar-recruiting-realname-daily-settlement" width="1" height="1" alt="" style="opacity:0;">蓝领招工系统的功能列表和白领招聘长得差不多，真正难的是另外两件事：来的人是不是他本人，干完这一天钱怎么发出去。实名、考勤、日结、四流一致，每一件都同时是技术问题和合规问题。这篇讲这四个环节在代码里长什么样，以及平台该站在哪个位置。]]></description><guid isPermaLink="false">/archives/blue-collar-recruiting-realname-daily-settlement</guid><dc:creator>杜恒</dc:creator><enclosure url="https://blog.qianyecube.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2Fcover-15.png&amp;size=m" type="image/jpeg" length="62326"/><category>行业观察</category><pubDate>Fri, 23 Oct 2026 17:42:02 GMT</pubDate></item><item><title><![CDATA[多商户商城的库存，为什么不能挂在订单上]]></title><link>https://blog.qianyecube.cn/archives/multi-merchant-mall-domain-boundaries</link><description><![CDATA[<img src="https://blog.qianyecube.cn/plugins/feed/assets/telemetry.gif?title=%E5%A4%9A%E5%95%86%E6%88%B7%E5%95%86%E5%9F%8E%E7%9A%84%E5%BA%93%E5%AD%98%EF%BC%8C%E4%B8%BA%E4%BB%80%E4%B9%88%E4%B8%8D%E8%83%BD%E6%8C%82%E5%9C%A8%E8%AE%A2%E5%8D%95%E4%B8%8A&amp;url=/archives/multi-merchant-mall-domain-boundaries" width="1" height="1" alt="" style="opacity:0;">商城的第一版，库存通常长在商品表上，结算状态挂在订单上。二十个商户、几百个 SKU 能跑过验收，第一次大促就会同时出现超卖和对不上账——锁救不了它，根子在五个域被压进了同一两张表。这篇按商品、库存、订单、履约、结算的顺序，讲每个域该拥有什么，边界又该落在哪几张表上。]]></description><guid isPermaLink="false">/archives/multi-merchant-mall-domain-boundaries</guid><dc:creator>杜恒</dc:creator><enclosure url="https://blog.qianyecube.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2Fcover-14.png&amp;size=m" type="image/jpeg" length="58966"/><category>行业观察</category><pubDate>Fri, 23 Oct 2026 17:42:02 GMT</pubDate></item><item><title><![CDATA[主流程演示得再顺，客户还是要先导一个 Excel]]></title><link>https://blog.qianyecube.cn/archives/import-export-print-delivery</link><description><![CDATA[<img src="https://blog.qianyecube.cn/plugins/feed/assets/telemetry.gif?title=%E4%B8%BB%E6%B5%81%E7%A8%8B%E6%BC%94%E7%A4%BA%E5%BE%97%E5%86%8D%E9%A1%BA%EF%BC%8C%E5%AE%A2%E6%88%B7%E8%BF%98%E6%98%AF%E8%A6%81%E5%85%88%E5%AF%BC%E4%B8%80%E4%B8%AA%20Excel&amp;url=/archives/import-export-print-delivery" width="1" height="1" alt="" style="opacity:0;">验收现场的顺序和开发时相反：客户不先点你讲了半小时的下单流程，而是拿出自己的 Excel 导一遍，再导出一张报表，最后打一张单。主流程决定系统能不能用，这三件事决定客户明天能不能上班；它们没有技术难度，只有工作量，报价里不写，后面就是免费加班。]]></description><guid isPermaLink="false">/archives/import-export-print-delivery</guid><dc:creator>杜恒</dc:creator><enclosure url="https://blog.qianyecube.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2Fcover-13.png&amp;size=m" type="image/jpeg" length="57697"/><category>技术沉淀</category><pubDate>Fri, 23 Oct 2026 17:42:01 GMT</pubDate></item><item><title><![CDATA[RAG 接进业务系统，权限和评测绕不过去]]></title><link>https://blog.qianyecube.cn/archives/rag-agent-in-business-systems</link><description><![CDATA[<img src="https://blog.qianyecube.cn/plugins/feed/assets/telemetry.gif?title=RAG%20%E6%8E%A5%E8%BF%9B%E4%B8%9A%E5%8A%A1%E7%B3%BB%E7%BB%9F%EF%BC%8C%E6%9D%83%E9%99%90%E5%92%8C%E8%AF%84%E6%B5%8B%E7%BB%95%E4%B8%8D%E8%BF%87%E5%8E%BB&amp;url=/archives/rag-agent-in-business-systems" width="1" height="1" alt="" style="opacity:0;">演示阶段准备二十个问题，答对十九个不难；接进业务系统之后，真正会出事的是它把另一个租户的制度答了出来，语气还很确定。RAG 的工程难点不在模型，在检索前的权限过滤、文档版本和删除的同步、一套从真实工单里长出来的评测集；Agent 再往前走一步，写操作必须停下来等人确认。]]></description><guid isPermaLink="false">/archives/rag-agent-in-business-systems</guid><dc:creator>杜恒</dc:creator><enclosure url="https://blog.qianyecube.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2Fcover-12.png&amp;size=m" type="image/jpeg" length="63338"/><category>技术沉淀</category><pubDate>Fri, 23 Oct 2026 17:42:01 GMT</pubDate></item><item><title><![CDATA[线上出问题，先分清是所有人都慢还是一个人慢]]></title><link>https://blog.qianyecube.cn/archives/observability-for-small-teams</link><description><![CDATA[<img src="https://blog.qianyecube.cn/plugins/feed/assets/telemetry.gif?title=%E7%BA%BF%E4%B8%8A%E5%87%BA%E9%97%AE%E9%A2%98%EF%BC%8C%E5%85%88%E5%88%86%E6%B8%85%E6%98%AF%E6%89%80%E6%9C%89%E4%BA%BA%E9%83%BD%E6%85%A2%E8%BF%98%E6%98%AF%E4%B8%80%E4%B8%AA%E4%BA%BA%E6%85%A2&amp;url=/archives/observability-for-small-teams" width="1" height="1" alt="" style="opacity:0;">凌晨一点半，客服在群里说“系统很卡”，这句话没法直接动手。要先把它拆成谁慢、哪个接口慢、从几点开始，才谈得上排查。200 QPS 的系统用不上重型 APM，但 traceId、四组指标和每条告警对应的 Runbook 缺一不可；这三样没有，监控大盘只是挂在墙上的屏保。]]></description><guid isPermaLink="false">/archives/observability-for-small-teams</guid><dc:creator>杜恒</dc:creator><enclosure url="https://blog.qianyecube.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2Fcover-11.png&amp;size=m" type="image/jpeg" length="60369"/><category>技术沉淀</category><pubDate>Fri, 23 Oct 2026 17:42:01 GMT</pubDate></item><item><title><![CDATA[数据迁移完了，没人敢关旧系统]]></title><link>https://blog.qianyecube.cn/archives/legacy-data-migration-reconciliation</link><description><![CDATA[<img src="https://blog.qianyecube.cn/plugins/feed/assets/telemetry.gif?title=%E6%95%B0%E6%8D%AE%E8%BF%81%E7%A7%BB%E5%AE%8C%E4%BA%86%EF%BC%8C%E6%B2%A1%E4%BA%BA%E6%95%A2%E5%85%B3%E6%97%A7%E7%B3%BB%E7%BB%9F&amp;url=/archives/legacy-data-migration-reconciliation" width="1" height="1" alt="" style="opacity:0;">迁移项目开工第一天，客户发来一个压缩包，说数据都在里面。导进去只用了一个下午，财务发现上个月的应收少了一万二千七百八十八，用了三个星期才问明白差在哪。迁移的验收，说了算的是客户财务签字确认的金额、总量和权限范围；Excel 的合并单元格、期初余额、旧单号、离职员工，每一件都能让这个签字拖到下周。]]></description><guid isPermaLink="false">/archives/legacy-data-migration-reconciliation</guid><dc:creator>杜恒</dc:creator><enclosure url="https://blog.qianyecube.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2Fcover-10.png&amp;size=m" type="image/jpeg" length="63471"/><category>技术沉淀</category><pubDate>Fri, 23 Oct 2026 15:38:16 GMT</pubDate></item><item><title><![CDATA[私有化部署的最小交付包，拔掉网线还能装起来才算]]></title><link>https://blog.qianyecube.cn/archives/privatization-deployment-minimal-package</link><description><![CDATA[<img src="https://blog.qianyecube.cn/plugins/feed/assets/telemetry.gif?title=%E7%A7%81%E6%9C%89%E5%8C%96%E9%83%A8%E7%BD%B2%E7%9A%84%E6%9C%80%E5%B0%8F%E4%BA%A4%E4%BB%98%E5%8C%85%EF%BC%8C%E6%8B%94%E6%8E%89%E7%BD%91%E7%BA%BF%E8%BF%98%E8%83%BD%E8%A3%85%E8%B5%B7%E6%9D%A5%E6%89%8D%E7%AE%97&amp;url=/archives/privatization-deployment-minimal-package" width="1" height="1" alt="" style="opacity:0;">内网机器不给出网，最小化镜像里没有 CA 证书和中文字体，jar 里的 native 库只带 x86_64，镜像 tag 写成 latest 到了离线环境就是一个陌生的镜像名。“在我机器上跑通了”这句话在客户机房里不值钱，介质、环境检查、库结构、密钥、升级和回滚，每缺一样都能让安装卡在当场。]]></description><guid isPermaLink="false">/archives/privatization-deployment-minimal-package</guid><dc:creator>杜恒</dc:creator><enclosure url="https://blog.qianyecube.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2Fcover-09.png&amp;size=m" type="image/jpeg" length="62572"/><category>技术沉淀</category><pubDate>Fri, 23 Oct 2026 15:38:16 GMT</pubDate></item><item><title><![CDATA[账不平时要能说出错在哪一层]]></title><link>https://blog.qianyecube.cn/archives/reconciliation-three-way-check-minimal-implementation</link><description><![CDATA[<img src="https://blog.qianyecube.cn/plugins/feed/assets/telemetry.gif?title=%E8%B4%A6%E4%B8%8D%E5%B9%B3%E6%97%B6%E8%A6%81%E8%83%BD%E8%AF%B4%E5%87%BA%E9%94%99%E5%9C%A8%E5%93%AA%E4%B8%80%E5%B1%82&amp;url=/archives/reconciliation-three-way-check-minimal-implementation" width="1" height="1" alt="" style="opacity:0;">只比渠道账单和我方订单，抓不到手续费漏记和分账记错。对账要能回答“错在哪一层”：渠道流水、业务订单、账户分录各对一次。下载地址 30 秒就失效、微信账单只给三个月、账单里的退款行出账后状态不再更新，而对账系统自己的失效方式是任务返回成功。]]></description><guid isPermaLink="false">/archives/reconciliation-three-way-check-minimal-implementation</guid><dc:creator>杜恒</dc:creator><enclosure url="https://blog.qianyecube.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2Fcover-08.png&amp;size=m" type="image/jpeg" length="58343"/><category>技术沉淀</category><pubDate>Fri, 23 Oct 2026 15:38:15 GMT</pubDate></item><item><title><![CDATA[分账的账要能倒推回去]]></title><link>https://blog.qianyecube.cn/archives/multi-merchant-split-settlement-account-entry-voucher</link><description><![CDATA[<img src="https://blog.qianyecube.cn/plugins/feed/assets/telemetry.gif?title=%E5%88%86%E8%B4%A6%E7%9A%84%E8%B4%A6%E8%A6%81%E8%83%BD%E5%80%92%E6%8E%A8%E5%9B%9E%E5%8E%BB&amp;url=/archives/multi-merchant-split-settlement-account-entry-voucher" width="1" height="1" alt="" style="opacity:0;">余额字段一旦能被 update，账就只能靠人工对平。账户管谁是主体、流水管动了多少、凭证管为什么动，三张表各管一件事。分账规则要带生效区间，退款要按原分录反向冲销，可用和冻结别做成一行两列。代收再结算算不算二次清算，这条线绕不开。]]></description><guid isPermaLink="false">/archives/multi-merchant-split-settlement-account-entry-voucher</guid><dc:creator>杜恒</dc:creator><enclosure url="https://blog.qianyecube.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2Fcover-07.png&amp;size=m" type="image/jpeg" length="60470"/><category>技术沉淀</category><pubDate>Fri, 23 Oct 2026 15:37:58 GMT</pubDate></item><item><title><![CDATA[支付回调出错时系统一声不吭]]></title><link>https://blog.qianyecube.cn/archives/payment-callback-idempotency-retry-reconciliation</link><description><![CDATA[<img src="https://blog.qianyecube.cn/plugins/feed/assets/telemetry.gif?title=%E6%94%AF%E4%BB%98%E5%9B%9E%E8%B0%83%E5%87%BA%E9%94%99%E6%97%B6%E7%B3%BB%E7%BB%9F%E4%B8%80%E5%A3%B0%E4%B8%8D%E5%90%AD&amp;url=/archives/payment-callback-idempotency-retry-reconciliation" width="1" height="1" alt="" style="opacity:0;">支付回调出错时不会报错。验签过了不等于认对了这一单，接口回了成功不等于账落了，退款受理不等于退成功，对账脚本解析出零行也照样返回成功。这些错全靠表结构和幂等键挡住。]]></description><guid isPermaLink="false">/archives/payment-callback-idempotency-retry-reconciliation</guid><dc:creator>杜恒</dc:creator><enclosure url="https://blog.qianyecube.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2Fcover-06.png&amp;size=m" type="image/jpeg" length="60332"/><category>技术沉淀</category><pubDate>Fri, 23 Oct 2026 14:56:21 GMT</pubDate></item><item><title><![CDATA[订单状态机：别用 status=1,2,3 糊弄]]></title><link>https://blog.qianyecube.cn/archives/order-status-column-is-not-a-state-machine</link><description><![CDATA[<img src="https://blog.qianyecube.cn/plugins/feed/assets/telemetry.gif?title=%E8%AE%A2%E5%8D%95%E7%8A%B6%E6%80%81%E6%9C%BA%EF%BC%9A%E5%88%AB%E7%94%A8%20status%3D1%2C2%2C3%20%E7%B3%8A%E5%BC%84&amp;url=/archives/order-status-column-is-not-a-state-machine" width="1" height="1" alt="" style="opacity:0;">订单状态那一列管得住“现在是什么”，管不住“谁把它改成的”“当时能不能改”“同一件事收到两次会怎样”。把 updateStatus(id, 3) 换成事件加守卫，改动量就是那十几处调用各自想清楚自己发的是哪个事件。]]></description><guid isPermaLink="false">/archives/order-status-column-is-not-a-state-machine</guid><dc:creator>杜恒</dc:creator><enclosure url="https://blog.qianyecube.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2Fcover-05.png&amp;size=m" type="image/jpeg" length="60772"/><category>技术沉淀</category><pubDate>Fri, 23 Oct 2026 06:55:21 GMT</pubDate></item><item><title><![CDATA[多租户系统最容易出事的 8 个位置]]></title><link>https://blog.qianyecube.cn/archives/multi-tenant-failure-points</link><description><![CDATA[<img src="https://blog.qianyecube.cn/plugins/feed/assets/telemetry.gif?title=%E5%A4%9A%E7%A7%9F%E6%88%B7%E7%B3%BB%E7%BB%9F%E6%9C%80%E5%AE%B9%E6%98%93%E5%87%BA%E4%BA%8B%E7%9A%84%208%20%E4%B8%AA%E4%BD%8D%E7%BD%AE&amp;url=/archives/multi-tenant-failure-points" width="1" height="1" alt="" style="opacity:0;">隔离模型选对了，租户条件仍然会从别的地方漏掉。缓存 key 少一段前缀，线程池里的上下文随着工作线程复用飘走，定时任务不带租户跑全表，搜索索引查询忘了 filter。八处的共同点不是层级深浅，是它们都绕开了你写好的那一层租户拦截器。按爆炸时间从上线第一天排到第一次月结。]]></description><guid isPermaLink="false">/archives/multi-tenant-failure-points</guid><dc:creator>杜恒</dc:creator><enclosure url="https://blog.qianyecube.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2Fcover-04.png&amp;size=m" type="image/jpeg" length="59760"/><category>技术沉淀</category><pubDate>Fri, 23 Oct 2026 06:55:21 GMT</pubDate></item><item><title><![CDATA[部门、门店、代理商，一张 sys_dept 表撑不住这三层]]></title><link>https://blog.qianyecube.cn/archives/org-store-channel-three-layers</link><description><![CDATA[<img src="https://blog.qianyecube.cn/plugins/feed/assets/telemetry.gif?title=%E9%83%A8%E9%97%A8%E3%80%81%E9%97%A8%E5%BA%97%E3%80%81%E4%BB%A3%E7%90%86%E5%95%86%EF%BC%8C%E4%B8%80%E5%BC%A0%20sys_dept%20%E8%A1%A8%E6%92%91%E4%B8%8D%E4%BD%8F%E8%BF%99%E4%B8%89%E5%B1%82&amp;url=/archives/org-store-channel-three-layers" width="1" height="1" alt="" style="opacity:0;">需求说“要加门店”，开发在 sys_dept 上加了一列 type，两行代码当天上线。三个月后加代理商，type 多个值；半年后要求门店同时归区域运营、归总部核算，parent_id 只有一个。行政组织、经营单元、外部主体这三层的差别不在层级深浅，在于谁需要历史、谁会算钱、谁是外部人。]]></description><guid isPermaLink="false">/archives/org-store-channel-three-layers</guid><dc:creator>杜恒</dc:creator><enclosure url="https://blog.qianyecube.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2Fcover-03.png&amp;size=m" type="image/jpeg" length="61283"/><category>技术沉淀</category><pubDate>Fri, 23 Oct 2026 06:55:08 GMT</pubDate></item><item><title><![CDATA[权限系统：RBAC 不够用的地方，数据权限怎么补]]></title><link>https://blog.qianyecube.cn/archives/rbac-data-permission</link><description><![CDATA[<img src="https://blog.qianyecube.cn/plugins/feed/assets/telemetry.gif?title=%E6%9D%83%E9%99%90%E7%B3%BB%E7%BB%9F%EF%BC%9ARBAC%20%E4%B8%8D%E5%A4%9F%E7%94%A8%E7%9A%84%E5%9C%B0%E6%96%B9%EF%BC%8C%E6%95%B0%E6%8D%AE%E6%9D%83%E9%99%90%E6%80%8E%E4%B9%88%E8%A1%A5&amp;url=/archives/rbac-data-permission" width="1" height="1" alt="" style="opacity:0;">一句“销售只能看自己的客户”，里面藏着行、列、入口、失效四个判定，RBAC 一个都答不了。这篇讲数据范围怎么落成一条 SQL、@DataScope 这类拼法会在哪一层漏、成本价为什么会整整齐齐出现在导出的 Excel 里，以及为什么详情接口是行级权限最大的口子。]]></description><guid isPermaLink="false">/archives/rbac-data-permission</guid><dc:creator>杜恒</dc:creator><enclosure url="https://blog.qianyecube.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2Fcover-02.png&amp;size=m" type="image/jpeg" length="61726"/><category>技术沉淀</category><pubDate>Fri, 23 Oct 2026 06:55:08 GMT</pubDate></item><item><title><![CDATA[多租户不是加一个 tenant_id：三种隔离模型与选型]]></title><link>https://blog.qianyecube.cn/archives/multi-tenant-isolation-models</link><description><![CDATA[<img src="https://blog.qianyecube.cn/plugins/feed/assets/telemetry.gif?title=%E5%A4%9A%E7%A7%9F%E6%88%B7%E4%B8%8D%E6%98%AF%E5%8A%A0%E4%B8%80%E4%B8%AA%20tenant_id%EF%BC%9A%E4%B8%89%E7%A7%8D%E9%9A%94%E7%A6%BB%E6%A8%A1%E5%9E%8B%E4%B8%8E%E9%80%89%E5%9E%8B&amp;url=/archives/multi-tenant-isolation-models" width="1" height="1" alt="" style="opacity:0;">多租户不是加个 tenant_id 就完了。共享表、独立 schema、独立库，三种模型的成本和失效方式不一样。这篇按 Spring Boot + MySQL 讲我怎么选、怎么落地，以及异步、定时任务、MQ、导出这些地方怎么漏。]]></description><guid isPermaLink="false">/archives/multi-tenant-isolation-models</guid><dc:creator>杜恒</dc:creator><enclosure url="https://blog.qianyecube.cn/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=%2Fupload%2Fcover-01.png&amp;size=m" type="image/jpeg" length="63923"/><category>技术沉淀</category><pubDate>Thu, 22 Oct 2026 01:00:00 GMT</pubDate></item></channel></rss>