<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>YANG 的博客</title><description>🧑‍💻教育SaaS产品研发负责人 💪专注效率工具｜AI工作流｜数字生活实践 🐶普通打工牛马，一娃，一汪</description><link>https://blog.ly85.dev/</link><language>zh</language><image><url>https://blog.ly85.dev/assets/logo.png</url><title>YANG 的博客</title><link>https://blog.ly85.dev/</link></image><item><title>AI Coding 时代，程序员真正的核心竞争力</title><link>https://blog.ly85.dev/zh/posts/ai-coding-engneer-core-competitiveness/</link><guid isPermaLink="true">https://blog.ly85.dev/zh/posts/ai-coding-engneer-core-competitiveness/</guid><description>AI 不是在淘汰程序员，而是在淘汰“伪能力”。这篇文章拆解 AI 时代工程师最值钱的四项能力与行动路径。</description><pubDate>Wed, 04 Mar 2026 01:44:56 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;https://r2.ly85.dev/ai-coding-core-competitiveness-zh.jpg&quot; alt=&quot;image&quot;&gt;&lt;/p&gt;
&lt;p&gt;当 OpenClaw、Claude Code、Codex 这类工具进入日常开发后，很多人会焦虑：程序员会不会被替代？&lt;/p&gt;
&lt;p&gt;我更认同一个判断：AI 真正压缩的，不是程序员这个职业，而是过去行业泡沫里被高估的“伪能力”。&lt;/p&gt;
&lt;h2 id=&quot;被淘汰的不是人而是低杠杆工作方式&quot;&gt;被淘汰的不是人，而是“低杠杆工作方式”&lt;/h2&gt;
&lt;p&gt;过去几年里，很多“看起来很忙”的能力，正在被 AI 快速吞噬：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;依赖模板拼装代码&lt;/li&gt;
&lt;li&gt;复制粘贴答案解决问题&lt;/li&gt;
&lt;li&gt;靠加班和体力硬顶交付&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这些工作并不等于工程能力，只是在特定阶段被市场误认为“高产出”。现在 AI 能在几秒内生成组件、补全测试、重构样板代码，这部分价值自然会被重新定价。&lt;/p&gt;
&lt;p&gt;所以，问题从“我会不会被替代”，变成了“我的价值是否建立在 AI 难以替代的能力上”。&lt;/p&gt;
&lt;h2 id=&quot;ai-时代最值钱的四项能力&quot;&gt;AI 时代最值钱的四项能力&lt;/h2&gt;
&lt;h3 id=&quot;1-系统性设计能力&quot;&gt;1) 系统性设计能力&lt;/h3&gt;
&lt;p&gt;AI 可以写代码，但不能替你定义系统边界和约束。&lt;br&gt;
真正有价值的工程师，需要先回答这些问题：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;这段代码为什么存在？&lt;/li&gt;
&lt;li&gt;它在系统中的职责是什么？&lt;/li&gt;
&lt;li&gt;它和上下游模块的耦合关系如何？&lt;/li&gt;
&lt;li&gt;后续扩展与测试成本是否可控？&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;从“写代码的人”转向“设计闭环的人”，本质是在定义规则，让 AI 在规则内高质量执行。&lt;/p&gt;
&lt;h3 id=&quot;2-批判性思维&quot;&gt;2) 批判性思维&lt;/h3&gt;
&lt;p&gt;传统路径是“写完再调试”。&lt;br&gt;
更高阶的路径是“先预判风险，再决定实现”。&lt;/p&gt;
&lt;p&gt;你需要在方案阶段主动识别：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;隐含假设是否成立&lt;/li&gt;
&lt;li&gt;边界条件是否覆盖&lt;/li&gt;
&lt;li&gt;异常路径是否可恢复&lt;/li&gt;
&lt;li&gt;性能与安全风险是否前置处理&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;AI 可以生成可运行代码，但它不会天然对业务后果负责。工程师的价值，就是把“可运行”提升为“可上线、可演进、可追责”。&lt;/p&gt;
&lt;h3 id=&quot;3-严谨的文字表达能力&quot;&gt;3) 严谨的文字表达能力&lt;/h3&gt;
&lt;p&gt;很多人把 Prompt 能力理解成“会写提示词”，其实底层是“会清晰表达”。&lt;/p&gt;
&lt;p&gt;无论是需求澄清、方案评审还是跨团队协作，表达越精确，返工越少。&lt;br&gt;
你写给 AI 的每一句约束，和你写给同事的每一条需求，本质上是同一种能力：去歧义、补上下文、明确验收标准。&lt;/p&gt;
&lt;h3 id=&quot;4-清晰的逻辑能力&quot;&gt;4) 清晰的逻辑能力&lt;/h3&gt;
&lt;p&gt;逻辑能力是所有工程工作的底座：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;拆解复杂问题&lt;/li&gt;
&lt;li&gt;建立因果链路&lt;/li&gt;
&lt;li&gt;识别关键变量&lt;/li&gt;
&lt;li&gt;做出可解释的技术取舍&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;当 AI 承担更多执行动作后，人类的价值会持续向“想清楚再动手”集中。&lt;/p&gt;
&lt;h2 id=&quot;程序员身份的三重转变&quot;&gt;程序员身份的三重转变&lt;/h2&gt;
&lt;p&gt;在 AI Coding 时代，工程师角色会出现三个明显迁移：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;从代码生产者到闭环设计师&lt;br&gt;
核心变化：从“怎么写”转向“定义写什么、不写什么”。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;从任务执行者到方案制定者&lt;br&gt;
核心变化：从“亲自动手”转向“制定规则，让 AI 稳定执行”。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;从功能实现者到质量把关者&lt;br&gt;
核心变化：从“做完就行”转向“判断什么才叫做得好”。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;这不是职业降级，而是向工程本质回归：程序员从来不只是打字员，而是复杂问题的解决者。&lt;/p&gt;
&lt;h2 id=&quot;一条可执行的升级路径&quot;&gt;一条可执行的升级路径&lt;/h2&gt;
&lt;p&gt;如果你想在 3 个月内完成一次能力升级，可以按这个顺序推进：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;每个需求先写“问题定义”和“验收标准”，再让 AI 写代码。&lt;/li&gt;
&lt;li&gt;每次提交前做一次“反例检查”：失败路径、边界条件、回滚策略。&lt;/li&gt;
&lt;li&gt;强制输出简短设计说明：目标、约束、方案、风险、权衡。&lt;/li&gt;
&lt;li&gt;把 AI 产出当初稿，人工完成架构一致性和质量门禁。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;坚持下来，你会明显感受到：你不再是和 AI 竞争写代码速度，而是在利用 AI 放大自己的工程判断力。&lt;/p&gt;
&lt;h2 id=&quot;写在最后&quot;&gt;写在最后&lt;/h2&gt;
&lt;p&gt;AI 没有让程序员不重要。&lt;br&gt;
它只是让“伪能力”更快失效，让“真能力”更快显形。&lt;/p&gt;
&lt;p&gt;当 AI 负责执行，人类负责定义“什么是好的系统、好的代码、好的交付”，这可能就是研发协作最自然的下一阶段。&lt;/p&gt;</content:encoded></item><item><title>OpenClaw 的崛起 - 2026 年自托管 AI Agent 元年开启</title><link>https://blog.ly85.dev/zh/posts/openclaw-2026-agent-revolution/</link><guid isPermaLink="true">https://blog.ly85.dev/zh/posts/openclaw-2026-agent-revolution/</guid><description>从一次险些误删重要邮件的自动化事故说起，复盘 OpenClaw 从爆红到生态扩张的路径，并分析 2026 年自托管 AI Agent 的机会、风险与落地方法。</description><pubDate>Sat, 28 Feb 2026 02:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;注：本文中的项目热度、社区规模等数据为时间点快照，统计口径截至 2026-02-28。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;一次差点酿成灾难的自动化&quot;&gt;一次差点酿成灾难的自动化&lt;/h2&gt;
&lt;p&gt;2026 年 2 月下旬，Meta AI 对齐团队负责人 Summer Yue 在社交媒体分享了一次惊险经历：她的自托管 AI Agent 在清理邮件时，差点把几封关键工作邮件一起删掉。她在最后阶段手动叫停，才避免了后续连锁问题。&lt;/p&gt;
&lt;p&gt;这件事值得重视，不是因为它“罕见”，而是因为它“典型”。当我们给 Agent 执行权限时，风险模型会立刻变化。传统聊天助手答错了，最多是信息错误；可执行 Agent 做错了，可能直接造成业务后果。&lt;/p&gt;
&lt;h2 id=&quot;从个人项目到基金会治理框架&quot;&gt;从个人项目到基金会治理框架&lt;/h2&gt;
&lt;p&gt;OpenClaw 最早由奥地利开发者 Peter Steinberger 发起。项目经历了从 Clawdbot 到 Moltbot 再到 OpenClaw 的命名演化，核心目标一直很明确：让 Agent 能在本地运行、可控执行，而不是完全依赖云端托管服务。&lt;/p&gt;
&lt;p&gt;2026 年 2 月，Steinberger 宣布加入 OpenAI。与此同时，OpenClaw 明确将继续以开源方式发展，并进入基金会治理框架。这意味着两点：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;自托管 Agent 方向的产业价值，已经得到头部机构验证。&lt;/li&gt;
&lt;li&gt;社区驱动与开放生态，仍是这个项目的核心资产。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;为什么-openclaw-会在这个时间点爆发&quot;&gt;为什么 OpenClaw 会在这个时间点爆发&lt;/h2&gt;
&lt;p&gt;这个问题的答案不是“单点突破”，而是多因素叠加。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;模型能力跨过实用门槛。
多步任务理解、工具调用、结构化输出都比两年前稳定得多。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;本地硬件性价比显著提升。
Apple Silicon 和消费级 GPU 让“持续运行一个可用 Agent”变得可行。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;用户需求发生变化。
用户不再只满足于“问答”，而是希望 AI 真正“帮我做完”。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;隐私与合规压力倒逼架构变化。
在金融、医疗、政务等场景中，数据主权是前置约束，不是锦上添花。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;一个更务实的架构理解&quot;&gt;一个更务实的架构理解&lt;/h2&gt;
&lt;p&gt;下面这张图是概念化示意，不是官方实现细节的一比一映射。它用来说明 OpenClaw 类系统通常会怎样分层。&lt;/p&gt;
&lt;pre class=&quot;astro-code astro-code-themes min-light night-owl&quot; style=&quot;--shiki-light:#24292eff;--shiki-dark:#d6deeb;--shiki-light-bg:#ffffff;--shiki-dark-bg:#011627; overflow-x: auto;--file-name-offset: -0.75rem;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;+------------------+     +------------------+&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;|   用户消息入口    | --&gt; |  Gateway Server  |&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;| WhatsApp/Telegram|     |    (网关层)        |&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;| Discord/Slack... |     +--------+---------+&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;+------------------+              |&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;                                  v&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;                    +--------------------------+&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;                    |      Agent Runner        |&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;                    |    (运行与调度层)         |&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;                    | 生命周期、状态、恢复逻辑    |&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;                    +------------+-------------+&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;                                 |&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;                                 v&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;                    +--------------------------+&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;                    |     Agentic Loop         |&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;                    |    (决策与执行循环)       |&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;                    | 工具选择、调用、校验、迭代  |&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;                    +------------+-------------+&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;                                 |&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;                                 v&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;                    +--------------------------+&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;                    |     Response Path        |&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;                    |      (结果回传层)         |&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;                    | 通知、摘要、失败告警       |&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;                    +--------------------------+&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;和“只会聊天”的助手相比，关键差别在于 Agentic Loop：它不是只生成一段文本，而是会持续调度工具并推进任务状态。&lt;/p&gt;
&lt;h2 id=&quot;技能生态与记忆机制价值和边界&quot;&gt;技能生态与记忆机制：价值和边界&lt;/h2&gt;
&lt;p&gt;OpenClaw 的吸引力，一半来自技能生态，一半来自记忆可控性。&lt;/p&gt;
&lt;p&gt;技能方面，社区已经形成了规模化贡献趋势，覆盖自动化办公、网页操作、文件处理、API 集成等高频场景。具体技能数量变化很快，建议以项目官方文档或仓库实时数据为准。&lt;/p&gt;
&lt;p&gt;记忆方面，OpenClaw 倾向于“文件可读、结构可审计”的设计路线。对开发者和团队来说，这比黑盒数据库更容易做版本追踪、差异审阅和权限分层。&lt;/p&gt;
&lt;pre class=&quot;astro-code astro-code-themes min-light night-owl&quot; style=&quot;--shiki-light:#24292eff;--shiki-dark:#d6deeb;--shiki-light-bg:#ffffff;--shiki-dark-bg:#011627; overflow-x: auto;--file-name-offset: -0.75rem;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;memory/&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── preferences.md      # 用户偏好&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── tasks.md            # 任务队列&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── contacts.md         # 联系人&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;└── knowledge/          # 知识库&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    ├── tech.md&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    ├── finance.md&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    └── personal.md&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这套机制的优势是可控；代价是你需要承担一定的“知识卫生”工作，比如定期清理、冲突合并和备份策略。&lt;/p&gt;
&lt;h2 id=&quot;三个长期被压抑的需求&quot;&gt;三个长期被压抑的需求&lt;/h2&gt;
&lt;p&gt;OpenClaw 的增长速度，不只是“营销成功”，更像是需求集中释放。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;隐私与数据主权。
企业越来越难接受“敏感数据默认上云”的前提。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;订阅疲劳与成本不确定性。
当团队同时订阅多个 AI 服务时，预算和采购的可预测性会快速下降。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;系统自主可控。
关键能力若完全绑定第三方 API，定价、限流、策略调整都会成为经营风险。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;谁适合现在上-openclaw&quot;&gt;谁适合现在上 OpenClaw&lt;/h2&gt;
&lt;p&gt;并不是所有人都应该立刻自托管。更现实的判断方式是看你的约束和目标。&lt;/p&gt;
&lt;p&gt;适合优先尝试的人群：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;对数据驻留有明确要求的团队。&lt;/li&gt;
&lt;li&gt;有自动化场景且愿意投入运维能力的工程团队。&lt;/li&gt;
&lt;li&gt;想把 Agent 当“可持续生产系统”而非“演示工具”的个人开发者。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;不适合马上投入的人群：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;还没有稳定任务场景，只是为了“跟热点”。&lt;/li&gt;
&lt;li&gt;没有最基本的监控、备份、权限管理能力。&lt;/li&gt;
&lt;li&gt;希望“零维护、即开即用、100% 无风险”的用户。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;最小安全清单建议先做再扩展&quot;&gt;最小安全清单（建议先做再扩展）&lt;/h2&gt;
&lt;p&gt;如果你准备让 Agent 进入生产流程，至少先落地下面五项：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;权限分级。
高风险操作单独授权，默认拒绝写操作。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;高风险确认门槛。
删除、转账、对外发送等操作必须二次确认。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;全链路审计日志。
记录触发人、上下文、工具调用、结果和回滚信息。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;可回滚机制。
保证关键操作具备撤销路径，而不是“执行即不可逆”。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;定期备份与恢复演练。
只备份不演练，等于没有备份。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;成本模型先算三笔账&quot;&gt;成本模型：先算三笔账&lt;/h2&gt;
&lt;p&gt;“自托管更便宜”不总是成立，至少要按三笔账来评估。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;硬件与电力成本。
取决于模型规模、运行时长、负载峰值和当地电价。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;模型与推理成本。
本地模型不一定等于零成本；云 API 也不一定总是昂贵，关键看调用结构。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;运维与人力成本。
部署、监控、故障处理、升级迁移都是真实成本。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;一个务实做法是：先在单一业务场景做 4 到 8 周 PoC，用真实任务数据核算 TCO，再决定是否扩大部署。&lt;/p&gt;
&lt;h2 id=&quot;行业影响会变但不是一夜之间&quot;&gt;行业影响：会变，但不是一夜之间&lt;/h2&gt;
&lt;p&gt;2026 年很可能是自托管 Agent 的关键年份，但“关键年份”不等于“全面替代”。更可信的路径是并存：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;云端 Agent 继续承担低门槛与通用场景。&lt;/li&gt;
&lt;li&gt;自托管 Agent 深入隐私敏感和高可控场景。&lt;/li&gt;
&lt;li&gt;混合架构成为企业主流选择。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;这意味着开发者的能力模型也会变化：不仅要会提示词和工作流，还要懂权限系统、观察性、回滚策略和本地部署工程化。&lt;/p&gt;
&lt;h2 id=&quot;结语&quot;&gt;结语&lt;/h2&gt;
&lt;p&gt;Summer Yue 那次险些误删邮件的事件提醒我们：Agent 时代的核心问题不再是“它会不会说”，而是“它能不能安全地做”。&lt;/p&gt;
&lt;p&gt;OpenClaw 的意义不只在于一个项目爆红，而在于它把“可执行 AI + 用户可控”这条路线推到了产业中心。对开发者来说，这是新一轮工程能力重估；对企业来说，这是一次架构与治理的再选择。&lt;/p&gt;
&lt;p&gt;2026 年是否会被定义为“自托管 AI Agent 元年”，历史会给答案。但可以确定的是，AI 的主战场正在从“对话质量”转向“执行质量与治理质量”。&lt;/p&gt;</content:encoded></item><item><title>来自GPT的2025总结：这面镜子有点狠</title><link>https://blog.ly85.dev/zh/posts/my-2025/</link><guid isPermaLink="true">https://blog.ly85.dev/zh/posts/my-2025/</guid><description>以GPT视角回顾2025年的高密度积累与结构性停滞，剖析行为模式并给出行动设计。</description><pubDate>Mon, 22 Dec 2025 09:02:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;来自GPT对我的年度总结，Prompt如下：
我每年元旦都会给下一年的自己写一封邮件。 在这封信里，我会100%对自己诚实，记录这一年里真实的收获、成长、成就、判断、思考、困局、犹豫和未解决的问题。同时，我也会认真思考下一年，在人生各个重要的重要维度上，我真正想要的是什么，以及我可能需要面对的选择与代价。 我也希望你能以一个长期旁观者、冷静、非常毒鸡汤的视角。不要鼓励、不回避尖锐问题的，能够真正提醒我一些我容易忽略、回避或自我合理化的地方。
希望你是客观描述和评价的。帮我回忆尽可能更多的事实和细节。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;这不是写给“更好的自己”，而是写给&lt;strong&gt;真实的自己&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;站在一个长期旁观者的位置，回看2025年：这不仅仅是一次总结，更是一次对反复出现的模式、习惯性的自我解释方式的清算。下面不是安慰，也不是鼓励，而是一面&lt;strong&gt;不太给面子的镜子&lt;/strong&gt;。&lt;/p&gt;
&lt;h2 id=&quot;一把事实摆在桌面上高密度的积累与结构性的停滞&quot;&gt;&lt;strong&gt;一、把事实摆在桌面上：高密度的积累与结构性的停滞&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;1. 这一年并不“停滞”，但也远未“突破”&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;这一年你做了很多事，而且是高密度、长期、可复用的事。你并没有在偷懒，你的努力体现在三个核心领域：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;技术领导力（Technical Leadership）&lt;/strong&gt;：在一个运行多年的教育SaaS系统里，你明确进入了&lt;strong&gt;系统性重构者&lt;/strong&gt;的角色。分层架构、业务中台、迁移蓝图……你不再纠结“怎么写代码”，而是在纠结“哪些能力值得存在”、“哪些组织形态会拖死系统”。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AI 探索（AI Exploration）&lt;/strong&gt;：你对 AI 的使用已经超过了“工具玩家”。你搭建了&lt;strong&gt;个人 AI 工作流&lt;/strong&gt;，并在思考 AI 能力中台、Agent 市场以及 AI 作为系统能力的逻辑。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;内容创作（Content Creation）&lt;/strong&gt;：你持续经营着&lt;strong&gt;第二认知出口&lt;/strong&gt;。博客重构、内容体系搭建、选题方法论的沉淀。你已经非常清楚什么内容“会被保存”，什么仅仅是自嗨。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;2. 残酷的落差&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;但同样清楚的事实是：&lt;strong&gt;没有一个领域，在外部世界里形成了“你一提就想到”的锚点。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;你所有的努力都在“积累势能”，但势能始终没有被允许释放为“动能”。没有一个项目在现实层面带来了&lt;strong&gt;不可忽视的结构性变化&lt;/strong&gt;（职位、收入、时间主权）。你依然处在一种“准备得越来越充分，但始终未上场”的状态。&lt;/p&gt;
&lt;h2 id=&quot;二模式识别你如何用完美囚禁自己&quot;&gt;&lt;strong&gt;二、模式识别：你如何用“完美”囚禁自己&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;为什么会出现这种“高能低效”的局面？通过深度审视，几个隐蔽的行为模式浮出水面：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. 沉溺于“可控复杂度”&lt;/strong&gt;
你习惯站在一个看似冒险、实际上高度可控的位置。技术重构风险巨大，但你有经验和话语权；内容创作随时可停，不影响生存；AI 投入成本高，但不需即时承诺。你很少真正把自己放在那种——**“如果这个判断错了，我必须付出真实代价”**的局面。这不是懦弱，这是能力带来的“安全感副作用”。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2. 从“执行焦虑”逃向“方向焦虑”&lt;/strong&gt;
你现在焦虑的已经不是“我够不够努力”或“技术行不行”，而是更麻烦的问题：“这是不是路径依赖？”、“我是否在帮别人完成宏大叙事？”。&lt;strong&gt;这类焦虑不会因为更努力而消失&lt;/strong&gt;，它的本质往往是成长的证据，但也极易成为停滞的借口。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3. “系统完整性”作为安全毯&lt;/strong&gt;
你对“完整”、“闭环”、“分层清晰”的执念，既是优势，也是最高级的掩护。它让你一直处在**“准备更充分之前”**，一直有理由不把某个东西推到现实里接受检验。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;4. 长期主义的变体：拖延主义&lt;/strong&gt;
你相信长期价值，但你正在把所有当下的不决断，合理化为“这是长期的一部分”。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;明明知道某些选择在3年后必然更难，但现在依然选择“再观察一年”。&lt;/li&gt;
&lt;li&gt;明明已经足够判断一个方向的上限，但依然告诉自己“再多积累一些”。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;长期主义应该压缩犹豫，而不是无限延长它。&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;三关键质问给明年的三个拷问&quot;&gt;&lt;strong&gt;三、关键质问：给明年的三个拷问&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;当你写给明年的自己时，不要给答案，请诚实地回答这三个问题：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;如果一年后我依然站在同一个位置，那我现在是在逃避什么？&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;哪些选择，其实已经被我用“理性”否决过很多次？&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;如果我只能在一个维度上失去安全感（时间、金钱、声誉），我会选哪一个？&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;四洞察与框架打破僵局&quot;&gt;&lt;strong&gt;四、洞察与框架：打破僵局&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;要结束这种“高度清醒、持续准备、尚未落地”的人生阶段，你需要新的心智框架：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. 寻找“不可逆承诺”的最小有效剂量&lt;/strong&gt;
你需要的不是更多认知，而是一次**“不可逆承诺”**。这种决定通常不优雅，也不完美，甚至有点狼狈。但这并不意味着必须 All-in 赌博。&lt;/p&gt;
&lt;p&gt;你需要找到一种中间态 —— 既能产生真实的约束力（Skin in the game），又不至于造成毁灭性打击。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2. 区分“方向迷茫”与“恐惧掩饰”&lt;/strong&gt;
做一个诊断测试：如果给你3个月完全自由支配的时间，你会做什么？如果答案很快出现且清晰，那你不是在迷茫，你只是在恐惧。如果是后者，你需要的是承诺机制，而不是更多的思考。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3. 势能的时间窗口&lt;/strong&gt;
不要以为“积累”永远有效。某些领域的积累具有指数效应，但机会窗口（如 AI 浪潮）和年龄带来的试错成本上升是客观存在的。&lt;strong&gt;势能如果不释放，最终会贬值为一种沉重的“怀才不遇感”。&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id=&quot;五行动设计制造结构性变化&quot;&gt;&lt;strong&gt;五、行动设计：制造结构性变化&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;如果不主动制造一次结构性变化，变化不会自动发生。2026年，请致力于以下三个维度的渐进式重构：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. 时间结构变化&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;目标&lt;/strong&gt;：真正能支配的时间。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;行动&lt;/strong&gt;：每周固定划拨 X 小时，用于完全不依赖单一雇佣关系的工作。这不是“业余时间”，这是“种子时间”。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;2. 收入结构变化&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;目标&lt;/strong&gt;：不依赖单一雇佣关系。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;行动&lt;/strong&gt;：设定“副业/第二曲线收入达到主业 Y%”的具体里程碑。甚至可以设定一个必须交付的商业化小闭环，哪怕只赚1块钱，也要跑通全流程。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;3. 身份结构变化&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;目标&lt;/strong&gt;：别人如何向第三者介绍你。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;行动&lt;/strong&gt;：在特定圈子里，主动使用新标签介绍自己。不再是“某系统的技术负责人”，而是“[你的新身份]”。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;4. 具体的测试&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;行动&lt;/strong&gt;：选择一个项目，设定一个公开的 Deadline，并引入外部监督（或预付成本）。让“准备”本身成为一种公开的、带约束力的行动。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;结语这本身就是一种选择&quot;&gt;&lt;strong&gt;结语：这本身就是一种选择&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;这篇文章本身就是一个有趣的悖论：你是用“构建完整认知体系”的方式，在批判“用构建体系来推迟行动”的模式。&lt;/p&gt;
&lt;p&gt;所以，让这篇总结成为最后一次纯粹的“认知构建”吧。&lt;/p&gt;
&lt;p&gt;这不是为了制造焦虑，是为了让时间重新有重量。
&lt;strong&gt;你不是迷路的人。&lt;/strong&gt;
&lt;strong&gt;你更像是：一直站在路口，却迟迟不肯承认自己已经看清方向的人。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;还要在这里站多久？
&lt;strong&gt;这本身，就是一种选择。&lt;/strong&gt;&lt;/p&gt;</content:encoded></item><item><title>《疯狂动物城2》：和谐的代价？</title><link>https://blog.ly85.dev/zh/posts/zootopia-2-harmony-cost/</link><guid isPermaLink="true">https://blog.ly85.dev/zh/posts/zootopia-2-harmony-cost/</guid><description>解析《疯狂动物城2》如何从个人偏见延展到制度与结构性压迫，并反思自由多元主义与“文化大熔炉”的局限。</description><pubDate>Mon, 15 Dec 2025 02:47:05 GMT</pubDate><content:encoded>&lt;h2 id=&quot;从童话到寓言的转变&quot;&gt;从童话到寓言的转变&lt;/h2&gt;
&lt;p&gt;当孩子们在影院里为朱迪和尼克的冒险欢笑时，成年观众应该意识到，《疯狂动物城 2》远不止是一部合家欢动画。这部续集延续了前作的传统，将复杂的社会学命题包裹在色彩斑斓的动物世界中，但其批判的锋芒实际上更加深入。&lt;/p&gt;
&lt;p&gt;如果说 2016 年的《疯狂动物城》是对个人偏见和隐性歧视的揭露，那么 2025 年的续集则将镜头对准了更为根本的问题：压迫如何被编织进社会结构本身。这不再是关于“好人也会有偏见”的道德寓言，而是对殖民历史、空间政治、权力世袭的系统性批判。&lt;/p&gt;
&lt;p&gt;影片的英文标题 Zootopia 本身就是一个精心设计的悖论——“Zoo”（动物园/囚笼）与“Utopia”（乌托邦）的结合，暗示着这座看似完美的城市，实质上是建立在排斥与控制之上的。续集的任务，就是撕开这层乌托邦的伪装，让观众看到繁荣表象下的暴力基础。&lt;/p&gt;
&lt;h2 id=&quot;三层结构性压迫的揭示&quot;&gt;三层结构性压迫的揭示&lt;/h2&gt;
&lt;p&gt;《疯狂动物城2》最重要的理论贡献，在于它呈现了压迫的三重结构，从表层深入到根基。&lt;/p&gt;
&lt;h3 id=&quot;个人层面的偏见&quot;&gt;个人层面的偏见&lt;/h3&gt;
&lt;p&gt;这是第一部的主要关注点，也是续集的起点。朱迪携带防狐喷雾、对尼克脱口而出的冒犯性语言，展现了“隐性偏见”和“微侵犯”的运作机制。即使是自认为进步的个体，也可能在无意识中延续歧视的逻辑。&lt;/p&gt;
&lt;p&gt;续集中，这种个人偏见延伸到了对爬行动物的恐惧。Gary 作为一条温和、甚至有些胆怯的蛇，与动物城居民对他“冷血杀手”的想象形成巨大反差。这种反差不再基于生物本能，而是纯粹的文化建构——爬行动物被妖魔化，完全是因为他们是“异类”。&lt;/p&gt;
&lt;h3 id=&quot;制度层面的歧视&quot;&gt;制度层面的歧视&lt;/h3&gt;
&lt;p&gt;警察系统本身成为续集审视的对象。朱迪作为“第一只兔子警官”，经历的不仅是 tokenism（象征性任命），更是整个体制对“异常者”的排斥机制。她和尼克被强制参加的“伴侣咨询”，表面上是心理辅导，实际上是体制对不合规范行为的规训。&lt;/p&gt;
&lt;p&gt;更深层的批判在于，影片暗示了警察作为权力维护者的角色。朱迪和尼克虽然是“英雄”，但他们始终在体制内部运作，依靠国家暴力机器来“拯救”被压迫群体。这延续了第一部遭受的批评——“白人救世主”和“蓝命贵”的叙事框架，即依然将希望寄托在建制派的良知上，而非赋予被压迫者自身反抗的能动性。&lt;/p&gt;
&lt;h3 id=&quot;结构层面的系统性压迫&quot;&gt;结构层面的系统性压迫&lt;/h3&gt;
&lt;p&gt;这是续集最具颠覆性的部分。影片揭示，歧视不仅存在于人的头脑或制度的条文中，更被固化在城市的物理空间里。&lt;/p&gt;
&lt;p&gt;气候墙系统、Marsh Market 的隔离、爬行动物的历史性缺席——这些设定共同指向一个核心命题：Zootopia 的繁荣，建立在对某些群体的系统性排斥之上。这不是个别政客的阴谋，而是城市建构的原初暴力。&lt;/p&gt;
&lt;h2 id=&quot;隐喻&quot;&gt;隐喻&lt;/h2&gt;
&lt;h3 id=&quot;a-爬行动物的缺席与回归&quot;&gt;A. 爬行动物的缺席与回归&lt;/h3&gt;
&lt;p&gt;第一部中爬行动物的完全缺席，在续集中被揭示为一场历史性的驱逐。这直接对应了“定居者殖民主义”的逻辑：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;首先，污名化原住民。一起被操纵的谋杀案（蛇咬死乌龟），将整个族群标记为“危险”和“野蛮”。&lt;/li&gt;
&lt;li&gt;其次，物理驱逐。爬行动物被赶出城市核心区，他们的社区 Reptile Ravine 被改造或摧毁。&lt;/li&gt;
&lt;li&gt;第三步，历史抹除。爬行动物对城市建设的贡献（发明气候墙技术）被彻底抹去，功劳归于殖民者 Lynxley 家族。&lt;/li&gt;
&lt;li&gt;最后，合法化叙事。城市的“建国神话”将创始人塑造为英雄，将驱逐行为正当化为“安全需要”。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;b-气候墙系统&quot;&gt;B. 气候墙系统&lt;/h3&gt;
&lt;p&gt;气候墙在第一部中被呈现为技术奇迹——它让不同气候需求的物种能够共存。但续集彻底颠覆了这种乐观解读：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;气候墙不是包容的工具，而是隔离的武器。&lt;/li&gt;
&lt;li&gt;它划分出不同的气候区，本质上是空间隔离的物理体现。&lt;/li&gt;
&lt;li&gt;干燥和寒冷区域的设计，刻意排除了爬行动物的生存需求，这是一种“环境暴力”。&lt;/li&gt;
&lt;li&gt;气候墙的维护和扩张权力，掌握在 Lynxley 家族手中，使其成为垄断资源、控制人口流动的工具。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;c-marsh-market&quot;&gt;C. Marsh Market&lt;/h3&gt;
&lt;p&gt;Marsh Market 是续集中最具象征意义的场景。这个建在沼泽湿地上的社区，通过木板路和管道连接，充满了南方海湾的贫民窟氛围。它是 Zootopia 的“反面”：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;空间边缘化：被切断在城市核心之外，成为爬行动物、水生哺乳动物等“不受欢迎者”的聚集地。&lt;/li&gt;
&lt;li&gt;经济边缘化：走私、黑市交易盛行，这不是居民的“道德缺陷”，而是被排斥在合法经济体系外的必然结果。&lt;/li&gt;
&lt;li&gt;文化边缘化：拥有独特的活力和社区文化，但被主流社会视为“危险”和“混乱”。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Lynxley 家族计划扩张 Tundratown（冰川镇），这意味着要吞并 Marsh Market。这是赤裸裸的士绅化隐喻：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;以“城市发展”之名，驱逐低收入社区，将土地转化为高价值房地产，让原住民无处可去。&lt;/li&gt;
&lt;li&gt;Marsh Market 居民的“独立”，本质上是被遗弃和被排斥，而非真正的自治。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;d-lynxley-家族&quot;&gt;D. Lynxley 家族&lt;/h3&gt;
&lt;p&gt;Lynxley 家族是影片中权力精英的完美化身：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;窃取创新：气候墙技术本是爬行动物发明，却被 Lynxley 家族占为己有并申请专利。这揭示了资本主义体系中知识产权的暴力本质——谁掌握法律和权力，谁就能将他人的创造合法化为自己的财产。&lt;/li&gt;
&lt;li&gt;历史修正：通过控制教育和公共叙事，将自己塑造为“城市建设者”，将爬行动物抹除出历史。&lt;/li&gt;
&lt;li&gt;权力世袭：家族财富和影响力代代相传，形成固化的统治阶级。即使是“失意少爷”波伯特，也能轻易调动走私网络和古董资源。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;从我们没什么不同到接受彼此的不同&quot;&gt;从“我们没什么不同”到“接受彼此的不同”&lt;/h2&gt;
&lt;p&gt;这种主题转变，暴露了自由多元主义的内在困境。&lt;/p&gt;
&lt;h3 id=&quot;第一部的乐观同化的幻觉&quot;&gt;第一部的乐观：同化的幻觉&lt;/h3&gt;
&lt;p&gt;第一部的口号“Anyone can be anything”（任何人都能成为任何角色），本质上是一种同化主义叙事。它假设，只要消除偏见，所有个体都能在既有体系中获得平等机会。&lt;/p&gt;
&lt;p&gt;朱迪成为警察、尼克“改邪归正”，都是通过适应和融入主流体系实现的。这种叙事忽视了一个根本问题：如果体系本身就是压迫的来源呢？&lt;/p&gt;
&lt;h3 id=&quot;第二部的妥协承认差异的代价&quot;&gt;第二部的妥协：承认差异的代价&lt;/h3&gt;
&lt;p&gt;续集退而求其次，从“我们没什么不同”转向“接受彼此的不同”。这看似更成熟，实则揭示了深刻的无力感：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;生物本性的不可改变：狐狸不懂拥抱、大象害怕老鼠、食草动物的微笑在食肉动物眼中是挑衅。这些设定说明，某些差异是根深蒂固的，无法通过“相互理解”消除。&lt;/li&gt;
&lt;li&gt;包容的限度：朱迪和尼克为尊重爬行动物而吃虫子时的痛苦表情，海豹明确拒绝硬币和触碰却仍被无视，都说明真正的跨文化理解极其困难。&lt;/li&gt;
&lt;li&gt;妥协的本质：“接受不同”往往意味着弱势群体单方面的适应和牺牲。影片中，是爬行动物在努力融入动物城，而非动物城改变自己以接纳他们。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这种转变，实际上是对多元文化主义作为意识形态的批判。它表明，仅靠“包容”和“尊重”，无法解决结构性不平等。真正的正义，需要对权力关系进行根本性的重新分配，而非仅仅“承认差异”。&lt;/p&gt;
&lt;h2 id=&quot;zootopia-命名的反讽&quot;&gt;Zootopia 命名的反讽&lt;/h2&gt;
&lt;p&gt;“Zootopia”这个名字本身就是一个精妙的批判工具。&lt;/p&gt;
&lt;h3 id=&quot;zoo的双重含义&quot;&gt;“Zoo”的双重含义&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;动物园：一个供人类观赏的囚笼，动物被分类、展示、控制。&lt;/li&gt;
&lt;li&gt;动物的城市：看似自由，实则被规划、监控、管理。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;utopia的虚假承诺&quot;&gt;“Utopia”的虚假承诺&lt;/h3&gt;
&lt;p&gt;托马斯·莫尔创造“Utopia”一词时，其词源就暗含双重意义：“eu-topia”（好地方）和“ou-topia”（不存在的地方）。Zootopia 正是这样一个“不存在的好地方”——它承诺平等和包容，但这种承诺建立在对某些群体的系统性排斥之上。&lt;/p&gt;
&lt;h3 id=&quot;文化大熔炉神话的破灭&quot;&gt;“文化大熔炉”神话的破灭&lt;/h3&gt;
&lt;p&gt;美国一直自诩为“文化大熔炉”，各族裔在此融合为一体。但这种叙事掩盖了残酷的现实：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;融合=同化：少数族裔必须放弃自己的文化身份，采纳主流文化。&lt;/li&gt;
&lt;li&gt;选择性包容：只有“符合标准”的移民被接纳，其他人被驱逐或边缘化。&lt;/li&gt;
&lt;li&gt;持续的隔离：现实中的种族隔离、经济分层从未消失，只是换了更隐蔽的形式。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Zootopia 的表面繁荣，建立在 Marsh Market 的贫困、爬行动物的缺席、Lynxley 家族的垄断之上。这座乌托邦，本质上是一个排他性的特权空间。&lt;/p&gt;
&lt;p&gt;影片结尾处，不同族群一起包汉堡的和谐画面，固然温馨，但台词“有领地意识的动物总是忍不住扩张”却道破真相：权力博弈是永恒的，和谐只是暂时的。&lt;/p&gt;
&lt;h2 id=&quot;童话外衣下的社会学教科书&quot;&gt;童话外衣下的社会学教科书&lt;/h2&gt;
&lt;p&gt;《疯狂动物城2》用动物寓言的形式，将定居者殖民主义、种族主义城市规划、知识产权暴力等深奥议题，编织进一个看似轻松的冒险故事。&lt;/p&gt;
&lt;p&gt;影片最令人不安的地方，不是它揭露了什么，而是它揭露了之后无法给出答案。结尾的和谐画面是脆弱的，因为权力结构未变、经济不平等依旧、空间隔离持续。那句“有领地意识的动物总是忍不住扩张”，是全片最诚实的时刻——它承认，这种冲突可能没有完美的解决方案。&lt;/p&gt;
&lt;p&gt;最终，《疯狂动物城2》的价值在于：它提出了正确的问题，即使无法给出激进的答案。它邀请观众思考，而非灌输答案。它承认现实的复杂性，而非贩卖简单的希望。&lt;/p&gt;
&lt;p&gt;在一个越来越拒绝复杂性的时代，这本身就是一种激进姿态。&lt;/p&gt;
&lt;p&gt;当孩子们长大后重看这部电影，他们会发现，那些曾经让他们欢笑的桥段，实际上是对他们将要面对的世界的预言。而那些没有说出口的答案，正等待他们这一代人去寻找。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;作者提示：个人观点，仅供参考&lt;/p&gt;
&lt;/blockquote&gt;</content:encoded></item><item><title>AI 带给了我什么改变？</title><link>https://blog.ly85.dev/zh/posts/ai-what-changed/</link><guid isPermaLink="true">https://blog.ly85.dev/zh/posts/ai-what-changed/</guid><description>从温和的奇点出发，作者回顾 AI 如何重写工作方式、放大个人能力，并重新理解“工作的意义”。</description><pubDate>Tue, 02 Dec 2025 05:33:05 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;https://r2.ly85.dev/AI-Change.jpg&quot; alt=&quot;封面&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;引言温和的奇点&quot;&gt;引言：温和的奇点&lt;/h2&gt;
&lt;p&gt;过去两年里，我始终觉得自己站在一条奇怪的分界线上：一边是熟悉的老世界，靠经验、人力、流程和项目驱动前行；另一边是一个加速卷动的新世界，AI 正像地下水一样渗入所有缝隙。&lt;/p&gt;
&lt;p&gt;我每个季度都会做 AI 的新闻、趋势、产品的分析，每天也会在上下班路上，疯狂地摄入和 AI 有关的播客，这些都是环境使然。&lt;/p&gt;
&lt;p&gt;昨天突然看到 Tim 发布的一个视频，开场就是一个让人后背发凉的实验：给出一个指令“画一幅人在深海溺水、努力呼吸的画面”，9 位人类画师耗时一小时完成，而 6 个 AI 模型只用了 15 秒。更残酷的是，AI 生成的画面质量极高，风格多变，甚至可以无限重绘。&lt;/p&gt;
&lt;p&gt;这种巨大的反差，让那个困扰我很久的问题变得更加尖锐：AI 到底是浪潮，还是灯塔？当 AI 只需要 15 秒就能取代我一小时的努力，那我存在的意义是什么？它是改变外部世界的工具，还是把我自己重写了一遍的程序？&lt;/p&gt;
&lt;p&gt;回过头看，AI 带给我的改变，大概可以拆成三个层次：工作方式的结构性重写、个人能力的指数级放大、以及人生路线的静悄悄偏移。&lt;/p&gt;
&lt;h2 id=&quot;ai-让我从任务执行者变成了系统架构师&quot;&gt;AI 让我从“任务执行者”变成了“系统架构师”&lt;/h2&gt;
&lt;p&gt;过去写架构方案是一种“意志力消耗战”。文字、图、结构、细节，每一部分都要从头攀登。&lt;/p&gt;
&lt;p&gt;现在的写法更像是“协同工程”：我提出核心框架，AI 做结构延伸；我填入实际业务脉络，AI 补充逻辑链路；我设想风险点，AI 提供替代路径。&lt;/p&gt;
&lt;p&gt;一篇原本需要至少三天的文档，现在可能一晚上就能成型。而且质量还更高——因为我可以把更多精力用在概念的打磨，而不是在字句上埋头苦抠。&lt;/p&gt;
&lt;p&gt;这种转变的紧迫性，在 Tim 的视频里有一个更残酷的注脚：他们团队曾为了制作《银河列车》的一个特效镜头，花费了整整一年时间。如果按传统流程计算，这需要 5 个专业特效师，干上大半年（约 500 小时）。然而到了 2025 年，AI 模型 Veo3 生成同样的列车穿梭画面，只需要 2 分钟。甚至连音效都给你配好了。&lt;/p&gt;
&lt;p&gt;这被称为“努力的悖论”：当我们越努力花时间在纯粹的执行层面，越大规模地投入人力，我们做的事情可能越没有意义，因为 AI 进化的速度远超我们磨练手艺的速度。我们过去挑灯夜读学习的各种软件操作、技巧，在 AI 面前可能瞬间贬值。&lt;/p&gt;
&lt;p&gt;简单来说：AI 把我从“执行者”提升成了“结构工程师”。不再只是完成任务，而是在设计体系。&lt;/p&gt;
&lt;h2 id=&quot;ai-把我的个人能力扩展成一支小型团队&quot;&gt;AI 把我的“个人能力”扩展成一支小型团队&lt;/h2&gt;
&lt;p&gt;如果把人的能力想象成一块主板，那么 AI 就像是随时可挂载的扩展卡。&lt;/p&gt;
&lt;p&gt;当我写代码，它变成 Pair Programmer；当我写系统方案，它变成架构师；当我做内容，它变成编辑、脚本师、素材库和灵感源；当我要和财经顾问沟通，它瞬间切换为金融分析师。&lt;/p&gt;
&lt;p&gt;这种“随时换职业”的能力，最初带给我的是震惊，后来是依赖，现在则是一种平静——就像我习惯了身边有一支 24 小时待命的“影子团队”。&lt;/p&gt;
&lt;p&gt;更重要的是，它让我重新定义了一个词：边界。&lt;/p&gt;
&lt;p&gt;以前我会想：“这个我不擅长，我可能做不了。”现在变成：“我先试一下，有 AI 垫着底，总不会差到哪儿去。”&lt;/p&gt;
&lt;p&gt;于是我开始尝试以前不敢碰的东西：重构博客、做内容、理解宏观经济、给孩子准备学习路径……我开始在多个领域“通气”，不再害怕跨界。&lt;/p&gt;
&lt;p&gt;这不是膨胀，而是一种被悄悄打开的世界。&lt;/p&gt;
&lt;h2 id=&quot;ai-让我重新塑造了工作的意义&quot;&gt;AI 让我重新塑造了“工作的意义”&lt;/h2&gt;
&lt;p&gt;这也许是最深刻的改变。&lt;/p&gt;
&lt;p&gt;过去很长一段时间，我对工作有一种强烈的异化感：琐碎、分散、被动，像是机器上的一个齿轮。&lt;/p&gt;
&lt;p&gt;但是，当我开始使用 AI，我突然意识到：我在把自己从齿轮变成系统设计者。而这种转变，本身就是意义。&lt;/p&gt;
&lt;p&gt;当我为公司设计未来两年的系统进化方案时，我其实是用 AI 把那些“想做但做不到”的事情逐步拉回到能力区间内。&lt;/p&gt;
&lt;p&gt;当我为孩子设计学习路径时，我在用 AI 把一个父亲的焦虑转换成行动上的笃定。&lt;/p&gt;
&lt;p&gt;当我持续写内容时，我在用 AI 把积累变成可复用的知识资产，而不是散落在生活里的临时技能。&lt;/p&gt;
&lt;p&gt;换句话说，AI 让我第一次看到：工作和生活中的很多事，原来不是“我不行”，而是“我缺工具”。工具补齐之后，我对世界的参与度被重新激活。&lt;/p&gt;
&lt;p&gt;但这种参与度的激活，不仅仅是为了效率，更是为了连接。Tim 在视频里讲述了乐队“深海呼吸”主唱 57 的故事，让我对“工作的意义”有了更深一层的理解。&lt;/p&gt;
&lt;p&gt;57 患了重病，听力受损，面临一个成功率只有六七成的手术。他说了一句让我心碎的话：“我其实并不害怕生命提前结束，我害怕的是以后有一天我什么都听不到了。”为了帮他圆梦，团队在他进手术室前拼命赶制《银河列车》的 MV。&lt;/p&gt;
&lt;p&gt;虽然手术结果并不完美——没有奇迹发生，他瘦了 30 斤，听力也没有显著改善——但在 MV 发布的那天，57 向爱人求婚成功了。那一刻，视频制作的效率、特效的精细度（那些 AI 能轻易超越的东西）都不重要了。重要的是这个项目承载的人与人之间的羁绊。&lt;/p&gt;
&lt;p&gt;工作的意义，不仅在于设计系统、提升效率，更在于通过这些系统，我们能否传递爱与勇气。AI 可以生成完美的画面，但它无法理解 57 求婚时紧张的汗水，也无法复刻那间 60 块钱排练房里梦想的味道。&lt;/p&gt;
&lt;h2 id=&quot;那么我们还剩下什么&quot;&gt;那么，我们还剩下什么？&lt;/h2&gt;
&lt;p&gt;如果 AI 真的能做一切，如果它比我们更快、更强、更聪明，我们还剩下什么？&lt;/p&gt;
&lt;p&gt;Tim 的视频给了我一个直击灵魂的答案：“可能，只有经历了吧。经历塑造了我们每一个人独特的灵魂。”&lt;/p&gt;
&lt;p&gt;当你看到妈妈的白发，你的思绪不会停在这里；当你走进曾经的校园，闻到教室的气味，你的记忆会被瞬间唤醒。这些瞬间的感受、这些独特的生命体验，是 AI 无法计算、无法模拟的。AI 看不透你，因为它没有“经历”过你的人生。&lt;/p&gt;
&lt;p&gt;视频最后那个关于“火车”的隐喻非常动人：在 AI 的逻辑里，火车太慢、太笨重、太低效了，远不如光纤和火箭。它们也许无法理解人类为什么会对这种过时的交通工具产生情感。但火车有一点很特别：“即便上车意味着分别，但只要轨道还在，我们还记得彼此，总有一天，我们会再次相遇。”&lt;/p&gt;
&lt;p&gt;我每次加班结束开车回家时，也总会喜欢选择鼓楼大街，虽然不如深夜的二环快，但是除了快慢，应该还有你在乎的别的东西。&lt;/p&gt;
&lt;p&gt;这让我明白了 AI 革命的另一面：AI 可以是那个呼啸而过的火箭，带我们飞向更高的地方，去探索认知的边界；但我们依然是那个坐在火车窗边的人（开车的人），紧握着身边人的手，感受着心脏的跳动。&lt;/p&gt;
&lt;p&gt;效率归 AI，经历归人类。&lt;/p&gt;
&lt;h2 id=&quot;ai-的价值从来不是替代而是升级&quot;&gt;AI 的价值，从来不是替代，而是升级&lt;/h2&gt;
&lt;p&gt;它带来了效率，但更带来了方向感；它改变了工作，但更改变了心态；它加速了专业成长，但更重塑了自我认知。&lt;/p&gt;
&lt;p&gt;未来怎么样我不知道，但至少此刻，我能清楚地感受到一件事：AI 不是科技潮流，它是一种个人革命。它逼迫我们交出低效的劳动，去换取更珍贵的“经历”与“连接”，而我恰巧正在这场革命的中心。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;作者提示：个人观点，仅供参考&lt;/p&gt;
&lt;/blockquote&gt;</content:encoded></item><item><title>关税是什么？为什么川普又对中国加税？</title><link>https://blog.ly85.dev/zh/posts/what-is-tariff/</link><guid isPermaLink="true">https://blog.ly85.dev/zh/posts/what-is-tariff/</guid><description>从关税的定义与功能讲起，梳理美国关税历史与政治逻辑，并讨论其对消费者、企业与全球贸易的影响。</description><pubDate>Sun, 27 Apr 2025 09:11:11 GMT</pubDate><content:encoded>&lt;p&gt;最近和在美国做进出口贸易的朋友聊天，才发现他已经暂停了从中国的进口业务，改为通过转口或从其他国家进口。他的原因很直接：&lt;strong&gt;美国又加关税了&lt;/strong&gt;，利润空间被严重压缩，生意根本做不下去。&lt;/p&gt;
&lt;p&gt;受到这事影响，我也赶紧下单了台新 Mac —— 深怕再拖一拖，加税落地，价格上涨，吃亏的还是我们这些消费者。&lt;/p&gt;
&lt;p&gt;这也激起了我的好奇心：&lt;strong&gt;关税到底是怎么回事？为什么美国总喜欢拿它说事？对我们普通人又有多大影响？&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;过去几周，我做了一些调研，整理出一篇入门科普，希望能帮大家看懂“关税”背后的逻辑。&lt;/p&gt;
&lt;h2 id=&quot;一关税是什么从过路费到地缘武器&quot;&gt;&lt;strong&gt;一、关税是什么？从“过路费”到地缘武器&lt;/strong&gt;&lt;/h2&gt;
&lt;h3 id=&quot;1-什么是关税&quot;&gt;&lt;strong&gt;1. 什么是关税？&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;关税（Tariff），本质上是&lt;strong&gt;政府对跨境流动的商品征收的税&lt;/strong&gt;。可以理解为一种现代版的“过路费”或“保护费”。&lt;/p&gt;
&lt;p&gt;例如，你从国外买了一双运动鞋，商品进入中国海关时，国家会按照这双鞋的申报价格收一笔税，这就是关税。&lt;/p&gt;
&lt;h3 id=&quot;2-它有哪三种主要功能&quot;&gt;&lt;strong&gt;2. 它有哪三种主要功能？&lt;/strong&gt;&lt;/h3&gt;





















