想加个洗碗机,但是放哪都不合适,不是有煤气管就是没下水。水槽洗碗机不知道行不行?客服说燃气灶下面也可以装?
想加个洗碗机,但是放哪都不合适,不是有煤气管就是没下水。水槽洗碗机不知道行不行?客服说燃气灶下面也可以装?
想加个洗碗机,但是放哪都不合适,不是有煤气管就是没下水。水槽洗碗机不知道行不行?客服说燃气灶下面也可以装?
想加个洗碗机,但是放哪都不合适,不是有煤气管就是没下水。水槽洗碗机不知道行不行?客服说燃气灶下面也可以装?
想加个洗碗机,但是放哪都不合适,不是有煤气管就是没下水。水槽洗碗机不知道行不行?客服说燃气灶下面也可以装?
想加个洗碗机,但是放哪都不合适,不是有煤气管就是没下水。水槽洗碗机不知道行不行?客服说燃气灶下面也可以装?
想加个洗碗机,但是放哪都不合适,不是有煤气管就是没下水。水槽洗碗机不知道行不行?客服说燃气灶下面也可以装?
想加个洗碗机,但是放哪都不合适,不是有煤气管就是没下水。水槽洗碗机不知道行不行?客服说燃气灶下面也可以装?
想加个洗碗机,但是放哪都不合适,不是有煤气管就是没下水。水槽洗碗机不知道行不行?客服说燃气灶下面也可以装?
想加个洗碗机,但是放哪都不合适,不是有煤气管就是没下水。水槽洗碗机不知道行不行?客服说燃气灶下面也可以装?
想加个洗碗机,但是放哪都不合适,不是有煤气管就是没下水。水槽洗碗机不知道行不行?客服说燃气灶下面也可以装?
想加个洗碗机,但是放哪都不合适,不是有煤气管就是没下水。水槽洗碗机不知道行不行?客服说燃气灶下面也可以装?
想加个洗碗机,但是放哪都不合适,不是有煤气管就是没下水。水槽洗碗机不知道行不行?客服说燃气灶下面也可以装?
想加个洗碗机,但是放哪都不合适,不是有煤气管就是没下水。水槽洗碗机不知道行不行?客服说燃气灶下面也可以装?
想加个洗碗机,但是放哪都不合适,不是有煤气管就是没下水。水槽洗碗机不知道行不行?客服说燃气灶下面也可以装?
从 【sine】hermes多agent配置好了(含模型切换脚本) - 开发调优 / 开发调优, Lv1 - LINUX DO 来 之前一直理解的是bot to bot,说白了就是人跟总管交互,总管@各个相关agent开始任务,相关agent完成任务后@总管进行交付。 但是这种方式有极大地不稳定性,昨天看了站内一位佬的帖子,说hermes的kanban功能可以作为桥梁,遂开始实验。 现在agents角色基本没变,改成了以下逻辑: 所有agents(相关的)拉入飞书群组 用户只与总管agent交互(现在还是群组@总管,给她分配任务) 总管会根据任务进行kanban任务拆解,拆解完毕后的任务会进入hermes的kanban 相关agent会执行kanban里的任务,执行完毕后会群组里进行通知 另外,用户还可以群组里@各个agents,他们会单独群组内进行回复消息,互不影响 总管的system prompt: 改造后体感: 暂时达到了多角色团队的效果 token消耗量上升,但是可接受 后续优化方向: 开发agent计划接入codex cli,我已经使用kanban-codex-lane跑通 希望可以达到多角色讨论的效果,但是暂时没有方案 其他优化方向,待定 — 需要几个大项目考验之后总结优化方向 2 个帖子 - 2 位参与者 阅读完整话题
近日看到瑞幸上线了Skill, 它做的,就是把「点一杯咖啡」改造成 AI agent 能直接调用的工具。 flowchart A --> 2 个帖子 - 2 位参与者 阅读完整话题
苹果在 2026 年 WWDC 上宣布对 App Store 进行一次重要升级,通过新增订阅工具、个性化推荐以及营销能力,为开发者提供更多吸引用户和拓展业务的方式。 苹果表示,此次更新旨在帮助开发者在 App Store 上实现长期增长,其中一项重点是将订阅模式从“个人”扩展到“群组”和机构场景,覆盖团队、企业以及学校等用户类型。 开发者可利用最新的 StoreKit 2 功能推出群组订阅,由一名用户购买多个“席位”,再邀请其他成员加入同一订阅。 同时,订阅支持被引入 Apple Business Manager 和 Apple School Manager,方便企业和教育客户通过现有的设备管理体系成批采购订阅服务。 按计划,大规模采购功能将于今秋上线,群组订阅则将于今冬正式推出。 针对订阅销售模式,苹果还推出 App Store Bundles 和 Suites 两种新形式,允许多个开发者将各自的订阅打包,以优惠价格共同出售,或将多个服务组合成“套装”订阅,形成单独不可拆分的订阅包,以此提升价值感和留存率。 为了减少用户在取消订阅环节的流失,苹果引入了名为“Retention Messaging”的留存消息功能,允许应用在用户尝试取消订阅时展示定制化优惠或补充信息,帮助开发者挽留即将流失的订阅用户。 在产品展示和营销方面,苹果为开发者提供了更丰富的创意素材能力。新推出的 Creative Assets 功能允许开发者在 App Store 页面中使用更丰富的图片和视频,这些内容不仅可出现在产品页顶部,还可展示在搜索结果中,从而更突出地展示应用和游戏。 开发者可以通过全新的 Asset Library 在 App Store Connect 中统一管理和复用这些创意素材,用于不同的自定义产品页面和推广活动。 此外,苹果还允许开发者将这些推广素材与应用更新分开提审,降低每次营销活动对版本迭代节奏的影响。 面向用户侧,苹果正在 App Store 中加入新的推荐与解释机制,让推荐结果更加透明可理解。 新功能包括 Personalized Collections(个性化合集)和 App Notes(应用说明),系统会基于用户的下载记录和应用使用行为,逐步生成更符合个人兴趣的推荐内容。 App Notes 将解释某款应用为何会出现在推荐位置,而 Personalized Collections 则根据用户兴趣和活动整理出主题化的个性化应用集合。 这些功能已于 6 月 8 日率先在美国地区以英文形式上线,后续将扩展至更多语言和市场。 在审核和提交流程方面,苹果也做出调整以降低开发者运营成本。 开发者今后可以将多个应用内购买项目打包成一次 App 审核提交流程,而无需为每一项单独提交,简化了管理与审核工作。 与此同时,Mac App Store 不再要求应用兼容英特尔芯片 Mac,开发者可以选择仅面向 Apple Silicon 机型发布,从而免去维护 Intel 版本的额外负担。 部分 App Store 更新也与苹果在 iOS 27、iPadOS 27 以及 macOS 27 中推进的儿童与青少年保护举措相呼应。 新的 Time Allowance(时间配额)工具将帮助家长管理孩子在社交媒体、游戏和娱乐等不同应用类别上的使用时长。 为了配合这套系统,开发者需要在提交流程中提供更详细的应用社交功能信息,苹果将利用这些数据对应用进行更精细的分类,以便家长控制工具更准确地生效。 更新后的应用类别将贯穿 iOS 27、iPadOS 27 和 macOS 27,为多平台的使用时长管理提供统一基础。 通过本次 App Store 改造,开发者在订阅产品设计、用户留存、创意展示及营销推广等方面获得了更丰富的工具,而企业和教育客户也能够更方便地批量采购和管理订阅服务。 对普通用户而言,App Store 的应用推荐变得更加个性化且“可解释”,家长也将获得更细粒度的时间控制工具,以更好地管理孩子在各类应用上的使用体验。 查看评论
比对工具,我做老系统改造时唯一不省的东西 8 年里我反复总结过一句话: 老系统改造,新老两边的输出如果不能用工具自动 diff,就只能 靠人盯。靠人盯一定会漏。 漏的不是大 bug——大 bug 上线 1 小时就报警了。 漏的是那种"看起来对但不对"的——单跑任何一边都看不出来, 机器把全量数据 diff 一遍,问题才浮出来。 下面是 4 个例子,都是真实经历过的项目,做了脱敏。 例 1 · 订单类系统迁移的 dump 比对 上篇提过的"老语言迁到主流语言"的项目,跨 14 个月切完。 这 14 个月里整个迁移就靠一件事撑着: dump 比对 。 老系统的事件流 dump 一份,新系统的事件流 dump 一份, 每天定时跑 diff,差异写报表。 期间发现的 11 个"看起来对但不对"的 bug—— 全部是 diff 报表先发现,人后看到的 。 最典型的一类:同一个业务状态,老系统用字符串表达,新系统用 枚举表达,两边语义其实一样。下游消费方两套都能解析——直到 diff 报表跑出来"同一条记录两种表达",我们才意识到出了问题。 如果当时省了这套——切完后只会有一堆历史数据不一致, **到时只能选:全量重跑(代价大),或者认账(留坑)**。 例 2 · 聚合查询系统的跨结果表对账 某个聚合查询系统有 2 张结果表,逻辑上 1:1 对应。 跑了 5 年,某天我们顺手算了一下—— 有上千条核心业务记录在表 A 有,表 B 没有 。 是某个增量更新的边界 bug 。 不大,数据缺失也不影响主业务流程,所以 5 年没人发现。 后来加了个简单工具—— 每天 1 次,表 A vs 表 B 跑 diff,差异 > 阈值告警,告警里 带具体写入代码段的指针。 工具上线 1 周,问题暴露;3 周修完。 值得说的是:**前 5 年是"暴露不出来",不是"修不了"**。 代码本身一直在那,bug 不是隐蔽,是没人有手段看见它。 例 3 · 数据匹配的离线 vs 在线 diff 某个数据匹配场景有两条链路: 离线全量(每天凌晨重算所有匹配关系) 在线增量(数据有变更时,即时算) 逻辑上两条应该一致——但实际经常不一致。 我们的比对方式很简单:取 1% 数据,让两条链路同时跑同一份输入, diff 输出。每周大概能跑出 50-100 条不一致。 有意思的是: 这些不一致里只有 30-50% 是真 bug 。 剩下的是真实业务边界——比如某些场景在线已经能感知到、离线 还没扫到——这种"差异"是合理的,标"忽略"。 但 你必须能看到它,才有资格忽略它 。 没有这套工具的时候,我们以为两条链路一致;有了之后才发现:从来 就没一致过,只是没人在比。 例 4 · 多源数据合并时的字段分布对比 某个数据合并场景中,不同来源的数据语义不完全一致。 但 字段分布(枚举值频次 / 数值范围)是一种隐含约束 。 工具:合并前后跑同一个字段的分布,漂移 > 5% 就告警。 发现过一个特别隐蔽的 case—— 枚举值"未知"在 A 来源约定是 0,B 来源约定是 -1 。 单看代码看不出来,0 和 -1 都是合法值,谁也没写错。 但合并后字段分布告警立刻响:**"0"占比从 30% 降到 15%**—— 回头查,才看出两个来源的"未知"约定不一样。 字段分布对比有时比代码 review 更准—— 代码 review 看的是逻辑,字段分布看的是约定 。 不是 1 个工具,是 4 件配合用的事 很多人理解"比对工具"是写个脚本跑 diff—— 这是把比对工具理解小了 。 我经历的几次大改造,每一次都是这 4 件事一起做: ┌─────────────────────────────────────────┐ │ 老系统流量 新系统流量 │ │ │ │ │ └───────────┼──────────────────┼───────────┘ │ │ ▼ ▼ ┌──────────────────┐ ┌──────────────────┐ │ ① 数据快照 dump │ │ ① 数据快照 dump │ │ (独立存储) │ │ (独立存储) │ │ 解耦 / 毫秒级 / │ │ 字段冗余比节省强 │ │ 字段冗余 │ │ │ └─────────┬────────┘ └─────────┬────────┘ │ │ └─────────┬──────────┘ ▼ ┌──────────────────┐ │ ② diff 报表 │ ├──────────────────┤ │ ▸ 字段级:A.x≠B.x │ │ ▸ 结构级:有/无 │ │ ▸ 时间级:早/晚 N 秒│ └─────────┬────────┘ ▼ ┌──────────────────┐ │ ③ 告警分级 │ ├──────────────────┤ │ P1 关键字段差异 │ ──→ 立即告警 │ P2 非关键 > 阈值 │ ──→ 邮件 │ P3 时间级 < 容忍 │ ──→ 入归档 └─────────┬────────┘ ▼ ┌──────────────────┐ │ ④ 回溯链路 │ ├──────────────────┤ │ 报表保留 ≥ 30 天 │ │ 改动有版本号 / 时间戳│ │ 时间窗口反查 │ └─────────┬────────┘ ▼ 根因定位 "哪次改动引入的" ① 数据快照 dump 老新两边都要把关键事件 dump 到独立存储。 3 个细节: 跟主链路解耦(dump 故障不能影响业务) 时间戳精确到毫秒 字段冗余比节省强(多 dump 一些没坏处,少 dump 一个就废了) ② diff 报表 定时全量或采样跑 diff,差异分类: 字段级差异(A.x ≠ B.x) 结构级差异(A 有 B 没有) 时间级差异(A 早 B 晚 N 秒) 不分类的 diff 报表等于没看——一堆条目堆在那,人会习惯性忽略。 ③ 告警分级 不是所有 diff 都告警。 业务关键字段差异 → P1 立即告警 非关键字段差异 > 阈值 → P2 邮件 时间级差异 < 容忍窗口 → 入归档,不告警 不分级 = 全告警 = 等于没告警——3 天后没人看了。 ④ 回溯链路 发现 diff 后,要能定位 具体哪个改动引入的 。 要求: diff 报表至少保留 30 天 所有改动有版本号 / 时间戳 按时间窗口能反查 没有回溯能力的 diff,等于"看到 bug 但不知道怎么发生的"。 这 4 件事缺一件,比对工具就只是"看起来在比"。 什么时候不该做 也有反例。 某次小项目,1 个 service 重构,代码量不到 500 行。 我也想搞这套——leader 直接砍了:"投入 vs 产出比不合理。" 事后看是对的——那个 service 切完后没出过故障。 我大概的判断: 千行以内 / 周级别的小改造——别上,没必要 上万行 / 月级别以上的大改造——必上 中间档——看两件事:数据语义复杂吗?并跑会持续 1 个月以上吗? 任何一个"是",就上 写在最后 很多人会把"比对工具"归在测试的事—— 我倾向认为是改造方案的一部分。 测试问"这次发布有没有 bug"。 比对工具问"接下来这 N 个月,新老两边到底一不一致"。 看的时间尺度不一样。 而且时机很重要—— 比对工具要在切第一刀之前就上线 。 切完一半再加,你已经分不清"这条差异是改造带来的,还是早就存 在的"。 写到这,我也不太确定这套对所有团队都成立。 我经历的项目都是"业务相对稳定 + 改造期长 + 数据要追溯", 这种场景比对工具几乎是必修。 但如果是高速迭代的创业团队,搞这套可能反而是负担—— 这点我自己也还在想。 下一篇打算写 6 阶段验收 SOP—— 比对工具是其中第 4 阶段的核心 ,正好顺着接。 (以上 4 个例子都做了脱敏。 如果你做过老系统改造,欢迎评论区聊聊你们的比对工具长什么样, 特别想听 没搭比对工具直接切,后来踩过的坑 。)
干了 8 年业务系统,最后只剩一句话:能不重写就不重写 8 年时间,做过订单结算、比价、实体匹配、主数据治理 4 个领域。 最近整理过往项目时发现一个规律: 我做过的几次大改造,跨度 5 年, 没有一次是"推倒重来"成功 的——但全部"逐步替换"成功了 。 不是我胆小。是真的踩过坑。 最近带 mentee 时这个判断反复被问,所以想完整写一次。 1. 老订单系统从 .NET 迁到 Java 跨 2 年。 方式不是停掉老的、上线新的——是同时跑,新订单走新系统、老 订单仍走老系统,通过比对工具持续校验差异。 切流粒度很细。从 0.1% 灰度开始, 最小灰度颗粒到具体业务 ID 维度 ,最终切完用了 14 个月。 期间老系统改了 3 次,新系统改了 7 次, 两边互相对照修了 11 个"看起来对但不对"的 bug ——这种 bug 单独跑任何一边 都看不出来。 2. 比价系统的 Redis 重构 跨 1 年。 原系统有个增量更新机制,因为时间窗口判断 bug 导致比价数据 偶尔晚更新 30 秒,凌晨流量小时不易发现。 我没有重写整个 Redis 层。 只重写了"时间窗口判断"这一段 ——把它从老系统拆出来,做成独立模块,通过开关控制走新逻辑还 是旧逻辑。 灰度过程是常规节奏:1% → 10% → 30% → 50% → 100%, 每阶段保持 2-4 周观察。 总改动:老系统代码改了不到 200 行。新模块约 1500 行。 但是这 200 行让"凌晨偶发数据延迟"这个 5 年没解决的问题彻 底消失。 3. 实体匹配的 SOA 改造 跨 1.5 年。 原系统是单体,匹配规则散落在 4 个 service 里互相调用。 我没急着拆。 先把 4 个 service 之间的调用关系画成图 (drawio,约 60 个节点)——然后把每个调用边一条一条剪 掉,改成事件驱动。 不是一次性切——是一次切一条。每剪一条边,跑 1 周回归,确认 指标无变化,再剪下一条。 剪了 23 条边用了 11 个月 。期间老的同步调用代码一直没 删——新事件链路稳定 3 个月后才彻底清理。 4. 主数据治理整合 跨 1 年。 4 个团队的主数据库要合并成一个。常规做法是搞个"统一数据中 心",大家停 2 周迁移过去。 我们的做法: 老系统全部保留,只在中间加一层"主数据视图层" 。 A 团队看视图 V1,B 团队看视图 V2,但底层数据已经合并。 6 个月后,老库一个一个下线—— 因为没人在用了 。 这 4 件事的共同模式 不是"先想好架构再切一刀"。 是" 先切一刀,看能不能切得动,切不动退回去 "。 具体动作就 4 条: 把要改的东西 从大块切成小块 ——小到一周能做完 新老并存 ——不是切完老的再上新的,是两边一起跑 比对工具先做 ——不能比对的改动等于不存在 回滚开关比上线更优先 什么时候不该用这套? 我也踩过一次。 某个项目我用同样套路想做"渐进迁移"。结果发现: 新需求每周改一次 ,老系统跟新系统都得跟着改 改一处,要在 2 个系统都改,工作量翻倍 6 个月后老系统不仅没"自然死掉",反而变得更复杂 最后我们停了渐进迁移, 直接停 2 周做切换 ——结果反而很顺利。 事后总结: 当业务还在快速变化时,渐进迁移会拉长事故面 。 渐进式只适合"业务相对稳定、需要保留长期可对照"的场景。 写在最后 带 mentee 时最常说的一句话是: "先不要想架构图。先想第一刀切在哪、切错了怎么退回去。" 很多技术决策不是"什么是对的",是" 什么是可逆的 "。 可逆的方案,允许你在错的时候不死;不可逆的方案,要求你一开始 就对——但谁能保证一开始就对呢? (以上 4 个项目都做了脱敏处理。 如果你做过类似改造, 欢迎评论区聊聊你踩过的坑—— 我特别想知道你们行业里"渐进式不适用"的具体场景是什么。)