<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>架构与选型 on 雪狼的书斋</title>
    <link>/%E6%9E%B6%E6%9E%84/%E6%9E%B6%E6%9E%84%E4%B9%8B%E6%BA%90/%E6%9E%B6%E6%9E%84%E4%B8%8E%E9%80%89%E5%9E%8B/</link>
    <description>Recent content in 架构与选型 on 雪狼的书斋</description>
    <generator>Hugo</generator>
    <language>zh-hans</language>
    <atom:link href="/%E6%9E%B6%E6%9E%84/%E6%9E%B6%E6%9E%84%E4%B9%8B%E6%BA%90/%E6%9E%B6%E6%9E%84%E4%B8%8E%E9%80%89%E5%9E%8B/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>1.技术选型指南</title>
      <link>/%E6%9E%B6%E6%9E%84/%E6%9E%B6%E6%9E%84%E4%B9%8B%E6%BA%90/%E6%9E%B6%E6%9E%84%E4%B8%8E%E9%80%89%E5%9E%8B/010-%E6%8A%80%E6%9C%AF%E9%80%89%E5%9E%8B%E6%8C%87%E5%8D%97/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/%E6%9E%B6%E6%9E%84/%E6%9E%B6%E6%9E%84%E4%B9%8B%E6%BA%90/%E6%9E%B6%E6%9E%84%E4%B8%8E%E9%80%89%E5%9E%8B/010-%E6%8A%80%E6%9C%AF%E9%80%89%E5%9E%8B%E6%8C%87%E5%8D%97/</guid>
      <description>&lt;p&gt;技术选型，是软件开发中最关键、也最「性感」的决策之一。它像一场「技术赌局」，一旦下注，便会深远地影响项目未来的走向、团队的开发效率、甚至公司的商业成败。&lt;/p&gt;&#xA;&lt;p&gt;然而，在这场赌局中，太多的团队成了「输家」。他们往往不是输在技术本身，而是输在了「选」这个动作上。他们被「潮流」所诱惑，被「简历」所绑架，被「粉丝」所裹挟，最终上演了一幕幕「技术选型惨案」。&lt;/p&gt;&#xA;&lt;p&gt;今天，雪狼不想跟你争论哪个框架是「天下第一」，而是想给你一份「技术选型地图」，一套结构化的决策框架，帮助你拨开迷雾，为你的项目，找到那个最「情投意合」的技术伴侣。&lt;/p&gt;&#xA;&lt;h2 id=&#34;选型的两大陷阱网红崇拜与简历驱动&#34;&gt;选型的两大陷阱：「网红崇拜」与「简历驱动」&lt;a class=&#34;anchor&#34; href=&#34;#%e9%80%89%e5%9e%8b%e7%9a%84%e4%b8%a4%e5%a4%a7%e9%99%b7%e9%98%b1%e7%bd%91%e7%ba%a2%e5%b4%87%e6%8b%9c%e4%b8%8e%e7%ae%80%e5%8e%86%e9%a9%b1%e5%8a%a8&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;在做出理性决策前，我们必须先识破两个最常见的「心魔陷阱」。&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;网红崇拜（粉丝效应）&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;「那个新出的 XXX 框架，在 Hacker News 上屠榜了！性能跑分是现在的十倍！」&lt;/p&gt;&#xA;&lt;p&gt;「YYY 公司（某大厂）都在用 ZZZ，我们用准没错！」&lt;/p&gt;&#xA;&lt;p&gt;这种心态，就像是看着 T 台上的超模，就幻想着能跟她天长地久。你只看到了她光鲜亮丽的一面，却对其背后可能存在的复杂性、不成熟、以及与你自身团队的「文化差异」一无所知。追逐「网红」技术，往往会让你成为第一个「被坑」的人。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;简历驱动开发（Resume-Driven Development）&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;「我们必须用 Go 和 Kubernetes，这样我的简历上才能写上『微服务专家』。」&lt;/p&gt;&#xA;&lt;p&gt;这是一种更隐蔽、也更危险的心态。技术决策不再服务于项目和公司的利益，而是服务于个别成员的「个人发展」。为了一个简单的 CRUD 应用，却引入了一整套复杂的微服务架构，最终导致开发效率低下，运维成本飙升。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h2 id=&#34;决策矩阵一套理性的选型框架&#34;&gt;「决策矩阵」：一套理性的选型框架&lt;a class=&#34;anchor&#34; href=&#34;#%e5%86%b3%e7%ad%96%e7%9f%a9%e9%98%b5%e4%b8%80%e5%a5%97%e7%90%86%e6%80%a7%e7%9a%84%e9%80%89%e5%9e%8b%e6%a1%86%e6%9e%b6&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;要避免感性决策，我们需要一个理性的「决策矩阵」。在考察一项新技术时，请从以下几个维度，为它打分。&lt;/p&gt;&#xA;&lt;h3 id=&#34;1-问题方案匹配度-problem-solution-fit&#34;&gt;1. 问题方案匹配度 (Problem-Solution Fit)&lt;a class=&#34;anchor&#34; href=&#34;#1-%e9%97%ae%e9%a2%98%e6%96%b9%e6%a1%88%e5%8c%b9%e9%85%8d%e5%ba%a6-problem-solution-fit&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;&lt;strong&gt;核心问题&lt;/strong&gt;：这项技术，真的能以一种优雅、高效的方式，解决我&lt;strong&gt;当前&lt;/strong&gt;的问题吗？&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;不要用「攻城锤」去砸钉子。为了一个内部管理后台，引入一个需要大量优化经验才能驾驭的高并发框架，值得吗？&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;也不要用「指甲刀」去砍大树。面对一个需要处理海量数据、高实时性的业务，还坚持使用你最熟悉但性能有瓶颈的脚本语言，合适吗？&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;技术，永远是解决问题的「工具」，而非「目的」。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;2-团队技能与学习曲线-team--learning-curve&#34;&gt;2. 团队技能与学习曲线 (Team &amp;amp; Learning Curve)&lt;a class=&#34;anchor&#34; href=&#34;#2-%e5%9b%a2%e9%98%9f%e6%8a%80%e8%83%bd%e4%b8%8e%e5%ad%a6%e4%b9%a0%e6%9b%b2%e7%ba%bf-team--learning-curve&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;&lt;strong&gt;核心问题&lt;/strong&gt;：我的团队驾驭这项技术的成本有多高？&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;团队成员是否已经具备相关或相似的技能？从 Angular 转 NestJS，就比从 PHP 转 NestJS 的成本低得多。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;这项技术的学习曲线有多陡峭？文档是否完善？社区是否活跃？&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;黄金法则&lt;/strong&gt;：一个团队&lt;strong&gt;精通&lt;/strong&gt;的「二流」技术，其产出效率，往往远高于一个团队&lt;strong&gt;新手&lt;/strong&gt;的「一流」技术。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;3-生态系统与社区-ecosystem--community&#34;&gt;3. 生态系统与社区 (Ecosystem &amp;amp; Community)&lt;a class=&#34;anchor&#34; href=&#34;#3-%e7%94%9f%e6%80%81%e7%b3%bb%e7%bb%9f%e4%b8%8e%e7%a4%be%e5%8c%ba-ecosystem--community&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;&lt;strong&gt;核心问题&lt;/strong&gt;：我不是一个人在战斗，我的「后援团」在哪里？&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;社区活跃度&lt;/strong&gt;：当你在 Stack Overflow 上提问时，是几分钟内就有热心人回答，还是几天后帖子石沉大海？&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;第三方库&lt;/strong&gt;：是否有成熟、高质量的第三方库来解决常见问题（如用户认证、数据可视化、支付集成）？还是所有轮子都得自己造？&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;人才招聘&lt;/strong&gt;：这个技术栈的人才，在市场上好招吗？&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;一个繁荣的生态，是技术能够长期存活并为你持续创造价值的根本保障。&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;./tech_selection_images/decision_matrix.jpg&#34; alt=&#34;文生图：一个由五个维度（问题匹配度、团队技能、社区生态、成熟度、运维成本）构成的雷达图，不同的技术（如Angular, React, Vue）在图上呈现出不同的形状，直观地展示了它们的综合评估结果。风格：专业、清晰的信息图表。&#34; /&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>2.技术选型决策树</title>
      <link>/%E6%9E%B6%E6%9E%84/%E6%9E%B6%E6%9E%84%E4%B9%8B%E6%BA%90/%E6%9E%B6%E6%9E%84%E4%B8%8E%E9%80%89%E5%9E%8B/020-%E6%8A%80%E6%9C%AF%E9%80%89%E5%9E%8B%E5%86%B3%E7%AD%96%E6%A0%91/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/%E6%9E%B6%E6%9E%84/%E6%9E%B6%E6%9E%84%E4%B9%8B%E6%BA%90/%E6%9E%B6%E6%9E%84%E4%B8%8E%E9%80%89%E5%9E%8B/020-%E6%8A%80%E6%9C%AF%E9%80%89%E5%9E%8B%E5%86%B3%E7%AD%96%E6%A0%91/</guid>
      <description>&lt;p&gt;技术选型，从来就不是一道简单的选择题，而是一场多变量、多约束、多维度的复杂决策。它没有标准答案，只有「最优解」。&lt;/p&gt;&#xA;&lt;p&gt;就像在森林中迷失方向，与其盲目乱闯，不如先绘制一张「地图」，明确目的地，然后一步步地排除干扰，最终找到出路。&lt;/p&gt;&#xA;&lt;p&gt;这篇文章，雪狼将为你构建这样一棵「&lt;strong&gt;技术选型决策树&lt;/strong&gt;」 ，它将引导你从宏观到微观，从业务到技术，系统性地思考，助你拨开技术选型的迷雾。&lt;/p&gt;&#xA;&lt;h2 id=&#34;根基明确业务目标与核心约束&#34;&gt;根基：明确业务目标与核心约束&lt;a class=&#34;anchor&#34; href=&#34;#%e6%a0%b9%e5%9f%ba%e6%98%8e%e7%a1%ae%e4%b8%9a%e5%8a%a1%e7%9b%ae%e6%a0%87%e4%b8%8e%e6%a0%b8%e5%bf%83%e7%ba%a6%e6%9d%9f&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;在踏上决策之路前，你必须先明确你旅途的&lt;strong&gt;起点&lt;/strong&gt;和&lt;strong&gt;终点&lt;/strong&gt;，以及你手中的&lt;strong&gt;资源&lt;/strong&gt;。&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;业务目标&lt;/strong&gt;：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;你要解决什么问题？（例：构建一个高并发的电商平台、开发一个快速迭代的内部管理系统、设计一个数据密集型的可视化工具）。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;项目的核心价值主张是什么？（例：极致的用户体验、快速的市场响应、数据安全）。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;strong&gt;误区&lt;/strong&gt;：在不明确业务目标的情况下谈技术，无异于盲人摸象。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;核心约束&lt;/strong&gt;：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;时间&lt;/strong&gt;：项目交付周期多长？&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;预算&lt;/strong&gt;：可用的开发和运营预算是多少？&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;人力&lt;/strong&gt;：团队规模、现有技能栈、可招聘人才的成本与难度。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;技术债务&lt;/strong&gt;：是否需要与现有遗留系统集成？&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h2 id=&#34;第一层问题领域匹配&#34;&gt;第一层：问题领域匹配&lt;a class=&#34;anchor&#34; href=&#34;#%e7%ac%ac%e4%b8%80%e5%b1%82%e9%97%ae%e9%a2%98%e9%a2%86%e5%9f%9f%e5%8c%b9%e9%85%8d&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;首先，根据你要构建的应用类型，初步筛选技术。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;是 Web 应用吗？&lt;/strong&gt; (是 -&amp;gt; 前端框架、后端语言；否 -&amp;gt; 移动、桌面、嵌入式&amp;hellip;)&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;是后端服务吗？&lt;/strong&gt; (是 -&amp;gt; 后端语言、框架、数据库；否 -&amp;gt; 仅前端&amp;hellip;)&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;核心功能是什么？&lt;/strong&gt; (例：实时通信、AI 集成、大数据处理、复杂的动画)。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;这些核心功能，对技术栈有什么特殊要求？&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;第二层团队能力与学习曲线&#34;&gt;第二层：团队能力与学习曲线&lt;a class=&#34;anchor&#34; href=&#34;#%e7%ac%ac%e4%ba%8c%e5%b1%82%e5%9b%a2%e9%98%9f%e8%83%bd%e5%8a%9b%e4%b8%8e%e5%ad%a6%e4%b9%a0%e6%9b%b2%e7%ba%bf&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;这是决定项目成败的关键因素。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;现有技能栈&lt;/strong&gt;：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;团队对哪些技术最熟悉？这能带来最快的开发速度和最高的稳定性。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;如果选择新技术，团队的接受度如何？&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;人才招聘市场&lt;/strong&gt;：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;这项技术的人才在你的地区好招吗？成本如何？&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;学习资源与曲线&lt;/strong&gt;：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;新手学习这项技术需要多久才能达到生产力水平？是否有完善的文档、教程和培训资源？&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;img src=&#34;./tech_selection_images/decision_tree_flow.jpg&#34; alt=&#34;文生图：一个清晰的流程图，从一个标有“开始”的根节点出发。根节点向下分支到“业务目标”、“核心约束”。再向下分支到“问题领域”、“团队能力”、“生态社区”、“技术成熟度”。每个节点都有具体的提问，并引向不同的技术选项。最终汇聚到一个“技术方案”的决策点。风格：简洁、清晰的信息图表。&#34; /&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;第三层生态与社区支持&#34;&gt;第三层：生态与社区支持&lt;a class=&#34;anchor&#34; href=&#34;#%e7%ac%ac%e4%b8%89%e5%b1%82%e7%94%9f%e6%80%81%e4%b8%8e%e7%a4%be%e5%8c%ba%e6%94%af%e6%8c%81&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;一项技术，其价值不仅在于自身，更在于其背后的生态。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;工具链&lt;/strong&gt;：是否有成熟、好用的构建工具、调试工具、IDE 支持？&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;库与组件&lt;/strong&gt;：是否有丰富的第三方库来解决通用问题（如 UI 组件库、状态管理、身份认证）？&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;社区活跃度&lt;/strong&gt;：在 Stack Overflow、GitHub、论坛上，遇到问题能快速得到帮助吗？Bug 修复和新功能迭代的速度如何？&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;第四层技术成熟度与风险&#34;&gt;第四层：技术成熟度与风险&lt;a class=&#34;anchor&#34; href=&#34;#%e7%ac%ac%e5%9b%9b%e5%b1%82%e6%8a%80%e6%9c%af%e6%88%90%e7%86%9f%e5%ba%a6%e4%b8%8e%e9%a3%8e%e9%99%a9&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;平衡创新与稳定。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;成熟度&lt;/strong&gt;：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;是实验性技术（v0.x），还是已经被广泛采用的成熟方案（v1.0+）？&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;是否有大厂背书，或活跃的开源基金会支持？&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;技术趋势&lt;/strong&gt;：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;这项技术是短期热点，还是具有长期发展潜力？&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;它的发展路线图是否清晰？&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;厂商锁定（Vendor Lock-in）&lt;/strong&gt;：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;过度依赖某个厂商的专有服务，未来迁移成本高吗？&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;第五层非功能性需求质量属性&#34;&gt;第五层：非功能性需求（质量属性）&lt;a class=&#34;anchor&#34; href=&#34;#%e7%ac%ac%e4%ba%94%e5%b1%82%e9%9d%9e%e5%8a%9f%e8%83%bd%e6%80%a7%e9%9c%80%e6%b1%82%e8%b4%a8%e9%87%8f%e5%b1%9e%e6%80%a7&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;这些往往被忽视，但却至关重要。&lt;/p&gt;</description>
    </item>
    <item>
      <title>3.技术决策的维度</title>
      <link>/%E6%9E%B6%E6%9E%84/%E6%9E%B6%E6%9E%84%E4%B9%8B%E6%BA%90/%E6%9E%B6%E6%9E%84%E4%B8%8E%E9%80%89%E5%9E%8B/030-%E6%8A%80%E6%9C%AF%E5%86%B3%E7%AD%96%E7%9A%84%E7%BB%B4%E5%BA%A6/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/%E6%9E%B6%E6%9E%84/%E6%9E%B6%E6%9E%84%E4%B9%8B%E6%BA%90/%E6%9E%B6%E6%9E%84%E4%B8%8E%E9%80%89%E5%9E%8B/030-%E6%8A%80%E6%9C%AF%E5%86%B3%E7%AD%96%E7%9A%84%E7%BB%B4%E5%BA%A6/</guid>
      <description>&lt;blockquote class=&#39;book-hint &#39;&gt;&#xA;&lt;p&gt;「横看成岭侧成峰，远近高低各不同。」&lt;/p&gt;&#xA;&lt;p&gt;—— 苏轼&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;我们如何看待一个软件系统，决定了我们能构建出什么样的系统。&lt;/p&gt;&#xA;&lt;p&gt;一个初级程序员，看到的是代码；一个高级程序员，看到的是组件和模块；一个技术主管，看到的是团队和流程。而一个真正的架构师，需要拥有「升维思考」的能力，能从不同的维度，审视同一个系统，看到它在不同剖面下的完整形态。&lt;/p&gt;&#xA;&lt;h2 id=&#34;第一维度代码--点的世界&#34;&gt;第一维度：代码 —— 「点」的世界&lt;a class=&#34;anchor&#34; href=&#34;#%e7%ac%ac%e4%b8%80%e7%bb%b4%e5%ba%a6%e4%bb%a3%e7%a0%81--%e7%82%b9%e7%9a%84%e4%b8%96%e7%95%8c&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;这是最基础，也是最纯粹的维度。在这个维度里，世界由「点」构成：变量、函数、类、算法。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;关注点&lt;/strong&gt;：功能的正确性、算法的效率、代码的健壮性。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;典型思考&lt;/strong&gt;：「这个函数的时间复杂度是多少？」、「这个类的边界情况是否都处理了？」、「这段代码的命名是否清晰？」&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;停留在一维思考的开发者，可能会写出局部最优、但整体混乱的代码。他们是优秀的「工匠」，能将一块块「零件」打磨得非常精致，但对如何将这些零件组装成一台「机器」，缺乏概念。&lt;/p&gt;&#xA;&lt;h2 id=&#34;第二维度架构--线与面的世界&#34;&gt;第二维度：架构 —— 「线」与「面」的世界&lt;a class=&#34;anchor&#34; href=&#34;#%e7%ac%ac%e4%ba%8c%e7%bb%b4%e5%ba%a6%e6%9e%b6%e6%9e%84--%e7%ba%bf%e4%b8%8e%e9%9d%a2%e7%9a%84%e4%b8%96%e7%95%8c&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;当我们开始思考「点」与「点」之间的关系时，我们就进入了二维。在这个维度里，我们看到了「线」（依赖关系）和「面」（组件、模块、服务）。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;关注点&lt;/strong&gt;：高内聚、低耦合、模块的边界、接口的设计、设计模式的应用。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;典型思考&lt;/strong&gt;：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;「这个服务应该由谁来提供？它的职责边界是什么？」&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;「组件 A 和组件 B 之间，应该用什么模式来通信，才能避免强耦合？」&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;「这组功能，是否应该被封装成一个独立的库？」&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;停留在二维思考的开发者，是合格的「工程师」。他们能绘制出清晰、优雅的「系统蓝图」，但有时，这些蓝图可能只是「空中楼阁」，脱离了现实的土壤。&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;./dimensions_images/thinking_dimensions.jpg&#34; alt=&#34;文生图：一个大脑的侧面图，从左到右发出三个层次的“思维波”。第一层是混乱的代码点。第二层是结构化的架构图（线和面）。第三层是协作的人群（体）。象征着思维的升维过程。风格：信息图表、概念插画。&#34; /&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;第三维度团队--体的世界&#34;&gt;第三维度：团队 —— 「体」的世界&lt;a class=&#34;anchor&#34; href=&#34;#%e7%ac%ac%e4%b8%89%e7%bb%b4%e5%ba%a6%e5%9b%a2%e9%98%9f--%e4%bd%93%e7%9a%84%e4%b8%96%e7%95%8c&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;当我们引入「人」这个最大的变量时，系统就从纸上的「平面」，变成了现实中的「立体」。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;关注点&lt;/strong&gt;：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;康威定律&lt;/strong&gt;：你的软件架构，最终会趋向于你团队的沟通结构。一个由「前端组」、「后端组」、「数据库组」构成的团队，几乎不可能设计出一个真正「垂直切分」的微服务架构。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;开发者体验（DX）&lt;/strong&gt;：这套架构，我们的团队用得「爽」吗？构建速度快吗？测试容易写吗？新成员能快速上手吗？&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;认知负荷&lt;/strong&gt;：一个开发者，需要理解多少背景知识，才能安全地修改一处代码？架构的复杂性，是否已经超出了团队成员的「心智带宽」？&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;停留在三维思考的开发者，是优秀的「技术主管」或「团队领导」。他们懂得，技术方案的优劣，离不开「人」这个根本。一个能让团队舒服、高效地产出的架构，才是好架构。&lt;/p&gt;&#xA;&lt;h2 id=&#34;第四维度时间与商业--时空的博弈&#34;&gt;第四维度：时间与商业 —— 「时空」的博弈&lt;a class=&#34;anchor&#34; href=&#34;#%e7%ac%ac%e5%9b%9b%e7%bb%b4%e5%ba%a6%e6%97%b6%e9%97%b4%e4%b8%8e%e5%95%86%e4%b8%9a--%e6%97%b6%e7%a9%ba%e7%9a%84%e5%8d%9a%e5%bc%88&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;这，是架构师的终极维度。在这个维度里，系统不再是一个静止的「物体」，而是一个在「时间」长河中不断演化、并服务于「商业」目标的生命体。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;关注点&lt;/strong&gt;：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;上市时间（Time to Market）&lt;/strong&gt;：我们能否选择一个「不完美但够用」的架构，来快速验证市场，抢占先机？（比如，先用一个结构良好的「单体」，而不是一开始就上全套「微服务」）。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;可演化性与可维护性&lt;/strong&gt;：今天的技术选择，在两年、五年后，会成为我们的「资产」还是「负债」？它是否容易被替换、被扩展？&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;总拥有成本（TCO）&lt;/strong&gt;：一个技术的成本，绝不仅仅是开发成本。它的学习成本、部署成本、监控成本、以及未来因它而产生的「重构成本」，都必须被纳入考量。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;商业价值&lt;/strong&gt;：我们为这个架构付出的所有努力，最终能否转化为可衡量的「商业价值」？&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;当你的思考，能够穿梭于这四个维度之间，你就拥有了架构师的「上帝视角」。&lt;/p&gt;&#xA;&lt;h3 id=&#34;结语&#34;&gt;结语&lt;a class=&#34;anchor&#34; href=&#34;#%e7%bb%93%e8%af%ad&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;一个技术决策，从来都不是一个单纯的技术问题。&lt;/p&gt;&#xA;&lt;p&gt;当你下次面对一个选择时，请尝试「升维」你的思考：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;从**一维（代码）**出发，思考它的实现是否优雅、高效。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;上升到&lt;strong&gt;二维（架构）&lt;/strong&gt;，思考它如何与系统的其他部分和谐共处。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;再上升到&lt;strong&gt;三维（团队）&lt;/strong&gt;，思考你的团队是否能轻松地驾驭它。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;最终，在**四维（时间与商业）**的坐标系中，审视这个决策是否能为业务的长期发展，提供最有利的「势能」。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;这种多维度的、立体的、动态的思考能力，正是区分一名「工程师」与一名「架构师」的根本所在。&lt;/p&gt;&#xA;&lt;p&gt;正如《大学》所言：「知止而后有定，定而后能静，静而后能安，安而后能虑，虑而后能得。」（只有知道目标所在，才能志向坚定；志向坚定才能心境平静；心境平静才能安稳从容；安稳从容才能思虑周详；思虑周详才能有所收获。）架构决策亦是如此，只有多维度审视，方能洞察全局，达成所愿。&lt;/p&gt;</description>
    </item>
    <item>
      <title>4.技术决策的大败局</title>
      <link>/%E6%9E%B6%E6%9E%84/%E6%9E%B6%E6%9E%84%E4%B9%8B%E6%BA%90/%E6%9E%B6%E6%9E%84%E4%B8%8E%E9%80%89%E5%9E%8B/040-%E6%8A%80%E6%9C%AF%E5%86%B3%E7%AD%96%E7%9A%84%E5%A4%A7%E8%B4%A5%E5%B1%80/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/%E6%9E%B6%E6%9E%84/%E6%9E%B6%E6%9E%84%E4%B9%8B%E6%BA%90/%E6%9E%B6%E6%9E%84%E4%B8%8E%E9%80%89%E5%9E%8B/040-%E6%8A%80%E6%9C%AF%E5%86%B3%E7%AD%96%E7%9A%84%E5%A4%A7%E8%B4%A5%E5%B1%80/</guid>
      <description>&lt;p&gt;学习设计模式，是构建优秀软件的「正道」。然而，在实际项目中，我们往往更容易踏入那些看似捷径，实则通往深渊的「歪门邪道」 —— &lt;strong&gt;反模式&lt;/strong&gt;。&lt;/p&gt;&#xA;&lt;p&gt;理论上的反模式概念，有时显得抽象。今天，雪狼将带你走进几个真实的「犯罪现场」，看看这些反模式是如何在项目中悄然滋生，最终酿成大祸的。这些「血淋淋的教训」，希望能帮你炼就一双「火眼金睛」，在它们萌芽之时便将其扼杀。&lt;/p&gt;&#xA;&lt;h2 id=&#34;案件一遗留系统的黑洞--上帝对象之殇&#34;&gt;案件一：【遗留系统的黑洞】 —— 「上帝对象」之殇&lt;a class=&#34;anchor&#34; href=&#34;#%e6%a1%88%e4%bb%b6%e4%b8%80%e9%81%97%e7%95%99%e7%b3%bb%e7%bb%9f%e7%9a%84%e9%bb%91%e6%b4%9e--%e4%b8%8a%e5%b8%9d%e5%af%b9%e8%b1%a1%e4%b9%8b%e6%ae%87&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;案情重现&lt;/strong&gt;：某公司有一个运行了十年的内部 CRM 系统。最初，它只有一个 &lt;code&gt;CrmService&lt;/code&gt;。随着业务发展，所有的新功能、新业务逻辑，无论是用户管理、订单处理、数据报表、还是第三方集成，都被塞进了这个服务。它从最初的几百行，膨胀到了一万五千行，拥有数百个方法。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;犯罪证据&lt;/strong&gt;：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;code&gt;CrmService.createUserAndProcessOrderAndGenerateReportAndSendEmailToMarketingAndLogToSplunk(...)&lt;/code&gt; 这样一个拥有十几个参数的「巨无霸」方法随处可见。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;新入职的同事，需要六个月才能勉强理解这个服务的一小部分。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;一个修改邮件通知模板的小需求，意外导致了用户创建失败。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;受害者&lt;/strong&gt;：开发效率、系统稳定性、团队士气。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;警示&lt;/strong&gt;：当一个模块或服务变得无所不能时，它就成了吞噬所有业务逻辑的黑洞。它看似方便，实则让代码变得无法理解、无法测试、无法维护。&lt;strong&gt;单一职责原则&lt;/strong&gt;是打破这种魔咒的唯一解药。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;案件二创业公司的陷阱--过早优化之惑&#34;&gt;案件二：【创业公司的陷阱】 —— 「过早优化」之惑&lt;a class=&#34;anchor&#34; href=&#34;#%e6%a1%88%e4%bb%b6%e4%ba%8c%e5%88%9b%e4%b8%9a%e5%85%ac%e5%8f%b8%e7%9a%84%e9%99%b7%e9%98%b1--%e8%bf%87%e6%97%a9%e4%bc%98%e5%8c%96%e4%b9%8b%e6%83%91&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;案情重现&lt;/strong&gt;：一家创业公司开发一款社交应用。技术负责人是一位对性能有极致追求的工程师。他在项目初期便坚持使用 WebAssembly 和自定义二进制协议来处理图片上传，认为这能带来毫秒级的性能提升。团队为此花费了三个月时间，学习 Rust、WebAssembly，并构建了复杂的集成方案。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;犯罪证据&lt;/strong&gt;：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;三个月后，项目 MVP 延期发布，错失市场窗口。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;产品上线后，真正的性能瓶颈出人意料地出现在数据库查询上，而图片上传量在初期根本不足以构成瓶颈。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;定制的 WASM 服务由于复杂性高，JS 开发者难以理解和调试。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;受害者&lt;/strong&gt;：上市时间、研发资源、团队士气、商业机会。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;警示&lt;/strong&gt;：&lt;strong&gt;过早优化是万恶之源。&lt;/strong&gt; 优化，应该永远建立在&lt;strong&gt;数据&lt;/strong&gt;之上。先验证业务价值，再通过&lt;strong&gt;测量&lt;/strong&gt;定位真正的性能瓶颈，最后才进行有针对性的优化。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;案件三快字诀的代价--大泥球之乱&#34;&gt;案件三：【「快」字诀的代价】 —— 「大泥球」之乱&lt;a class=&#34;anchor&#34; href=&#34;#%e6%a1%88%e4%bb%b6%e4%b8%89%e5%bf%ab%e5%ad%97%e8%af%80%e7%9a%84%e4%bb%a3%e4%bb%b7--%e5%a4%a7%e6%b3%a5%e7%90%83%e4%b9%8b%e4%b9%b1&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;案情重现&lt;/strong&gt;：一家初创公司，面对激烈竞争，所有开发都追求一个「快」字。没有时间重构，没有时间设计，每个新功能都是在现有代码上打补丁。「先这么搞，以后再改」成了口头禅。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;犯罪证据&lt;/strong&gt;：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;前端组件直接修改全局状态，状态管理一片混乱。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;核心业务逻辑散落在几十个文件中，彼此之间随意调用。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;数据库 schema 随意变更，导致数据不一致。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;部署流程手动化，每次发布都是一场心跳加速的冒险。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;受害者&lt;/strong&gt;：系统可伸缩性、稳定性、开发效率、开发者心智。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;警示&lt;/strong&gt;：技术债务会在你最不经意的时候爆发。「&lt;strong&gt;快」的代价，往往是「死得更快&lt;/strong&gt;」 。从项目早期就建立清晰的边界和规范，并坚持定期偿还技术债务，是维持项目健康的关键。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;img src=&#34;./anti_patterns_images/big_ball_of_mud.jpg&#34; alt=&#34;文生图：一个巨大的、由代码碎片、意大利面条般的连接线、旧轮胎等垃圾构成的“泥球”，正在缓慢但不可阻挡地滚动，吞噬着它前面的一切。一个绝望的程序员正在试图用一根细小的牙签（临时补丁）去阻挡它。风格：讽刺漫画、灾难片。&#34; /&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;案件四我更强的幻觉--内置平台效应之痛&#34;&gt;案件四：【「我更强」的幻觉】 —— 「内置平台效应」之痛&lt;a class=&#34;anchor&#34; href=&#34;#%e6%a1%88%e4%bb%b6%e5%9b%9b%e6%88%91%e6%9b%b4%e5%bc%ba%e7%9a%84%e5%b9%bb%e8%a7%89--%e5%86%85%e7%bd%ae%e5%b9%b3%e5%8f%b0%e6%95%88%e5%ba%94%e4%b9%8b%e7%97%9b&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;案情重现&lt;/strong&gt;：某大型企业前端团队，认为 Angular 的表单模块过于复杂，或者无法满足其「特殊需求」。于是，他们决定在 Angular 之上，构建一套自己的「内部表单框架」。他们花费大量人力物力，设计了一套比 Angular 表单更「抽象」、更「通用」的 DSL（领域特定语言）。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;犯罪证据&lt;/strong&gt;：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;新入职的开发者，不仅要学习 Angular，还要学习这套内部框架。学习曲线陡峭。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;内部框架 BUG 频出，且修复速度缓慢，因为维护者只有少数几个人。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