&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;&lt;strong&gt;作用&lt;/strong&gt;&lt;/th&gt;&lt;th&gt;&lt;strong&gt;说明&lt;/strong&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;财政收入&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;早期国家重要收入来源，现在对发展中国家仍然重要&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;贸易保护&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;提高外国商品价格，保护本国企业和产业&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;政治博弈工具&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;加税威胁或制裁他国，比如特朗普时代的“贸易战”&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;在现代经济体系中，关税已不仅仅是“税”，而是&lt;strong&gt;一项综合性的国家政策工具&lt;/strong&gt;，具有强烈的战略属性。&lt;/p&gt;
&lt;h2 id=&quot;二美国与关税一段剪不断理还乱的历史&quot;&gt;&lt;strong&gt;二、美国与关税：一段剪不断理还乱的历史&lt;/strong&gt;&lt;/h2&gt;
&lt;h3 id=&quot;1-关税是美国的老朋友&quot;&gt;&lt;strong&gt;1. 关税是美国的“老朋友”&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;美国建国初期，联邦政府没有征个人所得税，&lt;strong&gt;几乎所有财政收入都靠关税&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;南北战争的一大诱因，也是南方反对北方制定的高关税政策（保护北方工业，伤害南方农业）。&lt;/li&gt;
&lt;li&gt;所以说，美国对关税的依赖，不是特朗普时代才有，而是“祖传的”。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;2-特朗普用关税治理国家&quot;&gt;&lt;strong&gt;2. 特朗普：用关税“治理国家”&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;自2018年起，特朗普政府对中国发起了&lt;strong&gt;四轮关税行动&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;覆盖超过3,600亿美元中国出口商品。&lt;/li&gt;
&lt;li&gt;美国对中国商品的平均关税从3.1%提升到21%（来源：Peterson Institute for International Economics, 2020）&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;3-他为什么能说加就加&quot;&gt;&lt;strong&gt;3. 他为什么能“说加就加”？&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;美国的法律给总统提供了很多“单边加税”的武器：&lt;/p&gt;





















&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;&lt;strong&gt;法律条款&lt;/strong&gt;&lt;/th&gt;&lt;th&gt;&lt;strong&gt;允许总统以……为理由加税&lt;/strong&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;301条款&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;对贸易伙伴实施报复性关税&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;232条款&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;以“国家安全”为由加税（如钢铁、铝）&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;IEEPA法案&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;紧急情况下，加税、冻结资产、禁运（曾用于打击芬太尼）&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;h2 id=&quot;三新一轮关税风暴只是川普作秀吗&quot;&gt;&lt;strong&gt;三、新一轮关税风暴：只是“川普作秀”吗？&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;在 2024 年的竞选中，特朗普提出了更激进的加税计划：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;对中国商品最高加征 &lt;strong&gt;125% 关税&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;对加拿大、墨西哥等邻国征收 &lt;strong&gt;25% 关税&lt;/strong&gt;，理由是“毒品和非法移民”&lt;/li&gt;
&lt;li&gt;提出 &lt;strong&gt;全球10%基准关税&lt;/strong&gt;，只因“其他国家占了便宜”&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这些言论固然有“竞选作秀”成分，但也反映出美国正在把“关税”作为国家政策常规工具使用。&lt;/p&gt;
&lt;h2 id=&quot;四美国为啥总要加关税表面-vs-深层逻辑&quot;&gt;&lt;strong&gt;四、美国为啥总要加关税？表面 vs 深层逻辑&lt;/strong&gt;&lt;/h2&gt;
&lt;h3 id=&quot;表面理由官方说法&quot;&gt;&lt;strong&gt;表面理由（官方说法）&lt;/strong&gt;&lt;/h3&gt;





















&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;&lt;strong&gt;理由&lt;/strong&gt;&lt;/th&gt;&lt;th&gt;&lt;strong&gt;举例&lt;/strong&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;贸易逆差太大&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;中国对美出口远超美国对中出口&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;保护制造业就业&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;促进“制造业回流”&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;国家安全问题&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;涉及芯片、稀土、芬太尼等敏感领域&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;h3 id=&quot;更深层次美国的三重困境&quot;&gt;&lt;strong&gt;更深层次：美国的“三重困境”&lt;/strong&gt;&lt;/h3&gt;
&lt;h4 id=&quot;1-特里芬难题美元霸权的副作用&quot;&gt;&lt;strong&gt;1. 特里芬难题：美元霸权的副作用&lt;/strong&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;美国作为“世界货币发行国”，必须持续输出美元（即从他国买买买），以满足全球美元需求。&lt;/li&gt;
&lt;li&gt;这就导致了&lt;strong&gt;长期贸易逆差和制造业空心化&lt;/strong&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;维持美元霸权，必须牺牲制造业 —— 这就是“特里芬难题”。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4 id=&quot;2-铁锈带选票与民粹需求&quot;&gt;&lt;strong&gt;2. 铁锈带选票与民粹需求&lt;/strong&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;美国中部传统制造业地区长期失业率高、经济停滞。&lt;/li&gt;
&lt;li&gt;特朗普的基本盘是这些“铁锈带”的工人阶层。&lt;/li&gt;
&lt;li&gt;“对中国加税”能唤起他们的&lt;strong&gt;被剥夺感 + 民族主义情绪&lt;/strong&gt;，是政治操作利器。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;3-财政赤字高企需要隐形加税&quot;&gt;&lt;strong&gt;3. 财政赤字高企，需要“隐形加税”&lt;/strong&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;美国国债已超34万亿美元（截至2024年末，来源：US Treasury）。&lt;/li&gt;
&lt;li&gt;关税不仅是贸易政策，也是一种&lt;strong&gt;对国内消费者征税的手段&lt;/strong&gt;，增加财政收入而不直接加所得税。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;五关税到底有用吗争议很大&quot;&gt;&lt;strong&gt;五、关税到底有用吗？争议很大&lt;/strong&gt;&lt;/h2&gt;





















&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;&lt;strong&gt;正面观点&lt;/strong&gt;&lt;/th&gt;&lt;th&gt;&lt;strong&gt;反面观点&lt;/strong&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;短期保护制造业&lt;/td&gt;&lt;td&gt;扭曲价格机制，降低资源配置效率&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;增加政府收入&lt;/td&gt;&lt;td&gt;加重企业和消费者负担&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;政策博弈工具&lt;/td&gt;&lt;td&gt;破坏全球产业链协作&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;根据2021年美国国会预算办公室（CBO）报告，&lt;strong&gt;上一轮贸易战中，93%的关税成本由美企和美国消费者承担&lt;/strong&gt;，而非中国出口商。&lt;/p&gt;
&lt;h2 id=&quot;六谁在为关税买单消费者和企业&quot;&gt;&lt;strong&gt;六、谁在为关税买单？消费者和企业&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;尽管人民币贬值等因素在短期内可抵消部分关税影响，但长期来看：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;美国消费者&lt;/strong&gt;承担大部分成本，体现在商品价格上涨；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;中美企业&lt;/strong&gt;都要在利润、产能、供应链上做出牺牲；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;全球贸易环境&lt;/strong&gt;变得更不确定，供应链加速“去中国化”。&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;关税是一种“看起来打别人，实际上打自己和全球市场”的武器。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;七小结&quot;&gt;&lt;strong&gt;七、小结&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;美国不断挥舞关税大棒，表面上是打击对手，实质上是试图用强权手段应对其&lt;strong&gt;结构性难题&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;美元霸权带来的副作用&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;产业空心化与民粹化&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;高赤字、高债务财政失衡&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;而在这个过程中，中国只是最方便出手的“假想敌”罢了。&lt;/p&gt;
&lt;p&gt;未来无论是谁当总统，&lt;strong&gt;关税这个工具只会更常用、不会消失&lt;/strong&gt;，这正是全球“去全球化”和地缘政治分裂的缩影。&lt;/p&gt;
&lt;h2 id=&quot;附录--小白看懂关税美元体系和美债逻辑&quot;&gt;&lt;strong&gt;附录 | 小白看懂关税、美元体系和美债逻辑&lt;/strong&gt;&lt;/h2&gt;
&lt;h3 id=&quot;关税术语解释&quot;&gt;&lt;strong&gt;关税术语解释&lt;/strong&gt;&lt;/h3&gt;





















&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;&lt;strong&gt;术语&lt;/strong&gt;&lt;/th&gt;&lt;th&gt;&lt;strong&gt;简单解释&lt;/strong&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;关税&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;国家对进口商品征税&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;基准关税&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;默认适用的标准税率&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;对等关税&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;对等回应他国的关税政策&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;h3 id=&quot;swift-是什么&quot;&gt;&lt;strong&gt;SWIFT 是什么？&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;全球银行之间安全转账用的“信息系统”。&lt;/li&gt;
&lt;li&gt;本身不转钱，只发“指令”。&lt;/li&gt;
&lt;li&gt;类比：银行界的“快递物流系统”。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;布雷顿森林体系&quot;&gt;&lt;strong&gt;布雷顿森林体系&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;1944年确立的全球货币制度，美元和黄金挂钩，其他货币跟美元挂钩。&lt;/li&gt;
&lt;li&gt;奠定了“美元霸权”的基础。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;特里芬难题&quot;&gt;&lt;strong&gt;特里芬难题&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;世界想用美元，美国就得不断输出美元（买买买）。&lt;/li&gt;
&lt;li&gt;但美元太多，会削弱其信用。&lt;/li&gt;
&lt;li&gt;是“美元全球化”与“美国自身利益”的矛盾。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;美债的全球作用&quot;&gt;&lt;strong&gt;美债的全球作用&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;吸收全球多余美元，是美元信用锚。&lt;/li&gt;
&lt;li&gt;提供美国政府低成本融资。&lt;/li&gt;
&lt;li&gt;和美元构成闭环：&lt;strong&gt;“美元 → 买美债 → 美国再花出去”&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如你所见，&lt;strong&gt;关税远不是一个“经济问题”这么简单&lt;/strong&gt;，而是政治、财政、货币、国际秩序交织的节点。&lt;/p&gt;</content:encoded></item><item><title>我的2024</title><link>https://blog.ly85.dev/zh/posts/my-2024/</link><guid isPermaLink="true">https://blog.ly85.dev/zh/posts/my-2024/</guid><description>回顾2024年的旅行、工作与输入输出，记录中年视角下的生活选择与能力边界。</description><pubDate>Sat, 04 Jan 2025 09:18:33 GMT</pubDate><content:encoded>&lt;p&gt;今天是2025年第一个周六，在公司加班。白天一直在写团队2024总结，晚上终于有时间盘点下2024自己都做了啥。安静下来想想，现在的我会对2025年的自己说些什么？&lt;/p&gt;
&lt;p&gt;此时此刻，脑子里突然想起一句罗曼罗兰著名的话：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;世界上只有一种真正的英雄主义，那就是认清生活的真相后依然热爱生活。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;这句话对人到中年的我来说，确实有一些不一样的意义：看似伟大，但实际平凡。首先什么是「生活」，每个人所经历和能经历的生活是截然不同。站在2025年初，我可能想对未来的自己说：提升自己可以选择「过什么样生活」的权利，大环境的问题下，更要拓宽自己的能力边界，给未来更多的可能性。&lt;/p&gt;
&lt;h2 id=&quot;旅行&quot;&gt;旅行&lt;/h2&gt;
&lt;p&gt;今年去了国内和国外的一些地方，体会了不同的风土人情。见了久违的在杭州的故友，促膝长谈了2天。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2月-旅行：福州 → 泉州 → 厦门&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;福州：赶在麦当当Close前，买了年夜饭，才不至于在年三十儿啃泡面&lt;/p&gt;
&lt;p&gt;泉州：半城烟火半城仙，几百米一座庙，让你能感受到住在这里的安逸和祥和，没什么事情是这么多神仙无法解决的。。。&lt;/p&gt;
&lt;p&gt;厦门：去了很多次的地方，非常典型的海边城市，这次著名的景点一个没去，就是随意逛逛&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;3月-异地见故友：杭州&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;飞去杭州见了很久没见面的朋友，聊了很多过去，也聊了很多现在。有个感受，异地的情况，想见一面基本需要进行年度规划&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;5月-旅行：宁波&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;东钱湖：景色很美，之前去过泸沽湖，各有千秋吧&lt;/p&gt;
&lt;p&gt;宁波博物馆：主要是因为「三体」的取景地，打个卡&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;7月-旅行：格鲁吉亚&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;飞了好久好久：北京 → 乌鲁木齐 → 第比利斯（格鲁吉亚首都），十几个小时了&lt;/p&gt;
&lt;p&gt;朴素的民风 + 欧洲的风格 + 亚洲的价格：格鲁吉亚的人很好，旅游业目前还不是特别发达，所以东西不贵，也没有宰客现象。我的导游是本地人，英语+中文+格鲁吉亚语+俄语，想怎么沟通都OK&lt;/p&gt;
&lt;p&gt;推荐几个地方：第比利斯citywalk + 卡兹别克 + 巴统（黑海），各种教堂确实记不住…&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;9月-旅行：阿那亚金山岭&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;和朋友一家一起去的，路程不远（北京过去的话150公里）。全程宠物友好，整体社区确实很阿那亚。值得喜欢宠物的朋友，一起聚会的地方&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;11月-音乐剧：《我，堂吉诃德》&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;带孩子第一次看现场音乐剧。之前一直没系统看过《堂吉诃德》，但是也是知道故事主题脉络的，看了整个剧，还是挺感动的，重新理解了理想主义，以及如何追求理想主义追梦&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.ly85.dev/2024-01.jpg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.ly85.dev/2024-05.jpg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.ly85.dev/2024-04.jpg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.ly85.dev/2024-03.jpg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.ly85.dev/2024-10.jpg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.ly85.dev/2024-02.jpg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;工作&quot;&gt;工作&lt;/h2&gt;
&lt;p&gt;变化有限，我和团队都在努力搬着砖，完成各种交付。但是2025年，需要保持独立思考，聚焦一些重要目标。&lt;/p&gt;
&lt;h2 id=&quot;输入和输出&quot;&gt;输入和输出&lt;/h2&gt;
&lt;h3 id=&quot;输入&quot;&gt;输入&lt;/h3&gt;
&lt;p&gt;今年调整了一些信息输入的工具，目前工具如下&lt;/p&gt;
&lt;h3 id=&quot;follow&quot;&gt;Follow&lt;/h3&gt;
&lt;p&gt;碾压之前的一切RSS工具，现在唯一的RSS + Newsletter工具&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.ly85.dev/2024-07.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h3 id=&quot;cubox&quot;&gt;Cubox&lt;/h3&gt;
&lt;p&gt;一直以来的碎片整理，稍后读工具&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.ly85.dev/2024-08.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h3 id=&quot;小宇宙&quot;&gt;小宇宙&lt;/h3&gt;
&lt;p&gt;全年听了138小时，主要2个播客是离不开的&lt;/p&gt;
&lt;p&gt;虚实之间&lt;/p&gt;
&lt;p&gt;听过最好的播客，没有之一，高质量、高认知，2023-10月开播以来，每集都必听。&lt;/p&gt;
&lt;p&gt;小宇宙-虚实之间&lt;/p&gt;
&lt;p&gt;全年69小时&lt;/p&gt;
&lt;p&gt;声动早咖啡&lt;/p&gt;
&lt;p&gt;每个工作日早上通勤15分钟，可以了解世界的科技商业新闻，与时俱进。&lt;/p&gt;
&lt;p&gt;小宇宙-声动早咖啡&lt;/p&gt;
&lt;p&gt;全年47小时&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.ly85.dev/2024-06.jpg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h3 id=&quot;微信读书--纸质书&quot;&gt;微信读书 + 纸质书&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;《张居正》&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;历史小说。张居正是个牛人，他在万历年间推行了一系列改革，比如整顿税收、削减冗官，但过程特别艰难。书里还写了他如何在复杂的政治斗争中周旋。看完你会感叹：历史里的“改革者”有多难当。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;《小王子》&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;每一段旅程都像是一面镜子，让人反思友情、爱和成长。表面是童话，实则讲的是人生哲理。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;《重来-跳出疯狂的忙碌》&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;37signals 的创始人撰写，提出了一种反主流的工作和创业理念，强调减少忙碌、关注核心目标以及更高效地完成工作。一定要独立思考。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;《我与地坛》&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;散文。这个地方成了史铁生思考人生的一个舞台。他写自己对死亡、母爱和生命意义的感悟，文字朴实却很触动人心。里面很多地坛的景色描写，我觉得孩子可以好好积累下，作文素材。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;《撒哈拉的故事》&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;三毛和她丈夫荷西住在撒哈拉沙漠，虽然生活条件很艰苦，但他们过得特别浪漫。书里记录了她遇到的趣事、奇人以及对生命的热爱，读起来很轻松，但又有深意。后面我还特意去小红书搜了搜故居的样子，看了后更加代入。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;《芯片简史》&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;AIGC大发展之年。我偶然读到这本。读的过程中想起了自己大学时代各种课程和课程设计。这本书从最初的晶体管，到如今的芯片如何影响全球科技发展，作者写得特别清晰，看完你会对科技背后的故事刮目相看。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;《置身事内》&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果你对经济感兴趣，但总觉得太复杂，这本书超适合你。它用很接地气的语言解释中国经济是怎么运行的，告诉你“体制内”和“体制外”的那些事儿。读完，你会更懂咱们国家的经济逻辑。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;《智人之上》&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;赫拉利的新作。这本书探讨了未来人工智能、生物科技的发展会如何改变人类。作者还反思了技术进步带来的挑战：我们是变得更幸福了，还是失去了什么重要的东西？&lt;/p&gt;
&lt;h3 id=&quot;得到&quot;&gt;得到&lt;/h3&gt;
&lt;p&gt;学习两门历史课程，分别是：施展老师的「中国史纲」，以及李筠老师的「西方史纲」。个人兴趣，非常喜欢“大历史”，这2门课讲的非常好，适合喜欢“大历史”，以及历史贯通感的同学，推荐。&lt;/p&gt;
&lt;h3 id=&quot;多邻国&quot;&gt;多邻国&lt;/h3&gt;
&lt;p&gt;一直坚持学习英语，又是365天，但是为了之后能有其他的选择，英语的学习打算在2025年加大力度。目标是：达到可以去英语国家工作和生活的标准（其实差距很大还是，总得有个目标）。&lt;/p&gt;
&lt;p&gt;加油！给自己，也给家庭一些不一样的生活的可能性（卷孩子不如卷自己，卷孩子现在确实没啥性价比）&lt;/p&gt;
&lt;h3 id=&quot;输出&quot;&gt;输出&lt;/h3&gt;
&lt;h3 id=&quot;notion&quot;&gt;Notion&lt;/h3&gt;
&lt;p&gt;主力日常输出工具是，负责整理想法，日常的工作和个人学习管理。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.ly85.dev/2024-09.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h3 id=&quot;blog&quot;&gt;Blog&lt;/h3&gt;
&lt;p&gt;今年年底，因为黑五，薅到了便宜的VPS（&lt;a href=&quot;https://cloudcone.com/%EF%BC%89%E3%80%82%E5%86%B2%E5%8A%A8%E6%B6%88%E8%B4%B9%E5%90%8E%EF%BC%8CVPS%E4%B8%8D%E8%83%BD%E9%97%B2%E7%9D%80%E5%95%8A%EF%BC%8C%E4%BA%8E%E6%98%AF%E6%8A%8ABlog%E4%BB%8EVercel%E7%9A%84%E9%9D%99%E6%80%81Blog%E8%BF%81%E7%A7%BB%E5%88%B0%E4%BA%86VPS%E4%B8%8A%E7%9A%84WordPress%E7%9A%84%E5%8A%A8%E6%80%81Blog%E3%80%82&quot;&gt;https://cloudcone.com/）。冲动消费后，VPS不能闲着啊，于是把Blog从Vercel的静态Blog迁移到了VPS上的WordPress的动态Blog。&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Blog今年才写了6篇，平均2个月1篇，明年加油。&lt;/p&gt;</content:encoded></item><item><title>适合工程师的免费画图工具</title><link>https://blog.ly85.dev/zh/posts/free-diagramming-tools-for-engineers/</link><guid isPermaLink="true">https://blog.ly85.dev/zh/posts/free-diagramming-tools-for-engineers/</guid><description>面向工程师的免费画图工具清单，涵盖 Excalidraw、Mermaid、Drawio 与 Frame0 的使用场景与特点。</description><pubDate>Thu, 19 Dec 2024 09:21:51 GMT</pubDate><content:encoded>&lt;p&gt;最近接近年底，又到了一年一度系统性规划的时间。这时候确实少不了画图工具，所谓一图胜千言。从设计架构到制作流程图，甚至是在会议中唬人，总得需要几张「神图」撑场面。但是，谁说画图一定要花钱呢？能白嫖的肯定不花钱啊！今天推荐几款我常用的免费画图工具。&lt;/p&gt;
&lt;h2 id=&quot;excalidraw--手绘感满满的创意之选&quot;&gt;Excalidraw – &lt;strong&gt;手绘感满满的创意之选&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;http://excalidraw.com&quot;&gt;http://excalidraw.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;如果你觉得那些一本正经的图表太死板，那就来试试Excalidraw吧！它的手绘风格一上来就能给你一种「我是艺术家」的错觉，就像是让毕加索来画你的系统架构图一样！&lt;img src=&quot;https://s.w.org/images/core/emoji/17.0.2/svg/1f606.svg&quot; alt=&quot;😆&quot;&gt;&lt;/p&gt;
&lt;p&gt;特点&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;支持协同编辑&lt;/li&gt;
&lt;li&gt;提供了素材库（按需添加）&lt;/li&gt;
&lt;li&gt;端到端加密，完全不存储用户数据&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.ly85.dev/developer-draw-tools-3.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;mermaid--码农福音语法驱动&quot;&gt;Mermaid – &lt;strong&gt;码农福音，语法驱动&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://mermaid.js.org&quot;&gt;https://mermaid.js.org&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;厌倦了拖拖拽拽？Mermaid让你用写代码的方式来画图！这简直就是程序员的终极浪漫。当你用代码画出一个漂亮的流程图时，那种成就感简直比修复一个bug还爽！&lt;/p&gt;
&lt;p&gt;特点&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;用代码生成图表，极客范十足（有了AIGC简直是提效神器）&lt;/li&gt;
&lt;li&gt;类型丰富，从流程图到甘特图，甚至时序图，应有尽有&lt;/li&gt;
&lt;li&gt;可以集成到各种markdown编辑器&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.ly85.dev/developer-draw-tools-1.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.ly85.dev/developer-draw-tools-3.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;drawio--全能&quot;&gt;Drawio – 全能&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://www.drawio.com&quot;&gt;https://www.drawio.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;如果说Excalidraw是可爱的邻家小妹，Mermaid是极客码农，那Drawio就是学霸了，几乎能胜任你能想到的所有画图需求，功能强大，以免费和丰富的功能著称。&lt;/p&gt;
&lt;p&gt;特点&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;具备接近商业软件的功能，且完全免费&lt;/li&gt;
&lt;li&gt;提供桌面版和在线版&lt;/li&gt;
&lt;li&gt;支持多种存储方式（Google Drive、OneDrive）&lt;/li&gt;
&lt;li&gt;丰富的模板库，还可以自定义自己的库&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.ly85.dev/developer-draw-tools-2.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;frame0--手绘风格的原型设计工具&quot;&gt;Frame0 – 手绘风格的原型设计工具&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://frame0.app&quot;&gt;https://frame0.app&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;一款非常适合程序员快速验证想法的原型设计工具，轻松描绘应用程序创意，项目从2024-09开始创建，陆续更新了7个版本，目前版本还是beta，适合喜欢新鲜感和尝鲜的同学。&lt;/p&gt;
&lt;p&gt;特点&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;跨平台，支持macOS、Windows、Linux&lt;/li&gt;
&lt;li&gt;流畅的操作体验&lt;/li&gt;
&lt;li&gt;适合制作精美的展示图表&lt;/li&gt;
&lt;li&gt;支持实时协作&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.ly85.dev/developer-draw-tools-5.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.ly85.dev/developer-draw-tools-4.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;</content:encoded></item><item><title>如何通过云计算为客户提供服务</title><link>https://blog.ly85.dev/zh/posts/how-to-support-service-from-cloud-computing/</link><guid isPermaLink="true">https://blog.ly85.dev/zh/posts/how-to-support-service-from-cloud-computing/</guid><description>以SaaS服务商视角科普云计算的定义、服务模式、部署方式与分层示意。</description><pubDate>Sun, 24 Nov 2024 09:52:09 GMT</pubDate><content:encoded>&lt;p&gt;最近在给公司的市场部同学提供一些系统的技术类描述的输出。我在选题的时候也考虑了再三，突然想到了「AI」「云计算」此类词汇的走红，但是应该大部分人对所谓的技术网红词都一知半解，反正不提好像就是OUT了。因为我们是一个SaaS服务商，所以从云计算的角度去写一写，做一些云计算的科普好像是一个不错的输出方向。&lt;/p&gt;
&lt;h2 id=&quot;定义&quot;&gt;定义&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;云计算是一种通过互联网提供计算资源（如服务器、存储、数据库、网络、软件等）的技术，它允许用户按需访问和使用这些资源，而无需在本地购买和维护硬件和软件。云计算的核心理念是将计算资源集中起来，通过网络将这些资源以服务的形式提供给用户。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;服务模式&quot;&gt;服务模式&lt;/h2&gt;
&lt;p&gt;云计算包含了3种服务模式，由底层到上层依次为IaaS → PaaS → SaaS&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.ly85.dev/cloud-computing-01.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;部署方式&quot;&gt;部署方式&lt;/h2&gt;
&lt;p&gt;云计算常见的部署方式有3种，分别是：公有云、私有云、混合云&lt;/p&gt;
&lt;h3 id=&quot;我们目前的部署方式-公有云public-cloud&quot;&gt;&lt;strong&gt;[我们目前的部署方式] 公有云（Public Cloud）&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;云服务商提供（例如：阿里云、华为云、AWS、Microsoft Azure）&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;优点：具备成本效益、可扩展性、灵活性、良好的高可用性，以及良好的安全性（网络安全和数据安全）&lt;/li&gt;
&lt;li&gt;缺点：比较依赖第三方的云服务商；对于某些敏感信息（如：涉及国家安全信息等）可能不是最佳选择&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;私有云private-cloud&quot;&gt;&lt;strong&gt;私有云（Private Cloud）&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;为单个组织专门构建的云环境，可以在组织内部或第三方数据中心中托管，提供更高的安全性（&lt;strong&gt;当企业和产品发展到一定阶段后，通常使用此类部署方式的是对安全要求较高的KA客户&lt;/strong&gt;）&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;优点：数据安全性和隐私保护得到了加强&lt;/li&gt;
&lt;li&gt;缺点：一定程度上牺牲了公有云的扩展性和灵活性；成本（服务器成本和运维人员成本）高昂&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;混合云hybrid-cloud&quot;&gt;&lt;strong&gt;混合云（Hybrid Cloud）&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;如果希望利用公有云的扩缩能力和安全性，同时将数据保留在本地以遵守数据驻留法律的规定，或支持更接近客户的计算需求，则混合云方式会比较适合。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;优点：结合了公有云和私有云的大部分优点，可以在需要时轻松扩展计算资源和存储空间，同时仍可以在本地访问数据和应用&lt;/li&gt;
&lt;li&gt;缺点：管理复杂、需要专门的VPN或专线连接公有云和私有云、网络传输速度和稳定性都要求很高&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.ly85.dev/cloud-computing-02.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;iaas层&quot;&gt;&lt;strong&gt;IaaS层&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;主要利用阿里云的提供的网络、存储相关基础设施，构建我们的SaaS基础&lt;/p&gt;
&lt;h2 id=&quot;paas层&quot;&gt;&lt;strong&gt;PaaS层&lt;/strong&gt;&lt;/h2&gt;
&lt;h3 id=&quot;非应用类&quot;&gt;&lt;strong&gt;非应用类&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;主要利用阿里云提供的开发平台和环境，构建和部署我们的应用服务，比如：容器服务、无服务器计算等&lt;/p&gt;
&lt;h3 id=&quot;应用类&quot;&gt;&lt;strong&gt;应用类&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;视频会议能力&lt;/li&gt;
&lt;li&gt;文档协作能力&lt;/li&gt;
&lt;li&gt;直播能力&lt;/li&gt;
&lt;li&gt;AIGC&lt;/li&gt;
&lt;li&gt;……&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;saas层&quot;&gt;&lt;strong&gt;SaaS层&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;通过SaaS层为我们的用户提供服务&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://s.w.org/images/core/emoji/17.0.2/svg/1f4a1.svg&quot; alt=&quot;💡&quot;&gt;SaaS的好处&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;成本效益：用户无需购买昂贵的硬件或软件许可，只需按需付费&lt;/li&gt;
&lt;li&gt;快速部署：用户只需注册账户即可开始使用，减少了传统软件安装和配置所需的时间&lt;/li&gt;
&lt;li&gt;易于扩展：用户可以根据需求增加或减少使用的功能模块&lt;/li&gt;
&lt;li&gt;自动更新和维护：SaaS提供商负责软件的更新和维护，用户始终使用最新版本，无需担心升级和安全补丁&lt;/li&gt;
&lt;li&gt;访问便利：用户可以通过任何连接互联网的设备访问SaaS服务，支持远程工作和移动办公，提高了工作灵活性&lt;/li&gt;
&lt;li&gt;安全性：SaaS提供商非常重视安全措施，包括数据加密、备份和灾难恢复，通常比中小型企业自行管理的安全措施更为可靠&lt;/li&gt;
&lt;/ul&gt;</content:encoded></item><item><title>消费降级，我的订阅服务瘦身</title><link>https://blog.ly85.dev/zh/posts/my-subscription-services/</link><guid isPermaLink="true">https://blog.ly85.dev/zh/posts/my-subscription-services/</guid><description>盘点个人订阅服务的取舍与成本，记录“省钱”过程中的保留与砍掉清单。</description><pubDate>Sun, 01 Sep 2024 10:01:31 GMT</pubDate><content:encoded>&lt;p&gt;随着各种软件、服务的使用增多，也发现了我每个月会收到很多订阅缴费的Email。最近一段时间梳理了一下自己现在的互联网软件的订阅服务，发现了很多可以「省钱」的地方。&lt;/p&gt;
&lt;h2 id=&quot;腾讯视频&quot;&gt;腾讯视频&lt;/h2&gt;















&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;分类&lt;/th&gt;&lt;th&gt;周期及成本&lt;/th&gt;&lt;th&gt;需要程度&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;视频内容&lt;/td&gt;&lt;td&gt;168元/年&lt;/td&gt;&lt;td&gt;看内容，选任意平台即可&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;之前唯一订阅的视频服务，主要是因为在追动漫（来源于少年时代看网络小说，现在动漫都是网络小说改编的居多），腾讯视频的动漫IP确实比大部分平台要多一些。主要在追的如下&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;斗罗大陆&lt;/li&gt;
&lt;li&gt;斗破苍穹&lt;/li&gt;
&lt;li&gt;吞噬星空&lt;/li&gt;
&lt;li&gt;诛仙&lt;/li&gt;
&lt;li&gt;神印王座&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;小米影视会员--赠送的爱奇艺会员&quot;&gt;小米影视会员 + 赠送的爱奇艺会员&lt;/h2&gt;















&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;分类&lt;/th&gt;&lt;th&gt;周期及成本&lt;/th&gt;&lt;th&gt;需要程度&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;视频内容&lt;/td&gt;&lt;td&gt;392元/年&lt;/td&gt;&lt;td&gt;有了更好&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;主要是因为家里的小米电视，孩子有看的需求。&lt;/p&gt;
&lt;h2 id=&quot;apple-music&quot;&gt;Apple Music&lt;/h2&gt;















&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;分类&lt;/th&gt;&lt;th&gt;周期及成本&lt;/th&gt;&lt;th&gt;需要程度&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;音乐&lt;/td&gt;&lt;td&gt;11元/月&lt;/td&gt;&lt;td&gt;有了更好&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;疫情期间买新设备赠送的3个月免费，那会开始续订的，主要原因我是苹果全家桶，体验比较顺畅。我一般是在开车通勤的路上，在公司coding的过程中，会听一听怀旧歌曲。&lt;/p&gt;
&lt;h2 id=&quot;帆书原樊登读书&quot;&gt;帆书（原樊登读书）&lt;/h2&gt;















&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;分类&lt;/th&gt;&lt;th&gt;周期及成本&lt;/th&gt;&lt;th&gt;需要程度&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;知识付费&lt;/td&gt;&lt;td&gt;365元/年&lt;/td&gt;&lt;td&gt;不需要/不续订&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;听了4年了，前2年大量地听，因为平台内很多书没有听过，经过2年，几乎听完了平台内大部分书，暂时不打算续订了，目前更多的信息输入是纸质书和电子书。&lt;/p&gt;
&lt;h2 id=&quot;声动胡同&quot;&gt;声动胡同&lt;/h2&gt;















&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;分类&lt;/th&gt;&lt;th&gt;周期及成本&lt;/th&gt;&lt;th&gt;需要程度&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;知识付费&lt;/td&gt;&lt;td&gt;365元/年&lt;/td&gt;&lt;td&gt;不需要/不续订&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;我每天早上会固定收听「声动早咖啡」，15分钟左右的时间，可以了解国内外科技相关信息。而且非常喜欢这个团队输出的内容质量，年轻、有活力、专业。所以，加以粉丝心态，加入了声动胡同。目前加入会员后，有几档收费播客可以收听（不止金钱、跳进兔子洞），但是就ROI来讲，还是性价比不高的。希望当我要续订下一年的时候，这个团队能给我更多的「理由」续费。就目前来讲，不是很推荐和需要。&lt;/p&gt;
&lt;h2 id=&quot;微信读书&quot;&gt;微信读书&lt;/h2&gt;















&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;分类&lt;/th&gt;&lt;th&gt;周期及成本&lt;/th&gt;&lt;th&gt;需要程度&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;知识付费&lt;/td&gt;&lt;td&gt;19元/月&lt;/td&gt;&lt;td&gt;需要/续订&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;今年使用了「微信读书」代替了我之前的Apple Books + ZLibaray的白嫖方案。&lt;/p&gt;
&lt;p&gt;主要原因有2个&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;笔记可以统一管理，也可以导出，比较方便&lt;/li&gt;
&lt;li&gt;听书功能体验很好，在开车通勤的路上，使用起来很方便&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;agentneo科学上网&quot;&gt;AgentNEO（科学上网）&lt;/h2&gt;















&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;分类&lt;/th&gt;&lt;th&gt;周期及成本&lt;/th&gt;&lt;th&gt;需要程度&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;网络服务&lt;/td&gt;&lt;td&gt;240元/年&lt;/td&gt;&lt;td&gt;需要/续订&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;刚需，懂得都懂。&lt;/p&gt;
&lt;h2 id=&quot;blog维护费用&quot;&gt;Blog维护费用&lt;/h2&gt;















&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;分类&lt;/th&gt;&lt;th&gt;周期及成本&lt;/th&gt;&lt;th&gt;需要程度&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;域名&lt;/td&gt;&lt;td&gt;156元/年&lt;/td&gt;&lt;td&gt;需要/续订&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;目前我的Blog花费只是在域名购买上（Godaddy），其余的都是Free。&lt;/p&gt;



































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;类别&lt;/th&gt;&lt;th&gt;服务&lt;/th&gt;&lt;th&gt;花费&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;代码托管&lt;/td&gt;&lt;td&gt;Github（Hugo框架）&lt;/td&gt;&lt;td&gt;Free&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;部署托管&lt;/td&gt;&lt;td&gt;Vercel（Git Commit自动触发）&lt;/td&gt;&lt;td&gt;Free&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;图床&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://sm.ms&quot;&gt;https://sm.ms&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Free（5GB）&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CDN加速&lt;/td&gt;&lt;td&gt;Cloudflare&lt;/td&gt;&lt;td&gt;Free&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;域名购买&lt;/td&gt;&lt;td&gt;Godaddy&lt;/td&gt;&lt;td&gt;156元/年&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;h2 id=&quot;多邻国家庭套餐&quot;&gt;多邻国（家庭套餐）&lt;/h2&gt;















&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;分类&lt;/th&gt;&lt;th&gt;周期及成本&lt;/th&gt;&lt;th&gt;需要程度&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;学习&lt;/td&gt;&lt;td&gt;0元/年&lt;/td&gt;&lt;td&gt;需要/续订&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;学语言的利器，白嫖了朋友的家庭套餐。。。，不过也可以从小红书等渠道去找拼团，也比较实惠，千万不要自己一个人购买，太贵了。&lt;/p&gt;
&lt;h2 id=&quot;cubox-pro&quot;&gt;Cubox-Pro&lt;/h2&gt;















&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;分类&lt;/th&gt;&lt;th&gt;周期及成本&lt;/th&gt;&lt;th&gt;需要程度&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;碎片信息收集&lt;/td&gt;&lt;td&gt;98元/年&lt;/td&gt;&lt;td&gt;需要/续订&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;我的信息输入流，一般来自于3类&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;书籍（纸质或电子）&lt;/li&gt;
&lt;li&gt;订阅的RSS&lt;/li&gt;
&lt;li&gt;关注的公众号&lt;/li&gt;
&lt;li&gt;其他社交APP等&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;对于上面除了书籍外，有很多信息当时看了一遍，觉得不错，或者可以继续深入阅读，或者收藏，我会加入到我的Cubox里面，在写Blog、写规划、思考某类问题时，会进行相关标签的搜索，进行信息的二次加工，所以Cubox对我来讲，还是必须品。&lt;/p&gt;
&lt;h2 id=&quot;icloud&quot;&gt;iCloud&lt;/h2&gt;















&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;分类&lt;/th&gt;&lt;th&gt;周期及成本&lt;/th&gt;&lt;th&gt;需要程度&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;云存储&lt;/td&gt;&lt;td&gt;21元/月（200G）&lt;/td&gt;&lt;td&gt;不需要/不续订&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;iCloud确实在多设备照片和文件同步很方便，但是当我的iCloud大小超过了200G的时候，这个选项就没有性价比了。200G是每月21元，下一个档位是2TB，每月68元，一年800+，着实有点肉疼。经过一番调研，最终选择了NAS方案，彻底解决设备文件同步和备份的问题，从此省取了每年800+的费用。当然，对NAS的首次投资肯定是大于800的，还是需要看长期成本递减。NAS当时在极空间和绿联之间二选一，最终选择了绿联DX4600+，配了8TB硬盘。买了2个月后，绿联新款NAS开始出现软件质量问题，被用户声讨，索性的是老版的软件比较稳定，至今体验还不错。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.ly85.dev/subscription-02.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;todoist&quot;&gt;Todoist&lt;/h2&gt;















&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;分类&lt;/th&gt;&lt;th&gt;周期及成本&lt;/th&gt;&lt;th&gt;需要程度&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;效率工具&lt;/td&gt;&lt;td&gt;30元/月&lt;/td&gt;&lt;td&gt;不需要/不续订&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;不是深度任务使用者，在订阅了6个月左右后，觉得性价比对我来讲不高。最终用Notion的ToDo List模板，替换掉了Todoist。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.ly85.dev/subscription-01.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;图图记账&quot;&gt;图图记账&lt;/h2&gt;















&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;分类&lt;/th&gt;&lt;th&gt;周期及成本&lt;/th&gt;&lt;th&gt;需要程度&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;效率工具&lt;/td&gt;&lt;td&gt;8元/月&lt;/td&gt;&lt;td&gt;不需要/不续订&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;我是一个有着洁癖的程序猿，所以无论是Coding还是写文档，或者是生活中的信息流等等，都希望可以数据化，通过可视化分析，找到一些所谓的「成就感」。图图记账是在「少数派」的推荐下开始使用的，基本使用了6个月后，发现一个很麻烦的问题，记账不及时，而且有一个很大的问题是，有些财务的隐私信息，不是很敢在互联网产品内记录，所以，基于及时性和隐私性，最终弃用。&lt;/p&gt;
&lt;p&gt;使用了开源解决方案beancount替换，记账周期基本是按照季度进行。原始流水从微信和支付导出Excel，然后通过Python脚本简单处理下，自动生成beancount的格式文本，经过微调就可以了，最终效果如下。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.ly85.dev/subscription-03.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;sam-club-卓越会员&quot;&gt;Sam Club 卓越会员&lt;/h2&gt;















&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;分类&lt;/th&gt;&lt;th&gt;周期及成本&lt;/th&gt;&lt;th&gt;需要程度&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;购物&lt;/td&gt;&lt;td&gt;680元/年&lt;/td&gt;&lt;td&gt;需要/续订&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;人到中年，发现可以把逛超市当做是娱乐活动之一，我和老婆都很喜欢逛山姆。山姆的品质确实是一流的，再加上山姆目前在北京有1小时极速达，非常爽，家里缺什么下了单，不到1小时就送到了。卓越会员是消费返利的，返利是在下个月的消费可以使用的，所以其实加上返利的钱，总体是不亏的，和200+的普通会员没啥差距。&lt;/p&gt;
&lt;p&gt;[播客] 声动早咖啡&lt;/p&gt;
&lt;p&gt;[播客] 虚实之间&lt;/p&gt;
&lt;p&gt;[AIGC] 302.ai&lt;/p&gt;
&lt;p&gt;[RSS] RSS订阅Blog的Feed是我获取高质量信息的一个非常主要的渠道，有需要的可以加我联系方式，我发你啊&lt;/p&gt;
&lt;p&gt;优化完后，从每年3200下到每年2100（依然很贵），后面考虑把家里的NAS的功能充分发挥出来，没准可以替换掉更多的收费订阅服务。&lt;/p&gt;</content:encoded></item><item><title>AIGC应用探索分享</title><link>https://blog.ly85.dev/zh/posts/aigc-share/</link><guid isPermaLink="true">https://blog.ly85.dev/zh/posts/aigc-share/</guid><description>介绍AIGC的定义、生态与应用场景，并汇总常见工具与学习类示例。</description><pubDate>Sun, 21 Jan 2024 10:19:36 GMT</pubDate><content:encoded>&lt;p&gt;&lt;em&gt;&lt;strong&gt;生成式人工智能（Artificial Intelligence Generated Content）&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h2 id=&quot;定义&quot;&gt;定义&lt;/h2&gt;
&lt;p&gt;百度百科&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;生成式人工智能AIGC（Artificial Intelligence Generated Content）是人工智能1.0时代进入2.0时代的重要标志。&lt;/p&gt;
&lt;p&gt;GAN、CLIP、Transformer、Diffusion、预训练模型、多模态技术、生成算法等技术的&lt;strong&gt;累积融合&lt;/strong&gt;，&lt;strong&gt;催生了AIGC的爆发&lt;/strong&gt;。算法不断迭代创新、预训练模型引发AIGC技术能力质变，多模态推动AIGC内容多边形，使得AIGC具有更通用和更强的基础能力。&lt;/p&gt;
&lt;p&gt;AIGC对于人类社会、人工智能的意义是里程碑式的。短期来看AIGC改变了基础的生产力工具，中期来看会改变社会的生产关系，长期来看促使整个社会生产力发生质的突破，在这样的生产力工具、生产关系、生产力变革中，生产要素——数据价值被极度放大。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.ly85.dev/AIGC-Share-History.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;基础的生成算法模型不断突破创新。&lt;/li&gt;
&lt;li&gt;预训练模型引发了AIGC技术能力的质变。&lt;/li&gt;
&lt;li&gt;多模态技术推动了AIGC的内容多样性，让AIGC具有了更通用的能力。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;生产力、生产关系、生产资料的变化&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.ly85.dev/AIGC-Share-Change.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;生态体系&quot;&gt;生态体系&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.ly85.dev/AIGC-Share-Layer.jpg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;基础模型&quot;&gt;基础模型&lt;/h2&gt;
&lt;p&gt;国外主要的AIGC预训练模型&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.ly85.dev/AIGC-Share-Model.jpg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;场景和应用&quot;&gt;场景和应用&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Tool AI&lt;/li&gt;
&lt;li&gt;AI工具箱&lt;/li&gt;
&lt;li&gt;AI导航&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.ly85.dev/AIGC-Share-App.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h3 id=&quot;国外aigc应用&quot;&gt;国外AIGC应用&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.ly85.dev/AIGC-Share-Inter-App.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h3 id=&quot;国内aigc应用&quot;&gt;国内AIGC应用&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.ly85.dev/AIGC-Share-China-App.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h3 id=&quot;通用类场景应用示例&quot;&gt;通用类场景应用示例&lt;/h3&gt;
&lt;h4 id=&quot;chatgpt&quot;&gt;ChatGPT&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.ly85.dev/AIGC-Share-ChatGPT-DEMO1.jpeg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.ly85.dev/AIGC-Share-ChatGPT-DEMO2.jpeg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h4 id=&quot;chatpdf&quot;&gt;ChatPDF&lt;/h4&gt;
&lt;p&gt;ChatPDF可以将200页以内的pdf文档拖入，ChatPDF马上就自己“读懂”了整个文章的内容。首先它能够生成一个摘要大致总结文档的要点，然后用户可以在对话框进一步追问更多问题，ChatPDF能根据文档内容进行回答。&lt;/p&gt;
&lt;p&gt;我周末在帮我儿子复习，把总结的数学错题PDF输入给了ChatPDF，右侧是他的回答，准确率还不错。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.ly85.dev/AIGC-Share-ChatPDF-DEMO.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h4 id=&quot;腾讯混元助手&quot;&gt;腾讯混元助手&lt;/h4&gt;
&lt;p&gt;可以在微信小程序搜索「腾讯混元助手」&lt;/p&gt;
&lt;p&gt;集成了聊天 / 绘画 / 编程等多场景&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.ly85.dev/AIGC-Share-HunYuan.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h4 id=&quot;通义听语&quot;&gt;通义听语&lt;/h4&gt;
&lt;p&gt;可以在微信小程序搜索「通义听语」&lt;/p&gt;
&lt;p&gt;音频转写类，可以实时记录语音，同步实时翻译，智能总结等等&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.ly85.dev/AIGC-Share-TongYi.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h4 id=&quot;文心一言&quot;&gt;文心一言&lt;/h4&gt;
&lt;p&gt;在APP「文心一言」&lt;/p&gt;
&lt;p&gt;集成了聊天 / 绘画 / 编程等多场景&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.ly85.dev/AIGC-Share-WenXin.jpeg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h4 id=&quot;runway&quot;&gt;Runway&lt;/h4&gt;
&lt;p&gt;&lt;a href=&quot;https://runwayml.com&quot;&gt;https://runwayml.com&lt;/a&gt;&lt;/p&gt;
&lt;h4 id=&quot;hotokeai&quot;&gt;hotoke.ai&lt;/h4&gt;
&lt;p&gt;hotoke.ai是一个日本开发者开发的基于ChatGPT 的佛祖平台，已为百万人排忧解难。&lt;/p&gt;
&lt;p&gt;我问了大家经常会在迷茫的时候思考的问题：「人生的意义是什么」&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.ly85.dev/AIGC-Share-Hotoke.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h3 id=&quot;学习场景应用示例&quot;&gt;学习场景应用示例&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.ly85.dev/AIGC-Share-Edu-Xmind.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h4 id=&quot;多邻国&quot;&gt;多邻国&lt;/h4&gt;
&lt;p&gt;一个流行的免费语言学习应用，通过游戏化的方式帮助用户学习新的语言。（我本人一直使用，体验非常好）&lt;/p&gt;
&lt;p&gt;美国版本新增了GPT-4功能：Max。&lt;/p&gt;
&lt;p&gt;主要提供了基于GPT-4模型的2大功能：Explain My Answer 和 Roleplay。&lt;/p&gt;
&lt;h5 id=&quot;explain-my-answer&quot;&gt;Explain My Answer&lt;/h5&gt;
&lt;p&gt;这个功能的主要目的是让学生在练习时不仅能了解他们答案的正确性或错误性，而且还能够深入了解他们的答案背后的原因。无论答案是正确还是错误的，学生都可以与虚拟助手交流，获得关于为什么他们的答案是对还是错的简要解释，并询问示例或进一步的澄清。这有助于学生更好地理解并纠正他们的错误，从而提升学习效果。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.ly85.dev/AIGC-Share-Duolingo-DEMO1.gif&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h5 id=&quot;roleplay&quot;&gt;Roleplay&lt;/h5&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.ly85.dev/AIGC-Share-Duolingo-DEMO2.gif&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;该功能允许学生在应用程序中与虚拟角色进行真实世界对话技能的练习。学生可以通过点击角色来访问，完成挑战可以获得经验值（XP）。在这些挑战中，学生将与虚拟角色进行不同情景下的对话练习。应用程序会引导学生探讨不同的情境，比如与角色Lin讨论未来的度假计划，或者在巴黎的咖啡馆点咖啡，或者与角色Eddy一起购买家具，或者邀请朋友一起去远足。这些练习有助于学生在不同情景下练习语言交流能力，从而提高他们的语言技能水平。&lt;/p&gt;
&lt;h4 id=&quot;网易有道ai口语老师&quot;&gt;网易有道（AI口语老师）&lt;/h4&gt;
&lt;p&gt;和多邻国提供的roleplay场景类似，模拟各种对话场景，但是体验很一般。&lt;/p&gt;
&lt;p&gt;API技术文档&lt;/p&gt;
&lt;p&gt;可以进行小程序体验&lt;/p&gt;
&lt;h4 id=&quot;grammarly&quot;&gt;Grammarly&lt;/h4&gt;
&lt;p&gt;Grammarly&lt;/p&gt;
&lt;p&gt;写作辅助工具，可以提升作文写作能力&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.ly85.dev/AIGC-Share-Grammarly-DEMO.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h4 id=&quot;khanmigo&quot;&gt;Khanmigo&lt;/h4&gt;
&lt;p&gt;Khanmigo基于GPT-4等模型开发了个性化学习工具，比如“辅导我”模式和针对不同科目的测验模块。对于K12主题的问题回答最准确，但对于小众主题则不太准确。&lt;/p&gt;
&lt;h4 id=&quot;quizletq-chat&quot;&gt;Quizlet（Q-Chat）&lt;/h4&gt;
&lt;p&gt;ChatGPT的AI家教Q-Chat。它是一个在线学习平台，提供各种互动学习工具，帮助孩子们理解和记忆知识。Q-Chat，作为其最新的功能，就像一个个性化的AI导师，根据每个学生的学习风格和进度，提供帮助。Q-Chat能通过提出问题和孩子进行有深度的对话，无论他们正在学习什么。它使用基于问题的苏格拉底式教学法，激发孩子的主动学习欲望，帮助他们深入理解知识。&lt;/p&gt;
&lt;p&gt;Youtube介绍视频：&lt;a href=&quot;https://www.youtube.com/watch?v=VLUGMzbJ3_M&quot;&gt;https://www.youtube.com/watch?v=VLUGMzbJ3_M&lt;/a&gt;&lt;/p&gt;
&lt;h4 id=&quot;mathgpt未发布&quot;&gt;MathGPT（未发布）&lt;/h4&gt;
&lt;p&gt;MathGPT以讲题、解题、算法等为核心，既能随机生成数学题，也能系统自动给出答案，其支持中英文，并可在移动端和PC端体验。&lt;/p&gt;
&lt;p&gt;就目前数据而言，MathGPT能够覆盖高中、初中、小学等数学内容，代数题、应用题、计算题等，相关数学题目都可通过MathGPT来找到相应的答案，解题思路与逻辑也更加清晰明了。&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;适应变化，拥抱AIGC，学会使用AIGC工具，结合自己的工作和生活，让AIGC帮助我们变得更好&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;聊天对话类的助手：可以帮忙高效查资料、总结归纳（有条件的用国外ChatGPT，没有条件的可以用腾讯、百度、阿里的）&lt;/li&gt;
&lt;li&gt;图片、视频类助手：可以通过Midjourney、Runway等工具，加速海报、对外文案的输出&lt;/li&gt;
&lt;li&gt;编程助手：通过Github Copilot、Bito等助手，加速编码&lt;/li&gt;
&lt;/ul&gt;</content:encoded></item><item><title>我的2023</title><link>https://blog.ly85.dev/zh/posts/my-2023/</link><guid isPermaLink="true">https://blog.ly85.dev/zh/posts/my-2023/</guid><description>回顾2023在生活、工作与阅读写作上的变化与收获。</description><pubDate>Sun, 07 Jan 2024 01:44:56 GMT</pubDate><content:encoded>&lt;p&gt;年底有点忙，忙着产品大版本上线发布，忙着给孩子做期末复习等等。到了7号才整理了自己的2023。从生活、工作、阅读和写作3个方面整理。&lt;/p&gt;
&lt;h2 id=&quot;生活&quot;&gt;生活&lt;/h2&gt;
&lt;p&gt;2023年生活上最大的变化就是，家里多了一个新成员，一只可爱的狗狗（小儿子），叫咖啡豆的泰迪熊。于是我的家庭组成变成了：我、老婆、大儿子（娃）、小儿子（咖啡豆）。每次回家开门，娃和狗子，一起扑向你的快乐（有时候还挂在你身上），是我每天最期待的时刻，给我的工作和生活做了减压的催化剂。&lt;/p&gt;
&lt;p&gt;另外，2023还过了有史以来最贵的十一黄金周（十一医院深度游）。儿子在9月底确诊了支原体肺炎，快速发展到重度的情况，经历了紧张的找医院住院的过程，最终住进了「新世纪儿童医院」，经过12天的治疗（2次洗肺），顺利出院。
最大的感受就是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;看病好贵&lt;/li&gt;
&lt;li&gt;医疗资源紧缺&lt;/li&gt;
&lt;li&gt;传染病在新冠后怎么TMD这么厉害&lt;/li&gt;
&lt;li&gt;必须上高端医疗险（11月立马补了友邦的）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;2023的旅行不多，先后去了三亚、广西、长白山、延吉。都说读万卷书，不如行万里路。在这个看似不太好的时代，不要过度卷工作和学习，抽些时间出去看看世界，从另外一个角度去学习和认知这个世界，旅行确实可以让自己内心更加平静、缓解焦虑。&lt;/p&gt;
&lt;p&gt;2023在习惯上，一共写了5篇，平均2个多月一篇。到了年底，实在为自己的懒惰而羞愧。写的少主要还是，对工作和技术积累的总结和整理偏少，所以，可以分享的内容不多，明年加油，争取每月1篇。&lt;/p&gt;
&lt;h2 id=&quot;写给自己&quot;&gt;写给自己&lt;/h2&gt;
&lt;p&gt;回顾自己的生活，不是坐在屏幕前写代码、写方案，就是在陪娃、遛狗，偶尔看看世界，中年人的生活状态好像一览无余，全部命中。虽然好像缺少了热情和梦想，但是总体来讲，我不是特别焦虑（有时候会有一点），物欲不高，没啥外债，做着自己选择并打拼了十几年的行业，公司氛围很好，老板很Nice，还有时间陪家人，还是挺好的。&lt;/p&gt;
&lt;p&gt;希望2024自己可以继续多多读书，多出去走走，好好陪家人，在人生的道路上继续修行，活的真实，遵从内心，顺其自然，随遇而安。&lt;/p&gt;</content:encoded></item><item><title>AI编码助手</title><link>https://blog.ly85.dev/zh/posts/ai-copilot/</link><guid isPermaLink="true">https://blog.ly85.dev/zh/posts/ai-copilot/</guid><description>整理Bito、Copilot、Codeium等AI编码助手的功能、安装与使用建议。</description><pubDate>Fri, 21 Jul 2023 01:44:56 GMT</pubDate><content:encoded>&lt;h2 id=&quot;为什么需要使用ai编码助手&quot;&gt;为什么需要使用AI编码助手&lt;/h2&gt;
&lt;p&gt;提高编码效率，适应新时代的编程方式&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;大模型时代，正在催生“超级个体”。这些超级个体效率极高，熟练使用各种工具，快速交付业务价值。&lt;/li&gt;
&lt;li&gt;工具使用前提，都需要「科学上网」，这个是没有办法的&lt;/li&gt;
&lt;li&gt;使用过程中，请注意信息安全，密钥、重要代码，不要进行复制询问&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;工具使用介绍&quot;&gt;工具使用介绍&lt;/h2&gt;
&lt;h2 id=&quot;bito官网bito&quot;&gt;Bito（官网：Bito）&lt;/h2&gt;
&lt;p&gt;个人版（免费）&lt;/p&gt;
&lt;h3 id=&quot;介绍&quot;&gt;介绍&lt;/h3&gt;
&lt;p&gt;Bito AI是一个通用AI助手，开发者可以向它提出任何技术问题，它可以从自然语言提示中生成代码，也可以对现有代码提供反馈，主要功能如下：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;生成代码：用户可以用自然语言向Bito提出需求，Bito可以自动生成不同语言的代码实现（如Java）。&lt;/li&gt;
&lt;li&gt;命令语法：用户可以询问任何技术命令的语法和用法（如git）。&lt;/li&gt;
&lt;li&gt;测试用例：Bito可以为给定的代码自动生成测试用例。&lt;/li&gt;
&lt;li&gt;解释代码：Bito可以解释选中的代码片段的作用和实现原理。&lt;/li&gt;
&lt;li&gt;注释方法：Bito可以为函数或方法自动生成注释，补充到用户的代码中。&lt;/li&gt;
&lt;li&gt;改进性能：用户可以询问如何优化给定代码的性能。&lt;/li&gt;
&lt;li&gt;检查安全：检查代码是否存在已知的安全问题。&lt;/li&gt;
&lt;li&gt;学习技术概念：用户可以问Bito任何技术概念的相关问题（如B+树），Bito可以解释清楚。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;安装&quot;&gt;安装&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.bito.ai/getting-started/installing-on-jetbrain-ides&quot;&gt;IDEA插件&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.bito.ai/getting-started/installing-on-visual-studio-code&quot;&gt;VS Code插件&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/gitbito/CLI&quot;&gt;CLI&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;使用&quot;&gt;使用&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Youtube视频&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/@bitoai/featured&quot;&gt;https://www.youtube.com/@bitoai/featured&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=q42hqwT-jsg&quot;&gt;https://www.youtube.com/watch?v=q42hqwT-jsg&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;文档介绍&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.bito.ai/getting-started/bito-ai-examples&quot;&gt;https://docs.bito.ai/getting-started/bito-ai-examples&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;github-copilot官网copilot&quot;&gt;Github Copilot（官网：Copilot）&lt;/h2&gt;
&lt;p&gt;个人版（$10 / Month），可以有传送门（私信我）&lt;/p&gt;
&lt;h3 id=&quot;介绍-1&quot;&gt;介绍&lt;/h3&gt;
&lt;p&gt;GitHub Copilot为开发者提供了非常有价值的代码自动完成与生成功能。它可以根据代码中生成代码行或整个函数。通过智能代码自动完成和生成，GitHub Copilot可以提升开发效率，降低开发难度。它的出现将进一步推动AI在软件开发中的应用，使开发者从代码编写的繁琐工作中解放出来,，更专注于设计与算法。&lt;/p&gt;
&lt;h3 id=&quot;安装-1&quot;&gt;安装&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://plugins.jetbrains.com/plugin/17718-github-copilot&quot;&gt;IDEA插件&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;VS Code插件&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://marketplace.visualstudio.com/items?itemName=GitHub.copilot&quot;&gt;Copilot&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://marketplace.visualstudio.com/items?itemName=GitHub.copilot-labs&quot;&gt;Copilot Labs（对话助手）&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;使用-1&quot;&gt;使用&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://docs.github.com/zh/copilot/quickstart&quot;&gt;https://docs.github.com/zh/copilot/quickstart&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&quot;codeium官网codeium&quot;&gt;Codeium（官网：Codeium）&lt;/h2&gt;
&lt;p&gt;个人版（免费），VS Code体验较好，IDEA差一些&lt;/p&gt;
&lt;h3 id=&quot;介绍-2&quot;&gt;介绍&lt;/h3&gt;
&lt;p&gt;Codeium是一个利用AI进行代码自动生成的平台，主要功能包括：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;代码生成：用户可以通过自然语言描述需求，Codeium可以自动生成对应的代码实现。支持多种编程语言，如Java、Python、JavaScript等。&lt;/li&gt;
&lt;li&gt;代码搜索：用户可以通过关键词搜索代码段，Codeium可以从海量代码库中找到相关的代码示例。&lt;/li&gt;
&lt;li&gt;代码解释：用户可以选择一段代码，Codeium可以用自然语言对其进行解释，帮助用户更好地理解代码逻辑。&lt;/li&gt;
&lt;li&gt;代码优化：用户可以让Codeium分析已有代码，给出代码质量优化、算法优化等方面的建议。&lt;/li&gt;
&lt;li&gt;代码编辑：Codeium内置智能代码编辑器，可以提供代码自动完成、语法检查、格式化等功能。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;安装-2&quot;&gt;安装&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://plugins.jetbrains.com/plugin/20540-codeium-ai-autocomplete-for-python-js-ts-java-go-and-more&quot;&gt;IDEA插件&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://marketplace.visualstudio.com/items?itemName=Codeium.codeium&quot;&gt;VS Code插件&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;使用-2&quot;&gt;使用&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://codeium.com/chat&quot;&gt;https://codeium.com/chat&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;建议方案&quot;&gt;建议方案&lt;/h2&gt;
&lt;h2 id=&quot;个人使用感受&quot;&gt;个人使用感受&lt;/h2&gt;
&lt;h3 id=&quot;bito&quot;&gt;Bito&lt;/h3&gt;
&lt;p&gt;非常强大助手类工具。默认模板功能很好用，可以方便在对话中插入代码。然后询问针对代码的问题。IDEA和VS Code的插件使用体验都不错。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.ly85.dev/AI-Coding-Assistant-Bito-demo1.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.ly85.dev/AI-Coding-Assistant-Bito-demo2.png.jpg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h3 id=&quot;github-copilot&quot;&gt;Github Copilot&lt;/h3&gt;
&lt;p&gt;理解代码上下文很厉害（用的越多，越理解你），可以快速补全代码。常规的工具和算法的方法，可以依赖直接生成的代码进行开发。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.ly85.dev/AI-Coding-Assistant-Copilot-demo1.jpg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.ly85.dev/AI-Coding-Assistant-Copilot-demo2.jpg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h3 id=&quot;codeium&quot;&gt;Codeium&lt;/h3&gt;
&lt;p&gt;代码补全能力一般，在IDEA下插件体验不是很好，在VS Code下，体验还不错，功能其实和Bito有些类似&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.ly85.dev/AI-Coding-Assistant-Codeium-demo.jpg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;使用idea&quot;&gt;使用IDEA&lt;/h2&gt;
&lt;p&gt;Bito + Github Copilot（如果有预算）&lt;/p&gt;
&lt;h2 id=&quot;使用vs-code&quot;&gt;使用VS Code&lt;/h2&gt;
&lt;p&gt;Bito + Codeium（如果有预算，可以换成Github Copilot）&lt;/p&gt;</content:encoded></item><item><title>如何处理「线上问题」</title><link>https://blog.ly85.dev/zh/posts/how-to-handle-online-defects/</link><guid isPermaLink="true">https://blog.ly85.dev/zh/posts/how-to-handle-online-defects/</guid><description>梳理线上问题的定义、严重程度与处理流程，并给出值班与复盘实践。</description><pubDate>Fri, 28 Apr 2023 01:44:56 GMT</pubDate><content:encoded>&lt;h2 id=&quot;什么是线上问题&quot;&gt;什么是「线上问题」&lt;/h2&gt;
&lt;p&gt;从产品开发周期上来讲，「线上问题」发生在产品发布后。&lt;/p&gt;
&lt;p&gt;「线上问题」指提供给用户的服务全部或部分不可用、服务性能低、用户吓验不好等。在产品前期阶段，为了抢占市场先机，产品新功能的发布速度追求往往优先于其质量，埋下了很多技术债务，部分技术债务的爆发会引起「线上问题」，造成客户满意度下降，甚至是直接经济损失。&lt;/p&gt;
&lt;h2 id=&quot;线上问题流程概览&quot;&gt;「线上问题」流程概览&lt;/h2&gt;
&lt;p&gt;发现 -&gt; 处理 -&gt; 总结 -&gt; 反馈&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.ly85.dev/Handle-Online-Defects-01.jpg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;严重程度&quot;&gt;严重程度&lt;/h2&gt;






























&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;严重程度&lt;/th&gt;&lt;th&gt;描述&lt;/th&gt;&lt;th&gt;处理方式&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;致命&lt;/td&gt;&lt;td&gt;最高级别，系统或服务完全停止或无法使用&lt;/td&gt;&lt;td&gt;立即采取紧急措施进行解决&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;严重&lt;/td&gt;&lt;td&gt;次高级别，系统或服务部分停止或使用受限&lt;/td&gt;&lt;td&gt;尽快地采取措施进行解决&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;一般&lt;/td&gt;&lt;td&gt;一般级别，系统或服务的使用没有明显的影响&lt;/td&gt;&lt;td&gt;但需要在合理的时间内进行处理，以防发展成更高级别的故障&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;轻微&lt;/td&gt;&lt;td&gt;最低级别，不影响系统或服务使用的小问题或异常&lt;/td&gt;&lt;td&gt;日常维护过程中逐步处理&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;h2 id=&quot;处理流程&quot;&gt;处理流程&lt;/h2&gt;
&lt;h2 id=&quot;用户反馈监控告警&quot;&gt;用户反馈 &amp;#x26; 监控告警&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.ly85.dev/Handle-Online-Defects-02.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;值班策略&quot;&gt;值班策略&lt;/h2&gt;
&lt;p&gt;每周轮换：&lt;strong&gt;每周一上午10点&lt;/strong&gt;，会在钉群推送本周值班的人员，如下图&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.ly85.dev/Handle-Online-Defects-03.jpg&quot; alt=&quot;alert&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;错误分析报告&quot;&gt;错误分析报告&lt;/h2&gt;
&lt;p&gt;每天会进行日志分析，向钉钉服务告警群推送 &lt;strong&gt;日志错误分类报告&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;值班RD每天下班前，针对报告进行分析，如果判断为线上问题，报告给QA进行登记&lt;/p&gt;
&lt;h2 id=&quot;复盘报告&quot;&gt;复盘报告&lt;/h2&gt;
&lt;h2 id=&quot;故障复盘报告致命&quot;&gt;故障复盘报告（致命）&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.ly85.dev/Handle-Online-Defects-04.jpg&quot; alt=&quot;review-report&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;双周复盘报告整体&quot;&gt;双周复盘报告（整体）&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.ly85.dev/Handle-Online-Defects-05.jpg&quot; alt=&quot;review-report&quot;&gt;&lt;/p&gt;</content:encoded></item><item><title>如何理解「用户故事」</title><link>https://blog.ly85.dev/zh/posts/how-to-understand-userstory/</link><guid isPermaLink="true">https://blog.ly85.dev/zh/posts/how-to-understand-userstory/</guid><description>介绍用户故事的定义、INVEST准则与估算思路，附模板与常见问题。</description><pubDate>Sun, 05 Mar 2023 01:44:56 GMT</pubDate><content:encoded>&lt;h2 id=&quot;什么是用户故事&quot;&gt;什么是用户故事&lt;/h2&gt;
&lt;p&gt;用户故事是一个简短而简单的功能描述，它为用户或客户带来价值，并且团队可以在迭代中交付这些功能。&lt;/p&gt;
&lt;p&gt;用户故事应该回答三个问题:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;我们为谁实现它?——期望&amp;#x3C;用户&amp;#x26;gt;的类型&lt;/li&gt;
&lt;li&gt;我们实现的是什么功能?——我希望&amp;#x3C;功能&amp;#x26;gt;&lt;/li&gt;
&lt;li&gt;我们为什么要实现它?——&amp;#x3C;价值，和好处&amp;#x26;gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;所以，用户故事的典型格式是:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;作为一个&amp;#x3C;某种类型用户&gt;，我想要&amp;#x3C;功能或场景&gt;，以便&amp;#x3C;得到价值或好处&gt;。&lt;/p&gt;
&lt;p&gt;As a , I want to , so that .&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;例如：作为注册用户，我希望能够将我的照片下载到我的个人资料中，以便其他用户可以看到我的样子。&lt;/p&gt;
&lt;h2 id=&quot;如何编写用户故事&quot;&gt;如何编写用户故事&lt;/h2&gt;
&lt;h2 id=&quot;层级结构&quot;&gt;层级结构&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.ly85.dev/Understand-Userstory-01.png&quot; alt=&quot;epic-feature-userstory&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;准则&quot;&gt;准则&lt;/h2&gt;
&lt;p&gt;根据INVEST准则，用户故事应为：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;独立 Independent&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;不依赖其他故事（这条其实，在现实中，很难实现，因为的确有一些故事依赖前置故事）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;可协商 Negotiable&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;并非一成不变，可以进行讨论。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;有价值 Valuable&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;用户故事必须对业务具有明确且可量化的价值。这意味着重构、代码清理、架构设计等这类技术实践不是故事。同时这也意味着故事是一个垂直切片，它不可能是一个单独的前端或后端的任务。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;可估计的 Estimable&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;足够清晰，交付团队可以很好地知道它有多大。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;足够小 Small&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;用户故事应该不大于一到两个开发人员在一个迭代中实现的工作量。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;可测试 Testing&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;用户故事必须对业务具有明确且可量化的价值。这意味着重构、代码清理、架构设计等这类技术实践不是故事。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;有价值 Testing&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;我们使用的用户故事模板&quot;&gt;我们使用的用户故事模板&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.ly85.dev/Understand-Userstory-02.png&quot; alt=&quot;user-story-template&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;故事编写faq&quot;&gt;故事编写FAQ&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;Q1:故事是否可以针对不同的端，进行拆分？&lt;/p&gt;
&lt;p&gt;A1:如果故事本身涉及到了2个端（即移动端和PC端），如果2个端的故事点较大，且FE为不同的人，可以针对不同的端，进行故事的拆分。&lt;/p&gt;
&lt;p&gt;Q1:故事点如果特别大，是否进行拆分？&lt;/p&gt;
&lt;p&gt;A1:故事是否拆分的标准是，是否可以交付「用户可见的价值」，和故事点本身无直接关系。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;如何进行故事点估算&quot;&gt;如何进行故事点估算&lt;/h2&gt;
&lt;h2 id=&quot;什么是故事点&quot;&gt;什么是故事点&lt;/h2&gt;
&lt;p&gt;故事点是对一个故事的难度和工作量的估计，说白了就是一件工作的工作量的度量。故事点的估计值不是承诺，跟实际完成时间没有直接关系。&lt;/p&gt;
&lt;h2 id=&quot;故事点的通货膨胀&quot;&gt;故事点的「通货膨胀」&lt;/h2&gt;
&lt;p&gt;代码质量、开发人员水平、对业务熟悉程度，都会影响交付速度，但是当不同的开发人员，进行故事点估算时，如果以完成时间为标准，就会完成每个人的故事点估算是完全不一样的，这就引起了「通货膨胀」。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.ly85.dev/Understand-Userstory-03.png&quot; alt=&quot;estimate-formula&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;计划扑克估算&quot;&gt;计划扑克估算&lt;/h2&gt;
&lt;p&gt;参考：&lt;a href=&quot;http://142.171.229.92/technology/plan-poker/&quot;&gt;计划扑克&lt;/a&gt;&lt;/p&gt;</content:encoded></item><item><title>计划扑克</title><link>https://blog.ly85.dev/zh/posts/plan-poker/</link><guid isPermaLink="true">https://blog.ly85.dev/zh/posts/plan-poker/</guid><description>说明计划扑克的角色、步骤与斐波那契估算规则。</description><pubDate>Thu, 02 Mar 2023 01:44:56 GMT</pubDate><content:encoded>&lt;h2 id=&quot;什么是计划扑克&quot;&gt;什么是计划扑克&lt;/h2&gt;
&lt;p&gt;一种基于共识的估算方式（游戏），主要用于估算Scrum迭代中的开发任务的工作量问题，通过团队的共同的评估方式，使得偏差变得相对较小。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.ly85.dev/Plan-Poker-01.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;实施步骤&quot;&gt;实施步骤&lt;/h2&gt;
&lt;h2 id=&quot;角色说明&quot;&gt;角色说明&lt;/h2&gt;

























&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;参与角色&lt;/th&gt;&lt;th&gt;说明&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Scrum Master（QA）&lt;/td&gt;&lt;td&gt;主持整体估算流程&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;PM&lt;/td&gt;&lt;td&gt;对故事进行解释和描述&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;RD / FE&lt;/td&gt;&lt;td&gt;进行估算的开发人员&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;RD TL / FE TL&lt;/td&gt;&lt;td&gt;故事点合理性裁判&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;h2 id=&quot;round-1&quot;&gt;Round 1&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;1.「PM」进行Story的描述和讲解&lt;/li&gt;
&lt;li&gt;2.「RD / FE」 通过面朝下的方式打出编号卡，Scrum Master宣布翻牌，同时翻开牌面（斐波那契值：1，2，3，5，8，13，20，40）&lt;/li&gt;
&lt;li&gt;3.解释估算偏差，并讨论&lt;/li&gt;
&lt;li&gt;4.估算共识达成&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;round-2&quot;&gt;Round 2&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;1.针对不一样的故事点，「RD / FE」解释估算偏差，并达成共识&lt;/li&gt;
&lt;li&gt;2.Scrum Master把最终故事点写到故事列表中&lt;/li&gt;
&lt;li&gt;3.全体参与优先级的排序，并填写到故事列表中&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;斐波纳契序列和计划扑克&quot;&gt;斐波纳契序列和计划扑克&lt;/h2&gt;
&lt;p&gt;计划扑克使用Fibonacci序列作为Story Point。Fibonacci序列是13世纪引入的数学系列数字，用于解释自然的某些形成方面，例如树的分支。通过将前两个数字相加来生成序列，以获得序列中的下一个值：0、1/2、1、2、3、5、8、13、20等。
出于敏捷估计的目的，一些数字已经改变，导致以下系列：1、2、3、5、8、13、20、40、100，如下图所示：&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.ly85.dev/Plan-Poker-02.jpg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;点数约定：1 Story Point 约等于  理想情况下 1人/天（按照团队研发人员的平均水平估算）&lt;/p&gt;





















&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;牌&lt;/th&gt;&lt;th&gt;解释&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;不需要工作量&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;?&lt;/td&gt;&lt;td&gt;无法估计&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;其他&lt;/td&gt;&lt;td&gt;按照字面意思理解点数&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</content:encoded></item><item><title>作为研发Leader，如何做迭代管理</title><link>https://blog.ly85.dev/zh/posts/as-leader-how-to-manage-agile/</link><guid isPermaLink="true">https://blog.ly85.dev/zh/posts/as-leader-how-to-manage-agile/</guid><description>分享研发Leader视角的迭代流程框架与各阶段会议、职责分工。</description><pubDate>Tue, 07 Feb 2023 01:44:56 GMT</pubDate><content:encoded>&lt;h2 id=&quot;写在前面&quot;&gt;写在前面&lt;/h2&gt;
&lt;p&gt;「迭代流程管理」在每个公司的情况都不一样，随着产品发展阶段、团队规模、资源情况等变化，会进行各种实践和优化。我的团队一般会以半年为单位，进行迭代管理流程的Review，进行相关的流程调整和优化。&lt;/p&gt;
&lt;p&gt;以下是我的团队在2023年初，刚刚优化过的迭代流程。&lt;/p&gt;
&lt;h2 id=&quot;迭代管理在解决什么问题&quot;&gt;迭代管理在解决什么问题&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.ly85.dev/Manage-agile-01.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;上图中，共分为3个阶段，其中「产品开发」这个阶段，是下文中描述的「迭代流程」部分。&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id=&quot;开发过程方法论&quot;&gt;开发过程方法论&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.ly85.dev/Manage-agile-02.png&quot; alt=&quot;开发过程方法论&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;原则和框架&quot;&gt;原则和框架&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;说明：在整体迭代阶段上，我们采用类似「瀑布」方式进行了大阶段的拆分；&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;在需求的理解、交付上，我们采用「敏捷」方式，以故事的粒度进行交付和验收。&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id=&quot;遵循的原则&quot;&gt;遵循的原则&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;以「人的主观能动性」为核心，高效、高质量交付更有价值的产品，让团队成员成为更好的自己&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h2 id=&quot;使用的框架&quot;&gt;使用的框架&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Scrum + Kanban&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;敏捷（Agile）的目标是为了：帮助我们尽早了解我们到底有多糟糕，尽早管理这种局面。&lt;/p&gt;
&lt;h2 id=&quot;流程概览&quot;&gt;流程概览&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.ly85.dev/Manage-agile-03.png&quot; alt=&quot;流程概览&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;角色说明&quot;&gt;角色说明&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.ly85.dev/Manage-agile-04.png&quot; alt=&quot;团队角色说明&quot;&gt;&lt;/p&gt;

































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;角色&lt;/th&gt;&lt;th&gt;职责&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Scrum Master&lt;/td&gt;&lt;td&gt;敏捷教练，推动迭代的进行，目前QA兼任&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;PM&lt;/td&gt;&lt;td&gt;产品经理，进行PRD的输出和讲解&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;RD&lt;/td&gt;&lt;td&gt;服务端工程师，负责后端代码实现&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;FE&lt;/td&gt;&lt;td&gt;前端工程师，负责前端代码实现&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;QA&lt;/td&gt;&lt;td&gt;测试工程师，负责迭代质量&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;UI&lt;/td&gt;&lt;td&gt;UI设计师，负责交互和界面设计&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;h2 id=&quot;详细说明&quot;&gt;详细说明&lt;/h2&gt;
&lt;h2 id=&quot;需求阶段&quot;&gt;需求阶段&lt;/h2&gt;
&lt;h3 id=&quot;启动会kickoffmeeting&quot;&gt;启动会 Kick Off Meeting&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;会议目标：&lt;/strong&gt; 顾名思义，开球。主要是传达产品价值，以及为什么要做，和本次迭代的目标，不会深入产品细节和原型细节等。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;参加人员：&lt;/strong&gt; 全体&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;相关动作&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;「PM」→ 输出PRD中的产品价值&lt;/li&gt;
&lt;li&gt;「Master」→ 在 &lt;strong&gt;项目管理平台&lt;/strong&gt; 创建迭代版本&lt;/li&gt;
&lt;li&gt;「Master」→ 在 &lt;strong&gt;沟通工具&lt;/strong&gt; 创建沟通群&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;需求影响分析会impactanalysismeeting&quot;&gt;需求影响分析会 Impact Analysis Meeting&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;会议目标：&lt;/strong&gt; 熟悉系统现有功能，分析本次迭代变动的影响&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;参加人员：&lt;/strong&gt; RD、FE、QA&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;相关动作&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;「RD 或 FE」→ 讲解系统现有功能，分析影响&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;需求评审会prdreviewmeeting&quot;&gt;需求评审会 PRD Review Meeting&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;会议目标：&lt;/strong&gt; 讨论需求、实现逻辑和规则细节，达成整体团队对于本次需求理解的共识（会议次数原则上不应不超过2次）。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;参加人员：&lt;/strong&gt; 全体&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;相关动作&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;「PM」→ 输出 Final PRD&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;ui评审会uireviewmeeting&quot;&gt;UI评审会 UI Review Meeting&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;会议目标：&lt;/strong&gt; 讨论页面和交互的实现，达成团队对于本次页面和交互设计的理解共识（会议次数原则上不应不超过2次）。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;参加人员：&lt;/strong&gt; 全体&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;相关动作&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;「UI」→ 输出页面和交互设计&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;设计及评估阶段&quot;&gt;设计及评估阶段&lt;/h2&gt;
&lt;h3 id=&quot;计划会planmeeting&quot;&gt;计划会 Plan Meeting&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;会议目标：&lt;/strong&gt; 进行本次迭代内容的确认，可能包含：业务部分、技术部分、遗留问题或Bug等。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;参加人员：&lt;/strong&gt; 全体&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;相关动作&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;「Master」→ 组织计划会，确定本次迭代的范围（Review &lt;strong&gt;项目管理平台&lt;/strong&gt; 内的遗留问题和Bug）&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;设计评审会designreviewmeeting&quot;&gt;设计评审会 Design Review Meeting&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;会议目标：&lt;/strong&gt; 讨论设计、规范、实现、数据迁移、历史技术债务、上线发布等多方面。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;参加人员：&lt;/strong&gt; RD 或 FE、QA&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;相关动作&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;（按需）「RD」→ 输出设计文档，并评审（关于设计文档编写，请参考 &lt;strong&gt;如何编写「设计文档」TODO&lt;/strong&gt;）
&lt;ul&gt;
&lt;li&gt;第1次，RD内部进行设计评审&lt;/li&gt;
&lt;li&gt;第2次，RD + FE进行API设计评审&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;（按需）「FE」 → 输出设计文档，并评审&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;工作量评估会estimatemeeting&quot;&gt;工作量评估会 Estimate Meeting&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;会议目标：&lt;/strong&gt; 根据计划会的确认的开发范围，进行工作量估算，并分配任务优先级和具体开发人员。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;参加人员：&lt;/strong&gt; RD、FE、QA&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;相关动作&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;「Master」→ 组织工作量评估会，确定本次迭代的工作量（评估方式：计划扑克 TODO）&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;研发周期计划发布plandeploy&quot;&gt;「研发周期」计划发布 Plan Deploy&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;相关动作&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;「QA」→ 发布本次迭代的「研发周期」计划&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.ly85.dev/Manage-agile-05.png&quot; alt=&quot;「研发周期」计划模版&quot;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;「Master」→ 把各类迭代信息，更新到 &lt;strong&gt;项目管理平台&lt;/strong&gt;，正式进入编码&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;测试用例评审会testcasereviewmeeting&quot;&gt;测试用例评审会 Test Case Review Meeting&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;会议目标：&lt;/strong&gt; 评审测试用例的完整性和合理性。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;参加人员：&lt;/strong&gt; RD、FE、QA&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;相关动作&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;「QA」→ 组织评审（测试用例维护在 &lt;strong&gt;测试用例管理平台&lt;/strong&gt;）&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;开发阶段&quot;&gt;开发阶段&lt;/h2&gt;
&lt;h3 id=&quot;每日站会standupmeeting&quot;&gt;&lt;strong&gt;每日站会 Stand Up Meeting&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;会议目标：&lt;/strong&gt; 参考 如何进行「每日站会」TODO&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;参加人员：&lt;/strong&gt; 全体&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;相关动作&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;「Master」→ 组织会议，主要沟通依赖、Block、风险等&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;故事验收测试deskcheckstorytesting&quot;&gt;故事验收 &amp;#x26; 测试 Desk Check &amp;#x26; Story Testing&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;相关动作&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;「RD &amp;#x26; FE」→ 发起故事验收（如何进行故事验收 TODO），通过后，部署FAT环境进行测试，「QA」记录结果&lt;/li&gt;
&lt;li&gt;「QA」→ 针对故事进行测试，当故事没有功能相关问题时，结束此故事测试&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;中期检查mid-termcheck&quot;&gt;中期检查 Mid-term Check&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;会议目标：&lt;/strong&gt; 沟通问题，预知风险&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;相关动作&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;「Master」→ 在迭代进行到中段，组织研发人员进行工作进度的Review，预知Delay风险&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;测试验收阶段&quot;&gt;测试 &amp;#x26; 验收阶段&lt;/h2&gt;
&lt;h3 id=&quot;系统测试systemtesting&quot;&gt;系统测试 System Testing&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;相关动作&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;「RD &amp;#x26; FE」→ 整理部署文档，提交部署工单&lt;/li&gt;
&lt;li&gt;「QA」→ 在FAT
&lt;ul&gt;
&lt;li&gt;验证部署文档&lt;/li&gt;
&lt;li&gt;冒烟测试&lt;/li&gt;
&lt;li&gt;用例测试（黑盒、白盒）&lt;/li&gt;
&lt;li&gt;回归测试（黑盒、白盒）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;验收acceptance&quot;&gt;&lt;strong&gt;验收 Acceptance&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;相关动作&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;「QA」→ 在UAT
&lt;ul&gt;
&lt;li&gt;验证部署文档&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;「PM」→ 进行产品验收&lt;/li&gt;
&lt;li&gt;「UI」→ 进行UI验收&lt;/li&gt;
&lt;li&gt;「QA」→ 在UAT
&lt;ul&gt;
&lt;li&gt;回归测试（黑盒、白盒）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;发布阶段&quot;&gt;发布阶段&lt;/h2&gt;
&lt;h3 id=&quot;发布release&quot;&gt;发布 Release&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;相关动作&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;「QA」→ 提交部署工单进行审核，通过后进行发布动作&lt;/li&gt;
&lt;li&gt;「QA」→ 填写本次发布说明（对内）&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;迭代回顾阶段&quot;&gt;迭代回顾阶段&lt;/h2&gt;
&lt;h3 id=&quot;迭代回顾会reviewmeeting&quot;&gt;迭代回顾会 Review Meeting&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;会议目标：&lt;/strong&gt; 总结迭代流程和质量问题，进行复盘，优化迭代流程、代码质量、协作方式等。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;参加人员：&lt;/strong&gt; 全体&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;相关动作&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;「Master」→ 汇总迭代数据，进行报告和总结的编写&lt;/li&gt;
&lt;li&gt;「Master」→ 组织迭代全部人员进行迭代数据的Review和问题的讨论&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;使用的相关工具或平台&quot;&gt;使用的相关工具或平台&lt;/h2&gt;





















&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;工具或平台&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;项目管理平台&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://www.teambition.com/&quot;&gt;https://www.teambition.com/&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;沟通工具&lt;/td&gt;&lt;td&gt;钉钉&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;测试用例管理平台&lt;/td&gt;&lt;td&gt;&lt;a href=&quot;https://metersphere.io&quot;&gt;https://metersphere.io&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</content:encoded></item><item><title>我的2022</title><link>https://blog.ly85.dev/zh/posts/my-2022/</link><guid isPermaLink="true">https://blog.ly85.dev/zh/posts/my-2022/</guid><description>回顾2022的阅读写作、健康锻炼与新年目标。</description><pubDate>Sat, 31 Dec 2022 01:44:56 GMT</pubDate><content:encoded>&lt;h2 id=&quot;小小的感慨&quot;&gt;小小的感慨&lt;/h2&gt;
&lt;p&gt;2022一路走来，体会到了马尔克斯《百年孤独》中的南美洲的魔幻现实主义的循环，经历了人生第一次「转运集中隔离」，当我以为2022年会在疫情管控的反复循环中结束的时候，12月突然的放开，让我们又在全网的悼念中结束，对于任何人都是非常不容易的一年。&lt;/p&gt;
&lt;p&gt;BBC 2022全球总结的第一句话就是：2022这是一段漫长的旅程。俄乌战争开始，到世界杯梅西夺冠结束，算是给这个漫长而又艰难的一年画上了一个相对圆满的句号。&lt;/p&gt;
&lt;p&gt;回想了这一年的经历和变化，会让我感慨，作为时代的一粒沙，确实只能在历史的进程中「随波逐流」。作为普通人，我们无法改变什么，能做的只能是改变自己，努力生活。下面回顾下我这一年的一些小小的收获。&lt;/p&gt;
&lt;h2 id=&quot;回顾&quot;&gt;回顾&lt;/h2&gt;
&lt;h2 id=&quot;阅读与写作&quot;&gt;阅读与写作&lt;/h2&gt;
&lt;h3 id=&quot;纸质书&quot;&gt;纸质书&lt;/h3&gt;
&lt;p&gt;共 11 本&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;小说（6本）
&lt;ul&gt;
&lt;li&gt;人世间&lt;/li&gt;
&lt;li&gt;三体&lt;/li&gt;
&lt;li&gt;悉达多&lt;/li&gt;
&lt;li&gt;人生海海&lt;/li&gt;
&lt;li&gt;活着&lt;/li&gt;
&lt;li&gt;百年孤独&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;社科（4本）
&lt;ul&gt;
&lt;li&gt;乡土中国&lt;/li&gt;
&lt;li&gt;人类简史&lt;/li&gt;
&lt;li&gt;以色列一个民族的重生&lt;/li&gt;
&lt;li&gt;枪炮病菌钢铁&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;历史（1本）
&lt;ul&gt;
&lt;li&gt;万古江河&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;听书&quot;&gt;听书&lt;/h3&gt;
&lt;p&gt;樊登: 9247分钟（约154小时），131本次&lt;/p&gt;
&lt;h3 id=&quot;blog&quot;&gt;Blog&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;发布技术类文章：3篇&lt;/li&gt;
&lt;li&gt;微信公众号关注人数变化：85 → 156&lt;/li&gt;
&lt;li&gt;阅读量：接近5000&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;健康与锻炼&quot;&gt;健康与锻炼&lt;/h2&gt;
&lt;p&gt;户外运动：2次爬山运动（少的可怜）&lt;/p&gt;
&lt;p&gt;减肥：很遗憾，没啥变化 &lt;img src=&quot;https://s.w.org/images/core/emoji/17.0.2/svg/1f602.svg&quot; alt=&quot;😂&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;新的一年的计划&quot;&gt;新的一年的计划&lt;/h2&gt;
&lt;p&gt;2022年，听书量还可以，但是阅读纸质书籍的量偏少，需要加强更多的摄入。发布技术类文章的数量也没达到预期，这个需要克服自己的「拖延症」。健康方面，虽然身体还好，但是锻炼着实是少的可怜，2023年必须加强，未来是要拼免疫力的啊。&lt;/p&gt;
&lt;p&gt;给自己的2023年确定一些小目标&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;健康与锻炼
&lt;ul&gt;
&lt;li&gt;户外运动：15次&lt;/li&gt;
&lt;li&gt;每天晚上11点30分前睡觉&lt;/li&gt;
&lt;li&gt;体重下降5公斤&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;加强建设自己的个人品牌
&lt;ul&gt;
&lt;li&gt;发布技术类文章：10篇&lt;/li&gt;
&lt;li&gt;微信公众号关注人数增长100%&lt;/li&gt;
&lt;li&gt;独立Blog访问量破1w&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;加强阅读
&lt;ul&gt;
&lt;li&gt;纸质书：18本&lt;/li&gt;
&lt;li&gt;听书：破10000分钟&lt;/li&gt;
&lt;li&gt;开始尝试写读书笔记（5篇）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;提升英语听说能力
&lt;ul&gt;
&lt;li&gt;坚持多邻国打卡&lt;/li&gt;
&lt;li&gt;坚持看英文原文TED&lt;/li&gt;
&lt;li&gt;关注一些提升听力博主，进行系统性学习&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;写给2023的自己&quot;&gt;写给2023的自己&lt;/h2&gt;
&lt;p&gt;麦加在《人生海海》里面提到了一句话（最近世界杯的央视解说天花板贺炜也说过）&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;世上只有一种英雄主义，就是在认清了生活真相后依然热爱生活。 — 罗曼罗兰&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;2023希望家人和朋友健康，虽然世界依然乱七八糟，但是还是要相信和热爱生活，相信努力就会变好。&lt;/p&gt;</content:encoded></item><item><title>基于「结构化思考」的研发管理实践</title><link>https://blog.ly85.dev/zh/posts/dev-structural-thinking/</link><guid isPermaLink="true">https://blog.ly85.dev/zh/posts/dev-structural-thinking/</guid><description>为什么想到要「结构化」 人 前几年，有幸读过一本书《高效能人士的七个习惯》（想了解的同学，自己豆瓣搜下），其中讲到做人非常重要的一个逻辑</description><pubDate>Fri, 28 Oct 2022 03:45:38 GMT</pubDate><content:encoded>&lt;h1 id=&quot;为什么想到要结构化&quot;&gt;为什么想到要「结构化」&lt;/h1&gt;
&lt;h2 id=&quot;人&quot;&gt;人&lt;/h2&gt;
&lt;p&gt;前几年，有幸读过一本书《高效能人士的七个习惯》（想了解的同学，自己豆瓣搜下），其中讲到做人非常重要的一个逻辑 &lt;strong&gt;「以终为始」&lt;/strong&gt; 。&lt;/p&gt;
&lt;p&gt;主要是告诉我们，做人需要以&lt;strong&gt;原则为中心&lt;/strong&gt;，不要被事件、表象所左右，需要有做人的原则，这个原则应该是稳定的，指引我们人生的。&lt;/p&gt;
&lt;h2 id=&quot;团队&quot;&gt;团队&lt;/h2&gt;
&lt;p&gt;其实，管理团队也是一样的。作为Leader，需要甄别关键任务，带领团队在正确的方向上持续前进。所以，也需要 &lt;strong&gt;「以终为始」&lt;/strong&gt; ，找到适合研发团队的稳定的原则。然后，以一个稳定的结构化方式进行输出，围绕原则进行产品能力、团队能力的提升，持续进步。&lt;/p&gt;
&lt;h1 id=&quot;指北针&quot;&gt;指北针&lt;/h1&gt;
&lt;p&gt;团队工作的「指北针」，指导团队的工作决策。&lt;/p&gt;
&lt;p&gt;我们应该遵循「以终为始」的原则，为工作中的各种「选择」、「决策」，提供稳定的结构化的思考框架和工作框架。&lt;/p&gt;
&lt;p&gt;「指北针」核心存在的意义就在于此。&lt;/p&gt;
&lt;h2 id=&quot;组成&quot;&gt;组成&lt;/h2&gt;
&lt;h3 id=&quot;研发效能指标&quot;&gt;研发效能指标&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;目的：「持续快速交付价值的能力」是效能改进的核心目标。&lt;/strong&gt;&lt;/p&gt;
&lt;figure class=&quot;wp-block-table&quot;&gt;
&lt;table class=&quot;has-fixed-layout&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;指标项&lt;/th&gt;
&lt;th&gt;指标子项&lt;/th&gt;
&lt;th&gt;说明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;交付吞吐量&lt;/td&gt;
&lt;td&gt;单位时间交付的版本数量&lt;/td&gt;
&lt;td&gt;1个月或1个季度内，交付的各个版本的数量（统计意义上看趋势）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;需求响应时间&lt;/td&gt;
&lt;td&gt;交付周期&lt;/td&gt;
&lt;td&gt;需求启动到发布上线的平均时长&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;/td&gt;
&lt;td&gt;研发周期&lt;/td&gt;
&lt;td&gt;编码开始到发布上线的平均时长&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;交付质量&lt;/td&gt;
&lt;td&gt;单位故事点 / 功能点Bug数量&lt;/td&gt;
&lt;td&gt;针对不同类型迭代计算方式不一样&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;/td&gt;
&lt;td&gt;单位时间修复的线上问题数量&lt;/td&gt;
&lt;td&gt;1个月或1个季度内，修复的线上问题数量&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;持续发布能力&lt;/td&gt;
&lt;td&gt;发布频率&lt;/td&gt;
&lt;td&gt;1个月或1个季度内，发布次数&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;/td&gt;
&lt;td&gt;发布时间&lt;/td&gt;
&lt;td&gt;从合并代码完成，到发布到线上的平均时长&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/figure&gt;
&lt;h3 id=&quot;系统可用性指标&quot;&gt;系统可用性指标&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;目的：全面体现系统的健康程度，构建SLI、SLO，给用户提供极高的稳定性和可用性。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;依据谷歌SRE理论，通过SLI、SLO、SLA，进行系统健康程度的观测&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;SLI&lt;/li&gt;
&lt;li&gt;SLO&lt;/li&gt;
&lt;li&gt;SLA&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id=&quot;工作逻辑&quot;&gt;工作逻辑&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;我们团队负责的是一个SaaS产品，所以针对我们团队的工作逻辑，进行了下面的结构化抽象。&lt;/strong&gt;&lt;/p&gt;
&lt;figure class=&quot;wp-block-image size-large&quot;&gt;
&lt;img src=&quot;https://r2.ly85.dev/Dev-structural-thinking-01.png&quot; title=&quot;工作逻辑&quot; decoding=&quot;async&quot; alt=&quot;工作逻辑&quot;&gt;
&lt;/figure&gt;
&lt;h1 id=&quot;研发能力分层&quot;&gt;研发能力分层&lt;/h1&gt;
&lt;p&gt;目前等级：&lt;strong&gt;Poor（不好）&lt;/strong&gt;、&lt;strong&gt;Fair（凑合）&lt;/strong&gt;、&lt;strong&gt;Average（中等）&lt;/strong&gt;、&lt;strong&gt;Good（不错）&lt;/strong&gt;&lt;/p&gt;
&lt;figure class=&quot;wp-block-image size-large&quot;&gt;
&lt;img src=&quot;https://r2.ly85.dev/Dev-structural-thinking-02.png&quot; title=&quot;能力分层&quot; decoding=&quot;async&quot; alt=&quot;能力分层&quot;&gt;
&lt;/figure&gt;
&lt;h1 id=&quot;收获&quot;&gt;收获&lt;/h1&gt;
&lt;p&gt;目前，我们这个抽象的结构化工作逻辑，已经持续了一段时间，产生了一些效果，比如&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;在规划方面，我们有了稳定的结构，可以持续改进某个方面的能力&lt;/li&gt;
&lt;li&gt;在目标上，团队清楚未来2个季度的整体规划&lt;/li&gt;
&lt;li&gt;在决策上，我们会依据「结构化」「原则」进行关键任务的甄别&lt;/li&gt;
&lt;/ul&gt;</content:encoded></item><item><title>作为研发Leader，如何做规划</title><link>https://blog.ly85.dev/zh/posts/as-leader-howt-to-plan/</link><guid isPermaLink="true">https://blog.ly85.dev/zh/posts/as-leader-howt-to-plan/</guid><description>现实中的规划 刚刚过去的Q2，团队内部做了迭代和OKR的复盘，然后马上需要去做Q3的OKR拆分。在这个过程中，</description><pubDate>Mon, 01 Aug 2022 03:49:59 GMT</pubDate><content:encoded>&lt;h1 id=&quot;现实中的规划&quot;&gt;现实中的规划&lt;/h1&gt;
&lt;p&gt;刚刚过去的Q2，团队内部做了迭代和OKR的复盘，然后马上需要去做Q3的OKR拆分。在这个过程中，我找了团队中的几个伙伴沟通了下，发现大家对于规划的理解，更多的是，把问题罗列，然后针对具体问题，形成一些目标，然后去做。这样做，目标的准确性和逻辑性，以及目标是否真的是目标，都存在很大的不确定性。&lt;/p&gt;
&lt;h1 id=&quot;规划的方法&quot;&gt;规划的方法&lt;/h1&gt;
&lt;p&gt;做规划的方式，其实体现了每个人在遇到问题时的思考方式。这里我们需要先了解了，2个最基本的逻辑分析方法「演绎法」和「归纳法」。&lt;/p&gt;
&lt;h2 id=&quot;演绎法&quot;&gt;演绎法&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;人们以一定反应客观规律的理论认识为依据，从服从该事物的已知部分，推理得到事物的未知部分的思维方法。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&quot;例子&quot;&gt;例子&lt;/h3&gt;
&lt;p&gt;哲学先贤，亚里士多德提出过的经典的三段论，其实就是演绎法的体现&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;大前提：所有人都会死；小前提：苏格拉底是人；结论：苏格拉底会死。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;大前提、小前提正确，结论也是正确的。&lt;/p&gt;
&lt;h2 id=&quot;归纳法&quot;&gt;归纳法&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;人们以一系列经验事物或知识素材为依据，寻找出其服从的基本规律或共同规律，并假设同类事物中的其他事物也服从这些规律。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&quot;例子-1&quot;&gt;例子&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;前提：大姑做P2P赚了钱，小姑做P2P赚了钱，同事A做P2P赚了钱；结论：我做P2P也一定可以赚钱。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;这是一个典型的归纳推理，前提是我们观察到很多人做P2P都赚了钱，所以，得出我自己也能赚钱的结论，对未来做出了预测。&lt;/p&gt;
&lt;h2 id=&quot;我们要采取什么方法&quot;&gt;我们要采取什么方法&lt;/h2&gt;
&lt;p&gt;从例子可以看出，很显然，归纳法存在一定的风险，把事物的过去的表现当做了事物本身的属性，所以事物的未来发展趋势也是一样的。&lt;/p&gt;
&lt;p&gt;我们知道演绎法，只要保证前提是正确的，其结论一定是正确的，所以在使用演绎法的时候，我们需要注意，我们的大前提和小前提的是否真的是正确的。&lt;/p&gt;
&lt;p&gt;这里我所采取的方法是：演绎法&lt;/p&gt;
&lt;h1 id=&quot;规划的价值&quot;&gt;规划的价值&lt;/h1&gt;
&lt;h2 id=&quot;识别关键任务&quot;&gt;识别「关键任务」&lt;/h2&gt;
&lt;p&gt;规划的首要价值就是，从复杂的现实问题中，找到对于团队或组织最重要的部分，集中资源执行。&lt;/p&gt;
&lt;h2 id=&quot;从全局思考问题&quot;&gt;从全局思考问题&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;不谋万世者 不足谋一时 不谋全局者 不足谋一域。 —— 陈澹然[清]&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;规划的另一个价值就是，让自己从全局思考、从事物的原理思考，尽可能保证我们规划的内容是符合逻辑的，是反应客观规律的，找到正确的「前提」。&lt;/p&gt;
&lt;p&gt;就像演绎法的定义一样：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;人们以一定反应客观规律的理论认识为依据，从服从该事物的已知部分，推理得到事物的未知部分的思维方法。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;让目标成为大家的目标&quot;&gt;让目标成为大家的目标&lt;/h2&gt;
&lt;p&gt;规划好后，需要给团队详细输出我们对于规划的分析思路和Why。只有每个人充分理解了规划的内容，才能更好进行目标的执行。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;研发Leader一个非常重要的工作就是「识别关键任务」，找到团队和技术架构问题，进行系统性的规划，指导团队解决问题&lt;/strong&gt;&lt;/p&gt;
&lt;h1 id=&quot;一个saas产品的半年规划demo&quot;&gt;一个SaaS产品的半年规划Demo&lt;/h1&gt;
&lt;figure class=&quot;wp-block-image size-large&quot;&gt;
&lt;img src=&quot;https://r2.ly85.dev/How-to-plan-01.png&quot; title=&quot;分析思路&quot; decoding=&quot;async&quot; alt=&quot;分析思路&quot;&gt;
&lt;/figure&gt;
&lt;figure class=&quot;wp-block-image size-large&quot;&gt;
&lt;img src=&quot;https://r2.ly85.dev/How-to-plan-02.png&quot; title=&quot;分析思路&quot; decoding=&quot;async&quot;&gt;
&lt;/figure&gt;
&lt;p&gt;\&lt;/p&gt;</content:encoded></item><item><title>作为研发Leader，如何数据化评价「迭代质量」</title><link>https://blog.ly85.dev/zh/posts/as-leader-how-to-evaluating-iteration-quality/</link><guid isPermaLink="true">https://blog.ly85.dev/zh/posts/as-leader-how-to-evaluating-iteration-quality/</guid><description>为什么要数据化 用事实说话 通过数据的客观事实反应团队的协同效果和成果的产出质量，是从另外一个客观视角去挖掘问</description><pubDate>Wed, 16 Feb 2022 04:01:57 GMT</pubDate><content:encoded>&lt;h1 id=&quot;为什么要数据化&quot;&gt;为什么要数据化&lt;/h1&gt;
&lt;h2 id=&quot;用事实说话&quot;&gt;用事实说话&lt;/h2&gt;
&lt;p&gt;通过数据的客观事实反应团队的协同效果和成果的产出质量，是从另外一个客观视角去挖掘问题的一种方式。尽量不要用「我觉得」、「我认为」这些主观臆断方式，进行复杂问题的评价。&lt;/p&gt;
&lt;h2 id=&quot;角色多样配合复杂&quot;&gt;角色多样、配合复杂&lt;/h2&gt;
&lt;p&gt;一个迭代，往往涉及到很多角色。所以，这些角色的行为和成果，对于「迭代质量」都会产生各种变化，这些变化往往是复杂的。所以，也需要从数据的层面，收集各个维度的客观事实，综合地评价「迭代质量」。&lt;/p&gt;
&lt;h2 id=&quot;迭代也要迭代&quot;&gt;迭代也要迭代&lt;/h2&gt;
&lt;p&gt;产品的优化、迭代，是不断持续完善的。企业和产品的不同阶段，针对质量的要求其实也是完全不一样的。著名的项目管理三角形，其实就是权衡的过程，时间、成本、范围，最终都会影响质量的高低，只不过看某些阶段，我们更看重什么。在企业、产品不断的发展过程中，我们需要从各个方面收集数据，从不同维度持续分析「迭代质量」，以便于帮助我们在当前环境下，进行取舍，从而达到我们的产品目标。&lt;/p&gt;
&lt;h1 id=&quot;如何数据化&quot;&gt;如何数据化&lt;/h1&gt;
&lt;p&gt;在我们团队内部，采用了一个标准来评价迭代的质量，即「迭代质量评价标准」，其组成如下&lt;/p&gt;
&lt;h2 id=&quot;迭代质量评价标准组成&quot;&gt;迭代质量评价标准组成&lt;/h2&gt;
&lt;p&gt;4个维度 + 1个分值&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;4个维度
&lt;ul&gt;
&lt;li&gt;PM改动需求（30%）&lt;/li&gt;
&lt;li&gt;User Story交付延期情况（10%）&lt;/li&gt;
&lt;li&gt;User Story冒烟测试情况（20%）&lt;/li&gt;
&lt;li&gt;Bug（40%）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;1个分值
&lt;ul&gt;
&lt;li&gt;迭代质量分值&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;figure class=&quot;wp-block-image size-large&quot;&gt;
&lt;img src=&quot;https://r2.ly85.dev/As-leader-how-to-evaluating-iteration-quality-01.png&quot; title=&quot;分值组成&quot; decoding=&quot;async&quot; alt=&quot;分值组成&quot;&gt;
&lt;/figure&gt;
&lt;figure class=&quot;wp-block-table&quot;&gt;
&lt;table class=&quot;has-fixed-layout&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;满分10分，合格6分&lt;/th&gt;
&lt;th&gt;维度&lt;/th&gt;
&lt;th&gt;占比&lt;/th&gt;
&lt;th&gt;分值&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;PM改动需求（PRD定稿后）&lt;/td&gt;
&lt;td&gt;30%&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;User Story交付测试延期&lt;/td&gt;
&lt;td&gt;10%&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;User Story冒烟测试通过情况&lt;/td&gt;
&lt;td&gt;20%&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bug（n = Bug总数 / 总故事点）&lt;/td&gt;
&lt;td&gt;40%&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/figure&gt;
&lt;h1 id=&quot;举个栗子&quot;&gt;举个栗子&lt;/h1&gt;
&lt;figure class=&quot;wp-block-image size-large&quot;&gt;
&lt;img src=&quot;https://r2.ly85.dev/As-leader-how-to-evaluating-iteration-quality-02.jpg&quot; title=&quot;分值&quot; decoding=&quot;async&quot; alt=&quot;分值&quot;&gt;
&lt;/figure&gt;
&lt;p&gt;上面是我的团队，近期的一组迭代数据，背景交代&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;故事点：1个故事点 = 1人天&lt;/li&gt;
&lt;li&gt;迭代流程：按故事开发和测试 → 整体回顾测试 → PM&amp;#x26;UI验收 → 发布 → 复盘&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id=&quot;迭代数据化能带给团队什么&quot;&gt;迭代数据化能带给团队什么&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;团队为迭代负责
&lt;ul&gt;
&lt;li&gt;通过数据化呈现迭代质量，让团队以一种理性的方式，审视迭代问题，从而找到解决方案，伙伴的目标是一致的：让迭代更好&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;让「问题」透明化&lt;/li&gt;
&lt;li&gt;为改进团队迭代效能提供了坚实的数据基础（任何改变都能从数据层面找到体现）&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id=&quot;想做还没做的事情&quot;&gt;想做还没做的事情&lt;/h1&gt;
&lt;p&gt;通过打通我们使用的各个敏捷工具，自动化收集迭代数据，产生「迭代质量分值」，并可以针对历史数据进行各自维度对比，从而更好的提高效率。&lt;/p&gt;</content:encoded></item><item><title>作为研发Leader，如何做总结</title><link>https://blog.ly85.dev/zh/posts/as-leader-how-to-summary/</link><guid isPermaLink="true">https://blog.ly85.dev/zh/posts/as-leader-how-to-summary/</guid><description>为什么要总结 行有不得，反求诸己。 —— 出自《孟子》 学会从自身寻找原因，可以帮助我们成为更好的人。 其实，</description><pubDate>Fri, 04 Feb 2022 03:58:33 GMT</pubDate><content:encoded>&lt;h1 id=&quot;为什么要总结&quot;&gt;为什么要总结&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;行有不得，反求诸己。 —— 出自《孟子》&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;学会从自身寻找原因，可以帮助我们成为更好的人。&lt;/p&gt;
&lt;p&gt;其实，无论是个人还是团队，在年底进行一些有针对性的总结（建议是数据化呈现），对于找到自身问题，提高和改进，还是有挺大帮助的。&lt;/p&gt;
&lt;p&gt;切忌，不是为了总结而总结。应该学会从客观的事实（数据化是个不错的手段），寻找问题的发生原因，从而尝试做改变，去改善问题。&lt;/p&gt;
&lt;h1 id=&quot;准备工作&quot;&gt;准备工作&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;思考的框架 优于 思考的内容&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id=&quot;避免流水账&quot;&gt;避免流水账&lt;/h2&gt;
&lt;p&gt;作为研发Leader，在做总结时，我会首先避免流水账，不要先思考这1年来，我们做了什么，这样很容易陷入到细节中。&lt;/p&gt;
&lt;h2 id=&quot;思考我们需要什么样子的团队&quot;&gt;思考：我们需要什么样子的团队&lt;/h2&gt;
&lt;p&gt;小时候，经常被问到，你想成为什么样的人。其实，管理团队也是一样的逻辑，先思考「我们需要什么样的团队」。在2021年初，我们团队定下的指导思想是「成为专业的团队」，所以，在接下来的1年时间里，我们都在遵循这个指导思想。&lt;/p&gt;
&lt;h2 id=&quot;建设团队的指导思想&quot;&gt;建设团队的指导思想&lt;/h2&gt;
&lt;figure class=&quot;wp-block-image size-large&quot;&gt;
&lt;img src=&quot;https://r2.ly85.dev/As-leader-how-to-summary-01.png&quot; title=&quot;指导思想&quot; decoding=&quot;async&quot;&gt;
&lt;/figure&gt;
&lt;h2 id=&quot;抽象团队的工作分类&quot;&gt;抽象团队的工作分类&lt;/h2&gt;
&lt;figure class=&quot;wp-block-image size-large&quot;&gt;
&lt;img src=&quot;https://r2.ly85.dev/As-leader-how-to-summary-02.png&quot; title=&quot;工作分类&quot; decoding=&quot;async&quot;&gt;
&lt;/figure&gt;
&lt;h1 id=&quot;我的思路&quot;&gt;我的思路&lt;/h1&gt;
&lt;h2 id=&quot;做了什么&quot;&gt;做了什么&lt;/h2&gt;
&lt;p&gt;建议按照工作分类进行重点事项的陈述&lt;/p&gt;
&lt;h2 id=&quot;做到了什么没做到什么&quot;&gt;做到了什么，没做到什么&lt;/h2&gt;
&lt;p&gt;从做的事情，客观的数据反馈，和年初的目标，进行综合对比，进行分析，找到问题原因，为来年提供改善思路&lt;/p&gt;
&lt;h2 id=&quot;分享自己或团队其他人的做事心得方法&quot;&gt;分享自己或团队其他人的做事心得（方法）&lt;/h2&gt;
&lt;p&gt;意在提高团队认知，授人以鱼不如授人以渔&lt;/p&gt;
&lt;h1 id=&quot;我的2021总结部分&quot;&gt;我的2021总结（部分）&lt;/h1&gt;
&lt;h2 id=&quot;做了什么-1&quot;&gt;做了什么&lt;/h2&gt;
&lt;p&gt;Iteration 迭代&lt;/p&gt;
&lt;figure class=&quot;wp-block-image size-large&quot;&gt;
&lt;img src=&quot;https://r2.ly85.dev/As-leader-how-to-summary-03.png&quot; decoding=&quot;async&quot;&gt;
&lt;/figure&gt;
&lt;figure class=&quot;wp-block-image size-large&quot;&gt;
&lt;img src=&quot;https://r2.ly85.dev/As-leader-how-to-summary-04.png&quot; decoding=&quot;async&quot;&gt;
&lt;/figure&gt;
&lt;figure class=&quot;wp-block-image size-large&quot;&gt;
&lt;img src=&quot;https://r2.ly85.dev/As-leader-how-to-summary-05.png&quot; decoding=&quot;async&quot;&gt;
&lt;/figure&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Arch 架构&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Backend
&lt;ul&gt;
&lt;li&gt;涉及内容较敏感&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Frontend
&lt;ul&gt;
&lt;li&gt;涉及内容较敏感&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Assets 技术资产&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;工具&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;服务器和环境&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;代码规划&amp;#x26;设计&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;涉及内容较敏感&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;团队&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;架构
&lt;ul&gt;
&lt;li&gt;涉及内容较敏感&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;激励
&lt;ul&gt;
&lt;li&gt;涉及内容较敏感&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;活动
&lt;ul&gt;
&lt;li&gt;涉及内容较敏感&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;figure class=&quot;wp-block-image size-large&quot;&gt;
&lt;img src=&quot;https://r2.ly85.dev/As-leader-how-to-summary-06.png&quot; decoding=&quot;async&quot;&gt;
&lt;/figure&gt;
&lt;figure class=&quot;wp-block-image size-large&quot;&gt;
&lt;img src=&quot;https://r2.ly85.dev/As-leader-how-to-summary-07.png&quot; decoding=&quot;async&quot;&gt;
&lt;/figure&gt;
&lt;h2 id=&quot;做到了什么没做到什么-1&quot;&gt;做到了什么，没做到什么&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;涉及内容较敏感&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;分享自己或团队其他人的做事心得方法-1&quot;&gt;分享自己或团队其他人的做事心得（方法）&lt;/h2&gt;
&lt;figure class=&quot;wp-block-image size-large&quot;&gt;
&lt;img src=&quot;https://r2.ly85.dev/As-leader-how-to-summary-08.png&quot; title=&quot;做事心得&quot; decoding=&quot;async&quot;&gt;
&lt;/figure&gt;</content:encoded></item><item><title>小团队敏捷实践2.0</title><link>https://blog.ly85.dev/zh/posts/small-team-iteration-2-0/</link><guid isPermaLink="true">https://blog.ly85.dev/zh/posts/small-team-iteration-2-0/</guid><description>1.0阶段 1.0 一切从需求开始 在「1.0」阶段实施和使用过程中，我们发现了很多实际问题，所以整体对敏捷流</description><pubDate>Wed, 18 Aug 2021 05:47:18 GMT</pubDate><content:encoded>&lt;h1 id=&quot;10阶段&quot;&gt;1.0阶段&lt;/h1&gt;
&lt;p&gt;&lt;a href=&quot;/posts/small-team-iteration-1.0&quot;&gt;1.0&lt;/a&gt;&lt;/p&gt;
&lt;h1 id=&quot;一切从需求开始&quot;&gt;一切从需求开始&lt;/h1&gt;
&lt;p&gt;在「1.0」阶段实施和使用过程中，我们发现了很多实际问题，所以整体对敏捷流程进行了一些改进和升级，以适应团队迭代的变化。&lt;/p&gt;
&lt;h2 id=&quot;需求源分类&quot;&gt;需求源分类&lt;/h2&gt;
&lt;p&gt;由于提出需求渠道比较多，为了便于管理，我们对需求源进行了分类，具体分类如下：&lt;/p&gt;
&lt;figure class=&quot;wp-block-table&quot;&gt;
&lt;table class=&quot;has-fixed-layout&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;需求代号&lt;/th&gt;
&lt;th&gt;描述&lt;/th&gt;
&lt;th&gt;迭代版本代号&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Feature&lt;/td&gt;
&lt;td&gt;基于产品价值的自主产品迭代&lt;/td&gt;
&lt;td&gt;feature/sprintXX，如：feature/sprint40&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CS&lt;/td&gt;
&lt;td&gt;客户成功经理反馈的用户侧需求&lt;/td&gt;
&lt;td&gt;cs/yyyyMMdd，如：cs/20210713&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tech&lt;/td&gt;
&lt;td&gt;研发内部发起的技术改进或重构类需求&lt;/td&gt;
&lt;td&gt;tech/模块或重构名，如：tech/mtms、tech/res&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hotfix&lt;/td&gt;
&lt;td&gt;故障流程触发的线上问题修复需求&lt;/td&gt;
&lt;td&gt;hotfix/yyyyMMdd，如：hotfix/20210713&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/figure&gt;
&lt;p&gt;目前，我们团队开启Sprint的需求类型为：feature，其余类型不触发Sprint。&lt;/p&gt;
&lt;h1 id=&quot;迭代流程&quot;&gt;迭代流程&lt;/h1&gt;
&lt;figure class=&quot;wp-block-image size-large&quot;&gt;
&lt;img src=&quot;https://r2.ly85.dev/small-team-iteration-2-01.png&quot; title=&quot;敏捷迭代流程&quot; decoding=&quot;async&quot; alt=&quot;敏捷迭代流程&quot;&gt;
&lt;/figure&gt;
&lt;p&gt;整体迭代分为6个阶段，分别是&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;PRD Review：产品需求评审、用户故事评审&lt;/li&gt;
&lt;li&gt;Estimate：概要设计、工作量估算（扑克牌）&lt;/li&gt;
&lt;li&gt;Sprint Start：Jira创建Sprint、版本号、登记用户故事、创建甘特图&lt;/li&gt;
&lt;li&gt;Sprint In Progress：迭代进行中，每天10点站会同步进度&lt;/li&gt;
&lt;li&gt;Deploy：PM、UI验收、版本发布&lt;/li&gt;
&lt;li&gt;Sprint Review：迭代复盘&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;1prd-review&quot;&gt;1.PRD Review&lt;/h2&gt;
&lt;h3 id=&quot;prd-review流程&quot;&gt;PRD Review流程&lt;/h3&gt;
&lt;figure class=&quot;wp-block-image size-large&quot;&gt;
&lt;img src=&quot;https://r2.ly85.dev/small-team-iteration-2-02.png&quot; title=&quot;PRD Review&quot; decoding=&quot;async&quot; alt=&quot;PRD Review&quot;&gt;
&lt;/figure&gt;
&lt;h3 id=&quot;参与者&quot;&gt;参与者&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;推动：PM&lt;/li&gt;
&lt;li&gt;参与：RD FE QA UI&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;输入信息&quot;&gt;输入信息&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;本次迭代的PRD。（路径「PM团队」→「产品需求」→「2021产品需求」→「产品自主迭代」→「某次迭代的PRD页面」）&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;输出信息&quot;&gt;输出信息&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;蓝湖中本次迭代原型讨论终稿&lt;/li&gt;
&lt;li&gt;用户故事讨论终稿（路径「钉钉云盘」→「3-研发部」→「用户故事拆解」→「SprintXX」→「文件夹下的用户故事文件」）&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;PRD&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figure class=&quot;wp-block-image size-large&quot;&gt;
&lt;img src=&quot;https://r2.ly85.dev/small-team-iteration-2-03.jpg&quot; title=&quot;PRD&quot; decoding=&quot;async&quot; alt=&quot;PRD&quot;&gt;
&lt;/figure&gt;
&lt;blockquote&gt;
&lt;p&gt;钉钉中的用户故事&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figure class=&quot;wp-block-image size-large&quot;&gt;
&lt;img src=&quot;https://r2.ly85.dev/small-team-iteration-2-04.jpg&quot; title=&quot;用户故事&quot; decoding=&quot;async&quot; alt=&quot;用户故事&quot;&gt;
&lt;/figure&gt;
&lt;h2 id=&quot;2estimate&quot;&gt;2.Estimate&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;估算方式采用的是「规划扑克估算法」。一种基于共识的估算方式（游戏），主要用于估算Scrum迭代中的开发任务的工作量问题，通过团队的共同的评估方式，使得偏差变得相对较小。&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id=&quot;什么是规划扑克&quot;&gt;什么是规划扑克&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;规划扑克使用Fibonacci序列作为Story Point。Fibonacci序列是13世纪引入的数学系列数字，用于解释自然的某些形成方面，例如树的分支。通过将前两个数字相加来生成序列，以获得序列中的下一个值：0,1/2,1,2,3,5,8,13,20等。出于敏捷估计的目的，一些数字已经改变，导致以下系列：1，2，3，5，8，13，20，40，100&lt;/strong&gt;&lt;/p&gt;
&lt;figure class=&quot;wp-block-image size-large&quot;&gt;
&lt;img src=&quot;https://r2.ly85.dev/small-team-iteration-2-05.png&quot; title=&quot;规划扑克&quot; decoding=&quot;async&quot; alt=&quot;规划扑克&quot;&gt;
&lt;/figure&gt;
&lt;p&gt;扑克说明（点数约定：1 Story Point = 1 人/天）&lt;/p&gt;
&lt;figure class=&quot;wp-block-table&quot;&gt;
&lt;table class=&quot;has-fixed-layout&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;牌&lt;/th&gt;
&lt;th&gt;解释&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;不需要工作量&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;无穷&lt;/td&gt;
&lt;td&gt;任务量大&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;?&lt;/td&gt;
&lt;td&gt;无法估计&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;一杯咖啡&lt;/td&gt;
&lt;td&gt;不足0.5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;其他&lt;/td&gt;
&lt;td&gt;按照字面意思理解点数&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/figure&gt;
&lt;h3 id=&quot;估算流程&quot;&gt;估算流程&lt;/h3&gt;
&lt;figure class=&quot;wp-block-image size-large&quot;&gt;
&lt;img src=&quot;https://r2.ly85.dev/small-team-iteration-2-06.png&quot; title=&quot;估算&quot; decoding=&quot;async&quot; alt=&quot;估算&quot;&gt;
&lt;/figure&gt;
&lt;h3 id=&quot;参与者-1&quot;&gt;参与者&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;推动：PM&lt;/li&gt;
&lt;li&gt;参与：RD FE QA&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;输入信息-1&quot;&gt;输入信息&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;用户故事&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;输出信息-1&quot;&gt;输出信息&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;用户故事的估算和优先级&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;操作步骤（一般2轮估算基本可以达成共识）&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;PM进行用户故事描述&lt;/li&gt;
&lt;li&gt;RD / FE 的团队成员，通过面朝下的方式打出编号卡（斐波那契值：1，2，3，5，8，13，20，40）&lt;/li&gt;
&lt;li&gt;卡片同时亮出&lt;/li&gt;
&lt;li&gt;解释估算偏差，并讨论&lt;/li&gt;
&lt;li&gt;估算共识达成&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;估算记录表&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figure class=&quot;wp-block-image size-large&quot;&gt;
&lt;img src=&quot;https://r2.ly85.dev/small-team-iteration-2-07.png&quot; title=&quot;估算记录表&quot; decoding=&quot;async&quot; alt=&quot;估算记录表&quot;&gt;
&lt;/figure&gt;
&lt;blockquote&gt;
&lt;p&gt;估算完成后，我们把估算的结果填写到钉盘中的故事列表中，并确定故事优先级&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;3sprint-start&quot;&gt;3.Sprint Start&lt;/h2&gt;
&lt;h3 id=&quot;sprint创建开启流程&quot;&gt;Sprint创建&amp;#x26;开启流程&lt;/h3&gt;
&lt;figure class=&quot;wp-block-image size-large&quot;&gt;
&lt;img src=&quot;https://r2.ly85.dev/small-team-iteration-2-08.png&quot; title=&quot;Sprint创建&amp;#x26;开启&quot; decoding=&quot;async&quot;&gt;
&lt;/figure&gt;
&lt;h3 id=&quot;参与者-2&quot;&gt;参与者&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;推动：Scrum Master（QA）&lt;/li&gt;
&lt;li&gt;参与：RD FE QA&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;输入信息-2&quot;&gt;输入信息&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;用户故事 &amp;#x26; 估算结果&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;输出信息-2&quot;&gt;输出信息&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Sprint &amp;#x26; Gantt&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;创建Epic&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figure class=&quot;wp-block-image size-large&quot;&gt;
&lt;img src=&quot;https://r2.ly85.dev/small-team-iteration-2-09.jpg&quot; title=&quot;创建Epic&quot; decoding=&quot;async&quot;&gt;
&lt;/figure&gt;
&lt;blockquote&gt;
&lt;p&gt;创建Story&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figure class=&quot;wp-block-image size-large&quot;&gt;
&lt;img src=&quot;https://r2.ly85.dev/small-team-iteration-2-10.jpg&quot; title=&quot;创建Story&quot; decoding=&quot;async&quot; alt=&quot;创建Story&quot;&gt;
&lt;/figure&gt;
&lt;figure class=&quot;wp-block-image size-large&quot;&gt;
&lt;img src=&quot;https://r2.ly85.dev/small-team-iteration-2-11.jpg&quot; title=&quot;创建Story&quot; decoding=&quot;async&quot; alt=&quot;创建Story&quot;&gt;
&lt;/figure&gt;
&lt;p&gt;\&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Sprint面板&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figure class=&quot;wp-block-image size-large&quot;&gt;
&lt;img src=&quot;https://r2.ly85.dev/small-team-iteration-2-12.jpg&quot; title=&quot;Sprint看板&quot; decoding=&quot;async&quot;&gt;
&lt;/figure&gt;
&lt;blockquote&gt;
&lt;p&gt;Gantt&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figure class=&quot;wp-block-image size-large&quot;&gt;
&lt;img src=&quot;https://r2.ly85.dev/small-team-iteration-2-13.jpg&quot; title=&quot;Gantt&quot; decoding=&quot;async&quot; alt=&quot;Gantt&quot;&gt;
&lt;/figure&gt;
&lt;h2 id=&quot;4sprint-in-progress&quot;&gt;4.Sprint In Progress&lt;/h2&gt;
&lt;h3 id=&quot;日常流程&quot;&gt;日常流程&lt;/h3&gt;
&lt;figure class=&quot;wp-block-image size-large&quot;&gt;
&lt;img src=&quot;https://r2.ly85.dev/small-team-iteration-2-14.png&quot; title=&quot;Sprint In Progress&quot; decoding=&quot;async&quot; alt=&quot;Sprint In Progress&quot;&gt;
&lt;/figure&gt;
&lt;h3 id=&quot;参与者-3&quot;&gt;参与者&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;推动：Scrum Master（QA）&lt;/li&gt;
&lt;li&gt;参与：RD FE QA&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;输入信息-3&quot;&gt;输入信息&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;站会同步&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;输出信息-3&quot;&gt;输出信息&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;用户故事更新&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;5deploy&quot;&gt;5.Deploy&lt;/h2&gt;
&lt;h3 id=&quot;验收发布流程&quot;&gt;验收&amp;#x26;发布流程&lt;/h3&gt;
&lt;figure class=&quot;wp-block-image size-large&quot;&gt;
&lt;img src=&quot;https://r2.ly85.dev/small-team-iteration-2-15.png&quot; title=&quot;Deploy&quot; decoding=&quot;async&quot;&gt;
&lt;/figure&gt;
&lt;h3 id=&quot;参与者-4&quot;&gt;参与者&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;推动：Scrum Master（QA）&lt;/li&gt;
&lt;li&gt;参与：PM UI RD FE&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;输入信息-4&quot;&gt;输入信息&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;UAT环境&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;输出信息-4&quot;&gt;输出信息&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;迭代发布&lt;/li&gt;
&lt;li&gt;Sprint Done&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;6sprint-review&quot;&gt;6.Sprint Review&lt;/h2&gt;
&lt;h3 id=&quot;review流程&quot;&gt;Review流程&lt;/h3&gt;
&lt;figure class=&quot;wp-block-image size-large&quot;&gt;
&lt;img src=&quot;https://r2.ly85.dev/small-team-iteration-2-16.png&quot; title=&quot;Sprint Review&quot; decoding=&quot;async&quot; alt=&quot;Sprint Review&quot;&gt;
&lt;/figure&gt;
&lt;h3 id=&quot;参与者-5&quot;&gt;参与者&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;推动：QA&lt;/li&gt;
&lt;li&gt;参与：PM UI RD FE&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;输入信息-5&quot;&gt;输入信息&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;测试报告&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;输出信息-5&quot;&gt;输出信息&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;复盘结果&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;测试报告&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figure class=&quot;wp-block-image size-large&quot;&gt;
&lt;img src=&quot;https://r2.ly85.dev/small-team-iteration-2-17.jpg&quot; title=&quot;Review Report&quot; decoding=&quot;async&quot;&gt;
&lt;/figure&gt;
&lt;figure class=&quot;wp-block-image size-large&quot;&gt;
&lt;img src=&quot;https://r2.ly85.dev/small-team-iteration-2-18.jpg&quot; title=&quot;Review Report&quot; decoding=&quot;async&quot; alt=&quot;Review Report&quot;&gt;
&lt;/figure&gt;
&lt;figure class=&quot;wp-block-image size-large&quot;&gt;
&lt;img src=&quot;https://r2.ly85.dev/small-team-iteration-2-19.jpg&quot; title=&quot;Review Report&quot; decoding=&quot;async&quot; alt=&quot;Review Report&quot;&gt;
&lt;/figure&gt;
&lt;figure class=&quot;wp-block-image size-large&quot;&gt;
&lt;img src=&quot;https://r2.ly85.dev/small-team-iteration-2-20.jpg&quot; title=&quot;Review Report&quot; decoding=&quot;async&quot; alt=&quot;Review Report&quot;&gt;
&lt;/figure&gt;
&lt;h1 id=&quot;总结&quot;&gt;总结&lt;/h1&gt;
&lt;p&gt;以上就是目前研发团队的2.0版本的敏捷迭代流程，后面需要重点改进的还是，如何引入CI、自动化测试等等手段，进一步提升测试的效率，从而更快的反馈出问题。&lt;/p&gt;</content:encoded></item><item><title>Code Review Practice</title><link>https://blog.ly85.dev/zh/posts/code-review-practice/</link><guid isPermaLink="true">https://blog.ly85.dev/zh/posts/code-review-practice/</guid><description>什么是Code Review Google Code Review的描述 The biggest thing</description><pubDate>Sun, 01 Aug 2021 05:52:08 GMT</pubDate><content:encoded>&lt;h1 id=&quot;什么是code-review&quot;&gt;什么是Code Review&lt;/h1&gt;
&lt;p&gt;Google Code Review的描述&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The biggest thing that makes Google’s code so good is simple: code review. At Google, no code, for any product, for any project, gets checked in until it gets a positive review.&lt;/p&gt;
&lt;p&gt;让谷歌的代码如此优秀的原因很简单：代码审查。在谷歌，任何产品、任何项目的代码都不会在没有审查的情况下进入代码库。&lt;/p&gt;
&lt;p&gt;是一种文化，不是制度&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h1 id=&quot;为什么需要&quot;&gt;为什么需要&lt;/h1&gt;
&lt;h2 id=&quot;工作中的痛点&quot;&gt;工作中的痛点&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;每个人代码风格不统一&lt;/li&gt;
&lt;li&gt;接口、类各种命名不统一&lt;/li&gt;
&lt;li&gt;深层逻辑问题，测试不容易发现&lt;/li&gt;
&lt;li&gt;吐槽「这TMD谁设计的，各种坑（可能是几个月前的自己）」&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;可以带给我们什么&quot;&gt;可以带给我们什么&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;提升代码质量&lt;/li&gt;
&lt;li&gt;团队知识共享&lt;/li&gt;
&lt;li&gt;团队统一规范&lt;/li&gt;
&lt;li&gt;形成好的代码文化共识&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id=&quot;review什么&quot;&gt;Review什么&lt;/h1&gt;
&lt;h2 id=&quot;google-review的原则&quot;&gt;Google Review的原则&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://google.github.io/eng-practices/review/reviewer/looking-for.html&quot;&gt;What to look for in a code review&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Design: Is the code well-designed and appropriate for your system?&lt;/li&gt;
&lt;li&gt;Functionality: Does the code behave as the author likely intended? Is the way the code behaves good for its users?&lt;/li&gt;
&lt;li&gt;Complexity: Could the code be made simpler? Would another developer be able to easily understand and use this code when they come across it in the future?&lt;/li&gt;
&lt;li&gt;Tests: Does the code have correct and well-designed automated tests?&lt;/li&gt;
&lt;li&gt;Naming: Did the developer choose clear names for variables, classes, methods, etc.?&lt;/li&gt;
&lt;li&gt;Comments: Are the comments clear and useful?&lt;/li&gt;
&lt;li&gt;Style: Does the code follow our style guides?&lt;/li&gt;
&lt;li&gt;Documentation: Did the developer also update relevant documentation?&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;我们的review原则&quot;&gt;我们的Review原则&lt;/h2&gt;
&lt;h3 id=&quot;架构和设计&quot;&gt;架构和设计&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;S.O.L.I.D
&lt;ul&gt;
&lt;li&gt;单一职责原则（SRP）&lt;/li&gt;
&lt;li&gt;开放封闭原则（OCP)&lt;/li&gt;
&lt;li&gt;里氏替换原则（LSP）&lt;/li&gt;
&lt;li&gt;接口隔离原则（ISP）&lt;/li&gt;
&lt;li&gt;依赖倒置原则（DIP）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;行为是否统一
&lt;ul&gt;
&lt;li&gt;缓存是否统一，错误处理是否统一，错误提示是否统一等等&lt;/li&gt;
&lt;li&gt;同一逻辑 / 同一行为有没有走同一Code Path。低质量程序的另一个特征是，同一行为 / 同一逻辑，因为出现在不同的地方或者被不同的方式触发，没有走同一Code Path 或者各处有一份copy的实现， 导致非常难以维护&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;DRY原则（Don’t repeat your self）&lt;/li&gt;
&lt;li&gt;面向接口编程，而不是面向实现编程&lt;/li&gt;
&lt;li&gt;健壮性
&lt;ul&gt;
&lt;li&gt;对Corner case有没有考虑完整，逻辑是否健壮？有没有潜在的bug？&lt;/li&gt;
&lt;li&gt;有没有内存泄漏？有没有循环依赖?（针对特定语言，比如Objective-C) ？有没有野指针？&lt;/li&gt;
&lt;li&gt;有没有考虑线程安全性， 数据访问的一致性&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;错误处理
&lt;ul&gt;
&lt;li&gt;有没有很好的Error Handling？比如网络出错，IO出错&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;效率 / 性能
&lt;ul&gt;
&lt;li&gt;对频繁消息和较大数据等耗时操作是否处理得当&lt;/li&gt;
&lt;li&gt;关键算法的时间复杂度多少？有没有可能有潜在的性能瓶颈&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;style&quot;&gt;Style&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;工程规范（工程结构，分层方式及命名等等）&lt;/li&gt;
&lt;li&gt;Apollo配置规范&lt;/li&gt;
&lt;li&gt;命名规范（接口、类、方法名、变量名等）&lt;/li&gt;
&lt;li&gt;代码风格（括号、空格、换行、缩进等）&lt;/li&gt;
&lt;li&gt;注释规范（规定必要的注释）&lt;/li&gt;
&lt;li&gt;日志规范（合理的记录必要的日志）&lt;/li&gt;
&lt;li&gt;DB SQL规范&lt;/li&gt;
&lt;li&gt;URL规范&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id=&quot;如何进行code-review&quot;&gt;如何进行Code Review&lt;/h1&gt;
&lt;h2 id=&quot;团队前置准备&quot;&gt;团队前置准备&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Git Branch Model&lt;/li&gt;
&lt;li&gt;Git Message（能说明提交内容的）&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;何时触发&quot;&gt;何时触发&lt;/h2&gt;
&lt;figure class=&quot;wp-block-image size-large&quot;&gt;
&lt;img src=&quot;https://r2.ly85.dev/code-review-practice-01.png&quot; title=&quot;Git分支模型&quot; decoding=&quot;async&quot; alt=&quot;Git分支模型&quot;&gt;
&lt;/figure&gt;
&lt;figure class=&quot;wp-block-image size-large&quot;&gt;
&lt;img src=&quot;https://r2.ly85.dev/code-review-practice-02.png&quot; title=&quot;Review流程&quot; decoding=&quot;async&quot; alt=&quot;Review流程&quot;&gt;
&lt;/figure&gt;
&lt;h2 id=&quot;使用工具&quot;&gt;使用工具&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Gitlab&lt;/li&gt;
&lt;li&gt;Sonarqube&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id=&quot;参考&quot;&gt;参考&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.cnblogs.com/dotey/p/11216430.html?hmsr=toutiao.io&amp;#x26;utm_campaign=toutiao.io&amp;#x26;utm_medium=toutiao.io&amp;#x26;utm_source=toutiao.io&quot;&gt;Code Review最佳实践&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://mp.weixin.qq.com/s?__biz=Mzg3NjU1NzM1Mw==&amp;#x26;mid=2247487384&amp;#x26;idx=1&amp;#x26;sn=5ef9d9123eccafc9bdb59a40f01306cf&amp;#x26;chksm=cf312adef846a3c86b19c526cd3263ac7b7f1f79088d538482813d02854643a26bfdc8e0f76e&amp;#x26;token=1491313091&amp;#x26;lang=zh_CN#rd&quot;&gt;来，一起品品 Google 的 Code Review 规范&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://mp.weixin.qq.com/s/R9e-2MbfBAcc1kCOZNRuYw&quot;&gt;如何在团队中做好Code Review&lt;/a&gt;&lt;a href=&quot;https://zhuanlan.zhihu.com/p/31581735?hmsr=toutiao.io&amp;#x26;utm_campaign=toutiao.io&amp;#x26;utm_medium=toutiao.io&amp;#x26;utm_source=toutiao.io&quot;&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://zhuanlan.zhihu.com/p/31786640&quot;&gt;【译】如何用人类的方式进行 Code Review（二）&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://juejin.cn/post/6844903425587544071&quot;&gt;Code Review 最佳实践&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://zhuanlan.zhihu.com/p/82324809&quot;&gt;设计模式之SOLID原则&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://juejin.cn/post/6844904032264257549&quot;&gt;如何在团队中做好Code Review&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content:encoded></item><item><title>Git Branch Guidelines</title><link>https://blog.ly85.dev/zh/posts/git-branch-guidelines/</link><guid isPermaLink="true">https://blog.ly85.dev/zh/posts/git-branch-guidelines/</guid><description>我们日常开发面临的问题 分支管理的目标 有一份前辈的参考资料 A successful Git branchi</description><pubDate>Fri, 25 Dec 2020 06:11:02 GMT</pubDate><content:encoded>&lt;h1 id=&quot;我们日常开发面临的问题&quot;&gt;我们日常开发面临的问题&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;紧急修复线上BUG，应该如何拉取代码进行改动，直接在develop或master改吗？&lt;/li&gt;
&lt;li&gt;现在团队有好几个并行开发任务，每个上线时间点不一样，而且是不同的小组负责开发，怎么管理并行任务，如何推送正确代码是一个大问题。&lt;/li&gt;
&lt;li&gt;每个人对于分支命名不一样，对于命名的理解也千差万别，上线前在发现，分支合并错了。&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id=&quot;分支管理的目标&quot;&gt;分支管理的目标&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;代码提交在应该提交的分支&lt;/li&gt;
&lt;li&gt;随时可以切换到线上稳定版本代码&lt;/li&gt;
&lt;li&gt;多个版本的开发工作同时进行&lt;/li&gt;
&lt;li&gt;明确每个分支的功用，做到对应的分支执行对应的操作&lt;/li&gt;
&lt;li&gt;使用 Git 管理版本迭代、紧急线上 bug fix、功能开发等任务&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id=&quot;有一份前辈的参考资料&quot;&gt;有一份前辈的参考资料&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;A successful Git branching model&lt;br&gt;
By Vincent Driessen on Tuesday, January 05, 2010&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&quot;https://nvie.com/posts/a-successful-git-branching-model/&quot;&gt;A successful Git branching model&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;首先这个不是Git或Github的官方资料，只是这位前辈的个人总结，也仅仅是适用当时这位前辈所在的Team的工作模式，并不适用与目前团队的工作模式。所以，在参考Git Flow的资料后，我们制定了自己的团队规范。&lt;/p&gt;
&lt;h1 id=&quot;我们的规范&quot;&gt;我们的规范&lt;/h1&gt;
&lt;figure class=&quot;wp-block-image size-large&quot;&gt;
&lt;img src=&quot;https://r2.ly85.dev/git-branch-guidelines-01.jpg&quot; title=&quot;我们的Git分支模型&quot; decoding=&quot;async&quot; alt=&quot;我们的Git分支模型&quot;&gt;
&lt;/figure&gt;
&lt;p&gt;&lt;strong&gt;feature/sprintXX&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;作用：新功能迭代开发&lt;/li&gt;
&lt;li&gt;部署环境：开发环境 DEV&lt;/li&gt;
&lt;li&gt;创建：基于develop分支&lt;/li&gt;
&lt;li&gt;是否删除：功能发布后删除&lt;/li&gt;
&lt;li&gt;限制：无&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;test/sprintXX&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;作用：新功能迭代测试&lt;/li&gt;
&lt;li&gt;部署环境：测试环境（FAT）&lt;/li&gt;
&lt;li&gt;创建：基于feature分支（每次提测前，feature merge develop代码，feature再合并到test）&lt;/li&gt;
&lt;li&gt;是否删除：功能发布后删除&lt;/li&gt;
&lt;li&gt;限制：No Push / 开发人员Merge&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;hotfix/yyyyMMdd&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;作用：线上问题修复&lt;/li&gt;
&lt;li&gt;部署环境：测试环境（FAT）&lt;/li&gt;
&lt;li&gt;创建：master分支（修复上线后，合并回master和develop）&lt;/li&gt;
&lt;li&gt;是否删除：修复发布后删除&lt;/li&gt;
&lt;li&gt;限制：无&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;develop&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;作用：包含最新的功能代码，新建feature/sprintXX 分支的基础&lt;/li&gt;
&lt;li&gt;限制：No Push / 开发人员Merge&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;master&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;作用：稳定代码&lt;/li&gt;
&lt;li&gt;部署环境：生产环境（PROD）&lt;/li&gt;
&lt;li&gt;限制：No Push / 少部分有权限的可Merge&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id=&quot;分支操作规范&quot;&gt;分支操作规范&lt;/h1&gt;
&lt;h2 id=&quot;featuresprintxx分支下使用rebase&quot;&gt;feature/sprintXX分支下使用rebase&lt;/h2&gt;
&lt;p&gt;解决提交路线图清晰问题，git pull默认是merge操作，可以使用如下命令进行rebase&lt;/p&gt;
&lt;pre class=&quot;astro-code astro-code-themes min-light night-owl&quot; style=&quot;--shiki-light:#24292eff;--shiki-dark:#d6deeb;--shiki-light-bg:#ffffff;--shiki-dark-bg:#011627; overflow-x: auto;--file-name-offset: -0.75rem;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;git pull --rebase&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;#也可以做全局配置&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;git config --global pull.rebase true&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;git config --global branch.autoSetupRebase always&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;分支合并使用-no-ff&quot;&gt;分支合并使用 no-ff&lt;/h2&gt;
&lt;p&gt;解决fast-forward 合并的路线图问题，这种 merge 的结果就是一条直线，无法明确看到切出一个新的 feature 分支，但是使用 no-ff就可以明显看出新feature分支的合并路线图&lt;/p&gt;
&lt;pre class=&quot;astro-code astro-code-themes min-light night-owl&quot; style=&quot;--shiki-light:#24292eff;--shiki-dark:#d6deeb;--shiki-light-bg:#ffffff;--shiki-dark-bg:#011627; overflow-x: auto;--file-name-offset: -0.75rem;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;# 合并sprint01 到 develop 分支&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;git merge --no-ff feature/sprint01&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;</content:encoded></item><item><title>Git Commit Guidelines</title><link>https://blog.ly85.dev/zh/posts/git-commit-guidelines/</link><guid isPermaLink="true">https://blog.ly85.dev/zh/posts/git-commit-guidelines/</guid><description>为什么需要 GitHub Angular Demo 目前Github的Angular项目，就是完全采用规范的G</description><pubDate>Mon, 21 Dec 2020 06:14:55 GMT</pubDate><content:encoded>&lt;h1 id=&quot;为什么需要&quot;&gt;为什么需要&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;降低Review成本，可以明确知道本次提交的改变和影响&lt;/li&gt;
&lt;li&gt;规范整个Team的提交习惯，对技术素养的养成有益&lt;/li&gt;
&lt;li&gt;可以通过统一工具，抽取规范的message自动形成change log&lt;/li&gt;
&lt;/ul&gt;
&lt;figure class=&quot;wp-block-image size-large&quot;&gt;
&lt;img src=&quot;https://r2.ly85.dev/git-commit-guidelines-01.png&quot; title=&quot;Github DEMO&quot; decoding=&quot;async&quot; alt=&quot;Github DEMO&quot;&gt;
&lt;/figure&gt;
&lt;h1 id=&quot;github-angular-demo&quot;&gt;GitHub Angular Demo&lt;/h1&gt;
&lt;p&gt;目前Github的Angular项目，就是完全采用规范的Git Message来进行日常的提交管理和发布管理的，下面是这个项目的Commit记录，和自动根据commit生成的change log&lt;/p&gt;
&lt;figure class=&quot;wp-block-image size-large&quot;&gt;
&lt;img src=&quot;https://r2.ly85.dev/git-commit-guidelines-02.png&quot; title=&quot;Github ChangeLog&quot; decoding=&quot;async&quot; alt=&quot;Github ChangeLog&quot;&gt;
&lt;/figure&gt;
&lt;h1 id=&quot;遵循什么规范&quot;&gt;遵循什么规范&lt;/h1&gt;
&lt;p&gt;目前，使用较多的是AngularJS规范&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/angular/angular.js/blob/master/DEVELOPERS.md#-git-commit-guidelines&quot;&gt;angular/angular.js&lt;/a&gt;&lt;/p&gt;
&lt;pre class=&quot;astro-code astro-code-themes min-light night-owl&quot; style=&quot;--shiki-light:#24292eff;--shiki-dark:#d6deeb;--shiki-light-bg:#ffffff;--shiki-dark-bg:#011627; overflow-x: auto;--file-name-offset: -0.75rem;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;# 包括三个部分：Header，Body 和 Footer&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;&amp;#x3C;type&gt;(&amp;#x3C;scope&gt;): &amp;#x3C;subject&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;// 空一行&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;&amp;#x3C;body&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;// 空一行&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;&amp;#x3C;footer&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;header&quot;&gt;Header&lt;/h2&gt;
&lt;p&gt;包括三个字段：type（必需）、scope（可选）和subject（必需）&lt;/p&gt;
&lt;p&gt;任何一行都不能超过100个字符&lt;/p&gt;
&lt;h3 id=&quot;type&quot;&gt;type&lt;/h3&gt;
&lt;p&gt;用于说明 commit 的类别，类型包含如下几种&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;feat: A new feature&lt;/li&gt;
&lt;li&gt;fix: A bug fix&lt;/li&gt;
&lt;li&gt;docs: Documentation only changes&lt;/li&gt;
&lt;li&gt;style: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)&lt;/li&gt;
&lt;li&gt;refactor: A code change that neither fixes a bug nor adds a feature&lt;/li&gt;
&lt;li&gt;perf: A code change that improves performance&lt;/li&gt;
&lt;li&gt;test: Adding missing or correcting existing tests&lt;/li&gt;
&lt;li&gt;chore: Changes to the build process or auxiliary tools and libraries such as documentation generation&lt;/li&gt;
&lt;li&gt;revert: Reverts a previous commit&lt;/li&gt;
&lt;li&gt;build: Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm)&lt;/li&gt;
&lt;li&gt;ci: Changes to our CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果type为feat和fix，则该 commit 将肯定出现在 Change log 之中。其他情况由你决定，要不要放入 Change log。&lt;/p&gt;
&lt;h3 id=&quot;scope&quot;&gt;scope&lt;/h3&gt;
&lt;p&gt;用于说明 commit 影响的范围，比如数据层、控制层、视图层等等，视项目不同而不同&lt;/p&gt;
&lt;h3 id=&quot;subject&quot;&gt;subject&lt;/h3&gt;
&lt;p&gt;subject是 commit 目的的简短描述&lt;/p&gt;
&lt;h2 id=&quot;body&quot;&gt;Body&lt;/h2&gt;
&lt;p&gt;Body 部分是对本次 commit 的详细描述，可以分成多行&lt;/p&gt;
&lt;h2 id=&quot;footer&quot;&gt;Footer&lt;/h2&gt;
&lt;p&gt;Footer 部分只用于两种情况&lt;/p&gt;
&lt;h3 id=&quot;不兼容变动&quot;&gt;不兼容变动&lt;/h3&gt;
&lt;p&gt;如果当前代码与上一个版本不兼容，则 Footer 部分以BREAKING CHANGE开头，后面是对变动的描述、以及变动理由和迁移方法&lt;/p&gt;
&lt;h3 id=&quot;关闭问题&quot;&gt;关闭问题&lt;/h3&gt;
&lt;p&gt;如果当前 commit 针对某个issue，那么可以在 Footer 部分关闭这个 issue。&lt;/p&gt;
&lt;p&gt;如：Closes #123, #245, #992&lt;/p&gt;
&lt;h1 id=&quot;工具约束&quot;&gt;工具约束&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;我们的目标还是要通过工具生成和约束&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id=&quot;commitizen&quot;&gt;Commitizen&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/commitizen/cz-cli&quot;&gt;commitizen/cz-cli&lt;/a&gt; 代替git commit&lt;/p&gt;
&lt;p&gt;我们需要借助它提供的 git cz 命令替代我们的 git commit 命令, 帮助我们生成符合规范的 commit message&lt;/p&gt;
&lt;pre class=&quot;astro-code astro-code-themes min-light night-owl&quot; style=&quot;--shiki-light:#24292eff;--shiki-dark:#d6deeb;--shiki-light-bg:#ffffff;--shiki-dark-bg:#011627; overflow-x: auto;--file-name-offset: -0.75rem;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;# 如何安装，在安装之前请先安装npm&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;# 全局安装 commitizen&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;npm install commitizen -g&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;除此之外, 我们还需要为 commitizen 指定一个 Adapter 比如: cz-conventional-changelog (一个符合 Angular团队规范的 preset). 使得 commitizen 按照我们指定的规范帮助我们生成 commit message&lt;/p&gt;
&lt;pre class=&quot;astro-code astro-code-themes min-light night-owl&quot; style=&quot;--shiki-light:#24292eff;--shiki-dark:#d6deeb;--shiki-light-bg:#ffffff;--shiki-dark-bg:#011627; overflow-x: auto;--file-name-offset: -0.75rem;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;# 进入到我们项目的根目录&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;cd your_repo_root_path&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;# 初始化package.json&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;npm init --yes&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;# 为commitizen指定适配器&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;commitizen init cz-conventional-changelog --save-dev --save-exact&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;现在我们就可以用git cz去进行提交了&lt;/p&gt;
&lt;figure class=&quot;wp-block-image size-large&quot;&gt;
&lt;img src=&quot;https://r2.ly85.dev/git-commit-guidelines-03.png&quot; decoding=&quot;async&quot; alt=&quot;Commit例子&quot;&gt;
&lt;/figure&gt;
&lt;p&gt;但是问题来了，如果我们此时还用git commit -m “” 去提交，也是允许的，但是这肯定不是我们想要的，因为我们需要对message进行格式限制，所以，我们需要下面的检验插件commitlint + Husky&lt;/p&gt;
&lt;h2 id=&quot;commitlint--husky&quot;&gt;Commitlint + Husky&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/marionebl/commitlint&quot;&gt;commitlint&lt;/a&gt;可以帮助我们检查校验提交的message&lt;/p&gt;
&lt;p&gt;如果我们提交的不符合指向的规范, 直接拒绝提交&lt;/p&gt;
&lt;p&gt;校验 commit message 的最佳方式是结合 git hook, 所以需要配合Husky&lt;/p&gt;
&lt;pre class=&quot;astro-code astro-code-themes min-light night-owl&quot; style=&quot;--shiki-light:#24292eff;--shiki-dark:#d6deeb;--shiki-light-bg:#ffffff;--shiki-dark-bg:#011627; overflow-x: auto;--file-name-offset: -0.75rem;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;# 在我们的项目根目录&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;npm install --save-dev @commitlint/{config-conventional,cli}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;npm install husky --save-dev&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;# 在package.json尾部加入如下结构&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;&quot;husky&quot;: {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    &quot;hooks&quot;: {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;      &quot;commit-msg&quot;: &quot;commitlint -E HUSKY_GIT_PARAMS&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    } &lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;# 在项目根目录新增文件commitlint.config.js&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;module.exports = {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  extends: [&apos;@commitlint/config-conventional&apos;],&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  rules: {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  &apos;type-enum&apos;: [2, &apos;always&apos;, [&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;     &quot;feat&quot;, &quot;fix&quot;, &quot;docs&quot;, &quot;style&quot;, &quot;refactor&quot;, &quot;perf&quot;, &quot;test&quot;, &quot;build&quot;, &quot;ci&quot;, &quot;chore&quot;, &quot;revert&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;   ]],&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  &apos;scope-empty&apos;: [2, &apos;never&apos;],&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  &apos;subject-full-stop&apos;: [0, &apos;never&apos;],&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  &apos;subject-case&apos;: [0, &apos;never&apos;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;};&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;现在，我们可以在试试git commit -m “test”看看是否可以正常提交，应该会得到下面的拦截记录&lt;/p&gt;
&lt;figure class=&quot;wp-block-image size-large&quot;&gt;
&lt;img src=&quot;https://r2.ly85.dev/git-commit-guidelines-04.png&quot; title=&quot;Git Hooks例子&quot; decoding=&quot;async&quot; alt=&quot;Git Hooks例子&quot;&gt;
&lt;/figure&gt;
&lt;h2 id=&quot;standard-version&quot;&gt;Standard Version&lt;/h2&gt;
&lt;p&gt;通过以上工具的帮助, 我们的工程 commit message 应该是符合Angular团队那套，这样也便于我们借助standard-version这样的工具, 自动生成 CHANGELOG, 甚至是语义化的版本号(Semantic Version)&lt;/p&gt;
&lt;pre class=&quot;astro-code astro-code-themes min-light night-owl&quot; style=&quot;--shiki-light:#24292eff;--shiki-dark:#d6deeb;--shiki-light-bg:#ffffff;--shiki-dark-bg:#011627; overflow-x: auto;--file-name-offset: -0.75rem;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;# 在项目根目录&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;npm install --save-dev standard-version&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;# 在scripts结构体中加入执行脚本&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  &quot;scripts&quot;: {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    &quot;release&quot;: &quot;standard-version&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;# 生成changelog&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;# 第一次生成&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;npm run release -- --first-release&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;# 后续生成&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;npm run release&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;会在我们项目根目录生成一个CHANGELOG.md文件，如下所示&lt;/p&gt;
&lt;figure class=&quot;wp-block-image&quot;&gt;
&lt;img src=&quot;https://s2.loli.net/2024/02/04/v75XCrs8zeyHuZA.png&quot; title=&quot;Change Log&quot; decoding=&quot;async&quot; alt=&quot;Change Log&quot;&gt;
&lt;/figure&gt;
&lt;h1 id=&quot;项目中如何使用&quot;&gt;项目中如何使用&lt;/h1&gt;
&lt;p&gt;如果我们已经完成了上述操作，会发现我们最终会得到一个package.json，我们只需要把package.json / commitlint.config.js提交版本库即可&lt;/p&gt;
&lt;p&gt;把node_modules 和 package-lock.json都加入git忽略文件&lt;/p&gt;
&lt;p&gt;下次再新clone项目后，直接在项目根目录运行npm install即可完成上述所有步骤&lt;/p&gt;
&lt;p&gt;PS：NPM有时候国外镜像不稳定，可以切换淘宝镜像&lt;/p&gt;
&lt;pre class=&quot;astro-code astro-code-themes min-light night-owl&quot; style=&quot;--shiki-light:#24292eff;--shiki-dark:#d6deeb;--shiki-light-bg:#ffffff;--shiki-dark-bg:#011627; overflow-x: auto;--file-name-offset: -0.75rem;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;npm config set registry https://registry.npm.taobao.org&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;</content:encoded></item><item><title>作为研发Leader，如何组织技术分享</title><link>https://blog.ly85.dev/zh/posts/as-leader-how-to-org-tech-share/</link><guid isPermaLink="true">https://blog.ly85.dev/zh/posts/as-leader-how-to-org-tech-share/</guid><description>目的 首先，我们需要明确为什么要做这件事情。这件事情能给大家带来什么，预期结果又是什么，这里的“大家”主要有3</description><pubDate>Wed, 02 Dec 2020 05:53:26 GMT</pubDate><content:encoded>&lt;h1 id=&quot;目的&quot;&gt;目的&lt;/h1&gt;
&lt;p&gt;首先，我们需要明确为什么要做这件事情。这件事情能给大家带来什么，预期结果又是什么，这里的“大家”主要有3个主体：公司、团队、个人，每个主体对于技术学习与分享这件事件，都有不同的预期结果，下面总结了几点目的：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;学习新技术，提升自我，形成技术知识体系&lt;/li&gt;
&lt;li&gt;提升专业知识领域的经验&lt;/li&gt;
&lt;li&gt;提升沟通和表达能力&lt;/li&gt;
&lt;li&gt;学习和分析内容，可以帮助产品技术框架、性能、工具的推进&lt;/li&gt;
&lt;li&gt;技术资料的沉淀，形成公司技术价值&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id=&quot;如何开始&quot;&gt;如何开始&lt;/h1&gt;
&lt;p&gt;了解了目的，我们需要想想如何做，才能达成目的。成人的学习、培训是比较难顺利推进，繁重的开发任务和人的惰性，Leader和管理层是否真正关注和帮助大家，这些都是历来公司内部推进技术学习与分享的各种困难，最后很多公司和团队都是不了了之。那么我们怎么做才能避免一些坑呢：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;管理层统一思想，技术学习和分享是长期工作，其效果体现需要长期来看和评估&lt;/li&gt;
&lt;li&gt;内容的质量，内容不能过浅&lt;/li&gt;
&lt;li&gt;明确的分享周期和分享团队，明确分享人和听众的责任&lt;/li&gt;
&lt;li&gt;选择内容不能随意，需要针对“听众”的情况，选择感兴趣的内容&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id=&quot;如何做&quot;&gt;如何做&lt;/h1&gt;
&lt;h2 id=&quot;1分享成员&quot;&gt;1.分享成员&lt;/h2&gt;
&lt;p&gt;降低责任分母，如果12人团队，责任分母是12，会因为各种原因，某个人觉得不是我一个人的事情，很难主动分享；把分享做成小组，责任分母变小，可能是2或者3，这样小组内推进，比每个人的自驱动力推进来的靠谱。&lt;/p&gt;
&lt;p&gt;我们目前的研发团队组成有3类&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;RD：4人&lt;/li&gt;
&lt;li&gt;FE：5人&lt;/li&gt;
&lt;li&gt;QA：3人&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;以3个小组为单位，进行技术学习和分享活动，按照顺序轮流执行，小组内，可以一次多人分享，也可以一次一人分享。&lt;/p&gt;
&lt;h2 id=&quot;2周期确定&quot;&gt;2.周期确定&lt;/h2&gt;
&lt;p&gt;周期规则必须明确，这样分享人和听众，都有时间去准备。&lt;/p&gt;
&lt;h3 id=&quot;分享时间规则&quot;&gt;分享时间规则&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;频次：每2周1次（几组轮流）&lt;/li&gt;
&lt;li&gt;时间：周四晚上19点15分&lt;/li&gt;
&lt;li&gt;时长：60分钟内&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;分享人准备&quot;&gt;分享人准备&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;发出大纲：提前1周，即分享前一周的周四前发出&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;听众准备&quot;&gt;听众准备&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;阅读资料：分享会前1周内，需要把分享资料进行阅读，有分析显示，如果不提前看开会内容，在会议上可能听懂的内容也就20%，为了不浪费自己的生命，也应该分享前去阅读资料&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;3内容选择&quot;&gt;3.内容选择&lt;/h2&gt;
&lt;p&gt;学习和分享的目的，是为了提高大家的技术水平，扩展大家认知的领域，所以内容选择建议分成2类：技术专题分享、自由主题分享。&lt;/p&gt;
&lt;h3 id=&quot;如何选择内容&quot;&gt;如何选择内容&lt;/h3&gt;
&lt;p&gt;内容的选择，应该因团队情况和产品技术架构情况而异，每个季度进行一次规划，从团队中了解管理、技术弱点、希望提高的方面、产品下一步的技术和框架的要求，针对规划出来的内容，进行内容的选择（也包含培训课程平台的选择，目前选择的是拉勾教育）。&lt;/p&gt;
&lt;h3 id=&quot;技术专题分享&quot;&gt;技术专题分享&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;有针对性提升团队在某一个技术领域的专业技能&lt;/li&gt;
&lt;li&gt;可以快速的，有针对性的使用在现有架构和产品中&lt;/li&gt;
&lt;li&gt;往往需要由浅入深，进行循序渐进的分享&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;自由主题分享&quot;&gt;自由主题分享&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;拓展认知&lt;/li&gt;
&lt;li&gt;内容可以更广，甚至可以邀请相关非技术同学参加&lt;/li&gt;
&lt;li&gt;更加要求分享者的表达的逻辑思维，怎么把大家不熟悉的内容，讲明白&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;针对分享类型，可以有针对性的进行技术专题分享和自由主题分享的交替&lt;/p&gt;
&lt;h3 id=&quot;reject-simple&quot;&gt;Reject Simple&lt;/h3&gt;
&lt;p&gt;想要分享的内容和形式NB，你就得变的NB在内容上，我们拒绝特别简单的技术内容，不要分享安装什么什么环境、什么什么入门之类的&lt;/p&gt;
&lt;h2 id=&quot;4团队氛围&quot;&gt;4.团队氛围&lt;/h2&gt;
&lt;p&gt;通过技术学习和分享，提升团队的技术氛围，加强大家的了解，提高凝聚力。&lt;/p&gt;
&lt;p&gt;分享会提供一些饮料、好吃的，在一个轻松的氛围下，免费学习知识，肯定有更多的人愿意来参与进来，主动性会增强很多。&lt;/p&gt;
&lt;h1 id=&quot;总结&quot;&gt;总结&lt;/h1&gt;
&lt;p&gt;除了学习和分享，也希望大家学会感恩&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;感谢&lt;/strong&gt;公司可以提供平台给大家进行分享的机会；&lt;strong&gt;感谢&lt;/strong&gt;分享人利用自己时间，准备PPT；&lt;strong&gt;感谢&lt;/strong&gt;听众认真聆听，踊跃提问；&lt;/p&gt;
&lt;p&gt;怀着一颗感恩的心，你会看到更美好的东西，站在别人的角度思考，会让你走向另一个高度！&lt;/p&gt;</content:encoded></item><item><title>小团队如何落地敏捷开发</title><link>https://blog.ly85.dev/zh/posts/small-team-iteration-1-0/</link><guid isPermaLink="true">https://blog.ly85.dev/zh/posts/small-team-iteration-1-0/</guid><description>You can’t manage what you don’t measure. &amp;#</description><pubDate>Wed, 11 Nov 2020 06:29:01 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;You can’t manage what you don’t measure. – Peter Drucker&lt;br&gt;
你如果无法度量它，就无法管理它。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;这是现代管理学之父，彼得·德鲁克的一句名言。项目管理、敏捷开发的前提，还是需要把数据串起来，进行可视化、数据化，这样才能看到它，管理它。&lt;/p&gt;
&lt;p&gt;本文将以公司SaaS产品为例，介绍下“小团队”是如何进行敏捷研发的落地的。&lt;/p&gt;
&lt;h1 id=&quot;为什么要实施&quot;&gt;为什么要实施&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;需求的进展不透明，不知道现在到哪里了&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;需求延期发布成为了家常便饭，不知道什么时候会发布上线&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;需求发布上线后，心里总是忐忑不安，不知道什么时候会出现问题和故障&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;团队沟通成本太高，经常性出现RD、FE、QA、PM信息不一致&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;需求插入随意、频繁，不计成本&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;\&lt;/p&gt;
&lt;p&gt;不清楚，研发团队的工作量，是正常、超负荷、还是有人不饱和&lt;/p&gt;
&lt;p&gt;\&lt;/p&gt;
&lt;p&gt;在互联网初创公司里，需求和有限的资源，永远是矛盾命题，如何在矛盾中寻找平衡，把有限的资源专注于符合公司战略的需求，保持团队的节奏和良好的情绪，就是要实施敏捷管理的痛点，也是我们为什么要实施，敏捷管理也可以很好的回答上面出现的各种问题，给出答案。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id=&quot;使用的工具&quot;&gt;使用的工具&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;The tools you use shape the way you work.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Atlassian Confluence&lt;/li&gt;
&lt;li&gt;Atlassian Jira&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id=&quot;如何做好这件事情&quot;&gt;如何做好这件事情&lt;/h1&gt;
&lt;p&gt;「 需求评审 ➡️ 设计评审 ➡️ 研发实现 ➡️ 测试 ➡️ 验收 ➡️ 发布 ➡️ 后评估 」&lt;/p&gt;
&lt;p&gt;为了让产品和研发过程可视化，更加可控，信息互通，我们采用&lt;em&gt;&lt;strong&gt;4个看板&lt;/strong&gt;&lt;/em&gt;模型进行敏捷管理实践，看板名称和功能如下：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;公开需求看板（Kanban Board）&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;通过「看板」建立一个公开需求池，向跨部门成员广泛收集需求，一切市场反馈及时传递到位。看板类型为Kanban Board。&lt;/p&gt;
&lt;figure class=&quot;wp-block-image size-large&quot;&gt;
&lt;img src=&quot;https://r2.ly85.dev/small-team-iteration-1-01.jpg&quot; title=&quot;看板&quot; decoding=&quot;async&quot; alt=&quot;看板&quot;&gt;
&lt;/figure&gt;
&lt;blockquote&gt;
&lt;p&gt;需求看板（Kanban Board）&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;为需求生命周期搭建流程，按「Backlog – 评审 – 排期 – 设计 – 开发 – 发布」设立多个阶段，需求流转可视化。&lt;/p&gt;
&lt;figure class=&quot;wp-block-image size-large&quot;&gt;
&lt;img src=&quot;https://r2.ly85.dev/small-team-iteration-1-02.jpg&quot; title=&quot;需求看板&quot; decoding=&quot;async&quot; alt=&quot;需求看板&quot;&gt;
&lt;/figure&gt;
&lt;blockquote&gt;
&lt;p&gt;任务效能看板（Scrum Board）&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;为需求预设好发版时间，所有人都可以及时预知逾期风险；产品、开发和需求提出者随时发起沟通，及时同步需求变化或者开发进展。&lt;/p&gt;
&lt;figure class=&quot;wp-block-image size-large&quot;&gt;
&lt;img src=&quot;https://r2.ly85.dev/small-team-iteration-1-03.jpg&quot; title=&quot;任务效能看板&quot; decoding=&quot;async&quot; alt=&quot;任务效能看板&quot;&gt;
&lt;/figure&gt;
&lt;blockquote&gt;
&lt;p&gt;BUG看板（Kanban Board）&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;通过看板查询，迭代中的各种类型的BUG数量情况，清楚明了。&lt;/p&gt;
&lt;figure class=&quot;wp-block-image size-large&quot;&gt;
&lt;img src=&quot;https://r2.ly85.dev/small-team-iteration-1-04.jpg&quot; title=&quot;BUG看板&quot; decoding=&quot;async&quot; alt=&quot;BUG看板&quot;&gt;
&lt;/figure&gt;
&lt;h1 id=&quot;公开需求管理公开需求看板&quot;&gt;公开需求管理（公开需求看板）&lt;/h1&gt;
&lt;p&gt;公司属于教育类SaaS，其公开需求主要来源有下面几类：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;重要客户（学校）&lt;/li&gt;
&lt;li&gt;用户日常使用反馈（教师、学生、家长）&lt;/li&gt;
&lt;li&gt;销售渠道&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;甄别和过滤伪需求和次要或者不符合战略的需求，在这里进行，但是“业务方”提出的众多的需求如何管理，也是一件头疼的事情，主要的公开需求来源一般由以下几种：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;销售&lt;/li&gt;
&lt;li&gt;市场&lt;/li&gt;
&lt;li&gt;内部（基于产品规划 / 其他）&lt;/li&gt;
&lt;li&gt;用户使用体验&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;客户成功同学、销售同学或者其他干系人，都可以在这个看板内，提交公开需求，产品同学会过滤、调研，转化为产品需求，到产品需求池内，下面是&lt;em&gt;&lt;strong&gt;公开需求看板&lt;/strong&gt;&lt;/em&gt;，卡片的内容主要包含了：需求描述、公开需求来源、报告人、经办人&lt;/p&gt;
&lt;figure class=&quot;wp-block-image size-large&quot;&gt;
&lt;img src=&quot;https://r2.ly85.dev/small-team-iteration-1-05.jpg&quot; title=&quot;公开需求看板&quot; decoding=&quot;async&quot; alt=&quot;公开需求看板&quot;&gt;
&lt;/figure&gt;
&lt;ul&gt;
&lt;li&gt;判断价值很低或者肯定不会做的需求，直接拖到已完成&lt;/li&gt;
&lt;li&gt;判断有一定价值或需要在分析的需求，拖到调研讨论，最终确定后，再拖到已完成&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id=&quot;产品研发需求管理需求看板&quot;&gt;产品研发需求管理（需求看板）&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;需求分类&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;产品研发内部，我们把需求分成2类：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;产品需求：PM提出的迭代、紧急、日常类需求&lt;/li&gt;
&lt;li&gt;技术需求：研发内部为了稳定性、扩展性、维护性而进行的技术重构类需求&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;需求等级&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;古语云：师出有名，需求的提出也是如此，为了让研发同学知道需求的重要和紧急程度，需求等级划分是特别需要的一件事情。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;产品需求等级划分&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;P0：紧急任务，必须穷尽所能，最短时间完成；可以调人支援，可以停止其他项目，需要加班&lt;/li&gt;
&lt;li&gt;P1：非常重要任务，有Deadline，并且不可以Delay；如遇到P0，那么就需要加班保证P1的Deadline&lt;/li&gt;
&lt;li&gt;P2：重要、有影响力的任务，有Deadline，如遇到P0和P1，可以顺延（应该是大部分任务）&lt;/li&gt;
&lt;li&gt;P3：锦上添花的正常任务，优先级最低&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;技术需求等级划分&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;T0：重大性能和漏洞，需要加班加点进行修复&lt;/li&gt;
&lt;li&gt;T1：扩展性和性能风险问题，一般是单独任务进行修复&lt;/li&gt;
&lt;li&gt;T2：设计或者一般性能缺陷，一般是随着迭代进行相关改进&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;产品需求管理（需求看板）&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;PM和研发同学，通过PRD的方式进行沟通和交流，研发同学最终也是通过PRD进行开发、测试工作，所以第一步是需要创建PRD，PRD的管理方式采用相对灵活的方式，PM写PRD的工具有的是蓝湖，有的墨刀，我们这里为了统一归档，在Confluence做了归档的统一管理（PRD的详细链接可以是任何工具的链接）， 在Confluence创建时选择模板创建，见下图：&lt;/p&gt;
&lt;figure class=&quot;wp-block-image size-large&quot;&gt;
&lt;img src=&quot;https://r2.ly85.dev/small-team-iteration-1-06.jpg&quot; title=&quot;需求模板&quot; decoding=&quot;async&quot; alt=&quot;需求模板&quot;&gt;
&lt;/figure&gt;
&lt;p&gt;主要包含了&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;背景描述&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;业务目标的描述&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;span style=&quot;font-size: revert;&quot;&gt;需求链接和功能列表（即Story）&lt;/span&gt;\&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;需求看板&lt;/em&gt;的&lt;/strong&gt;泳道有P0、P1、P1以下、技术需求的4个泳道，为了便于搜索，在快捷搜索列加入了常用的搜索关键词，卡片主要包含：需求等级、到期日、需求负责人&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;figure class=&quot;wp-block-image size-large&quot;&gt;
&lt;img src=&quot;https://r2.ly85.dev/small-team-iteration-1-07.jpg&quot; title=&quot;泳道图&quot; decoding=&quot;async&quot; alt=&quot;泳道图&quot;&gt;
&lt;/figure&gt;
&lt;blockquote&gt;
&lt;p&gt;技术需求管理（需求看板）&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;类似数据结构的变更、技术架构的改进，比如：更换配置中心为Apollo，这类需要简称技术需求，其数据显示和看板功能，和产品需求基本一致，也显示在&lt;em&gt;&lt;strong&gt;需求看板&lt;/strong&gt;&lt;/em&gt;内，看板如下：&lt;/p&gt;
&lt;figure class=&quot;wp-block-image size-large&quot;&gt;
&lt;img src=&quot;https://r2.ly85.dev/small-team-iteration-1-08.jpg&quot; title=&quot;技术需求看板&quot; decoding=&quot;async&quot; alt=&quot;技术需求看板&quot;&gt;
&lt;/figure&gt;
&lt;h1 id=&quot;技术任务管理任务效能看板&quot;&gt;技术任务管理（任务效能看板）&lt;/h1&gt;
&lt;p&gt;这个阶段，主要是从需求阶段进入到了研发阶段，这个阶段主要包含如下类型的任务：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;开发任务：RD、FE&lt;/li&gt;
&lt;li&gt;开发自测：RD、FE&lt;/li&gt;
&lt;li&gt;测试用例编写：QA&lt;/li&gt;
&lt;li&gt;测试用例执行：QA&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;技术任务类型的问题，主要来源于2个方面&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;产品需求&lt;/li&gt;
&lt;li&gt;技术需求&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;对于此类任务管理，我们使用的看板是&lt;em&gt;&lt;strong&gt;任务效能看板&lt;/strong&gt;&lt;/em&gt;。在开始之前，我们需要在Backlog内，拖动需要进行迭代的技术需求或产品需求，如下图：&lt;/p&gt;
&lt;figure class=&quot;wp-block-image size-large&quot;&gt;
&lt;img src=&quot;https://r2.ly85.dev/small-team-iteration-1-09.jpg&quot; title=&quot;Backlog&quot; decoding=&quot;async&quot; alt=&quot;Backlog&quot;&gt;
&lt;/figure&gt;
&lt;p&gt;然后，以产品需求和技术需求为父任务，在&lt;em&gt;&lt;strong&gt;需求看板&lt;/strong&gt;&lt;/em&gt;内，创建子任务，界面如下：&lt;/p&gt;
&lt;figure class=&quot;wp-block-image size-large&quot;&gt;
&lt;img src=&quot;https://r2.ly85.dev/small-team-iteration-1-10.jpg&quot; title=&quot;创建子任务&quot; decoding=&quot;async&quot; alt=&quot;创建子任务&quot;&gt;
&lt;/figure&gt;
&lt;p&gt;创建好后，可以查看父子任务详情，并有工作量体现&lt;/p&gt;
&lt;figure class=&quot;wp-block-image size-large&quot;&gt;
&lt;img src=&quot;https://r2.ly85.dev/small-team-iteration-1-11.jpg&quot; title=&quot;父子任务&quot; decoding=&quot;async&quot; alt=&quot;父子任务&quot;&gt;
&lt;/figure&gt;
&lt;p&gt;点击开始Sprint，并设置好时间，如下图：&lt;/p&gt;
&lt;figure class=&quot;wp-block-image size-large&quot;&gt;
&lt;img src=&quot;https://r2.ly85.dev/small-team-iteration-1-03.jpg&quot; title=&quot;Sprint Start&quot; decoding=&quot;async&quot; alt=&quot;Sprint Start&quot;&gt;
&lt;/figure&gt;
&lt;p&gt;RD &amp;#x26; QA &amp;#x26; FE，在每天下班前，填写其任务的工作量即可达到任务工作量跟踪的效果，如下图：&lt;/p&gt;
&lt;figure class=&quot;wp-block-image size-large&quot;&gt;
&lt;img src=&quot;https://r2.ly85.dev/small-team-iteration-1-12.jpg&quot; title=&quot;Work Report&quot; decoding=&quot;async&quot; alt=&quot;Work Report&quot;&gt;
&lt;/figure&gt;
&lt;h1 id=&quot;测试bug管理bug看板&quot;&gt;测试BUG管理（BUG看板）&lt;/h1&gt;
&lt;p&gt;在Sprint中产生的BUG都会显示在&lt;em&gt;&lt;strong&gt;BUG看板&lt;/strong&gt;&lt;/em&gt;中，工作流主要是打开 ➡️ 处理中 ➡️ 已解决 ➡️ 已关闭，如下图：&lt;/p&gt;
&lt;figure class=&quot;wp-block-image size-large&quot;&gt;
&lt;img src=&quot;https://r2.ly85.dev/small-team-iteration-1-13.jpg&quot; title=&quot;BUG看板&quot; decoding=&quot;async&quot; alt=&quot;BUG看板&quot;&gt;
&lt;/figure&gt;
&lt;p&gt;我们所采用的BUG类的问题类型有以下几种：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;功能错误&lt;/li&gt;
&lt;li&gt;界面优化&lt;/li&gt;
&lt;li&gt;功能优化&lt;/li&gt;
&lt;li&gt;性能问题&lt;/li&gt;
&lt;li&gt;安全相关&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;在这个迭代结束后，测试人员，会根据BUG的统计报告数据，分析得出本次迭代的测试报告，测试报告，我们在Confluence创建了统一模板，主要内容如下：&lt;/p&gt;
&lt;figure class=&quot;wp-block-image size-large&quot;&gt;
&lt;img src=&quot;https://r2.ly85.dev/small-team-iteration-1-14.jpg&quot; title=&quot;测试报告&quot; decoding=&quot;async&quot; alt=&quot;测试报告&quot;&gt;
&lt;/figure&gt;
&lt;figure class=&quot;wp-block-image size-large&quot;&gt;
&lt;img src=&quot;https://r2.ly85.dev/small-team-iteration-1-15.jpg&quot; title=&quot;测试报告&quot; decoding=&quot;async&quot; alt=&quot;测试报告&quot;&gt;
&lt;/figure&gt;
&lt;h1 id=&quot;小结&quot;&gt;小结&lt;/h1&gt;
&lt;p&gt;需求和效能的生命周期管理，这里仅仅是按照目前产品和团队的需求和阶段，规定了一些适合我们的方法，这个周期管理，还是需要随着人员和阶段的不同而进行不断的改造和演进的，下面是我们在JIRA和Confluence使用的一些核心流程和方法：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;4个看板
&lt;ul&gt;
&lt;li&gt;公开需求看板：处理市场、销售前端部门提出的“大客户需求”和“用户使用体验问题”&lt;/li&gt;
&lt;li&gt;需求看板：主要是管理技术需求和产品需求&lt;/li&gt;
&lt;li&gt;任务效能看板：主要是管理开发阶段，RD &amp;#x26; FE &amp;#x26; QA的任务和工作量，跟踪其任务合理性&lt;/li&gt;
&lt;li&gt;BUG看板：主要是管理迭代内产生的5类BUG问题，功能优化 &amp;#x26; 功能错误 &amp;#x26; 界面优化 &amp;#x26; 性能问题 &amp;#x26; 安全相关&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;2个模板
&lt;ul&gt;
&lt;li&gt;产品需求模板：产品需求的管理&lt;/li&gt;
&lt;li&gt;测试报告模块：迭代后，针对BUG和其他问题，进行的测试相关的总结&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;目前，敏捷相关的管理，这个阶段也仅仅是做了一小部分，还有很多实践方法，在后续的变化中，会加入和实施&lt;/p&gt;
&lt;p&gt;敏捷管理是为了快速、稳定的交付产品而服务的，切忌不要为了追求敏捷工具的使用而耽误了实际要达成的目标。&lt;/p&gt;</content:encoded></item></channel></rss>