<?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>https://blog-architectview.pages.dev/tags/%E4%BB%A3%E7%A0%81%E8%B4%A8%E9%87%8F/</link>
    <description>Recent content in 代码质量 on 架构视界</description>
    <generator>Hugo</generator>
    <language>zh-cn</language>
    <copyright>© 2026 架构视界 Architect View</copyright>
    <lastBuildDate>Fri, 15 May 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://blog-architectview.pages.dev/tags/%E4%BB%A3%E7%A0%81%E8%B4%A8%E9%87%8F/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>技术债务的拓扑学：如何量化和治理系统熵增</title>
      <link>https://blog-architectview.pages.dev/posts/tech-debt-topology-and-governance/</link>
      <pubDate>Fri, 15 May 2026 00:00:00 +0000</pubDate>
      <guid>https://blog-architectview.pages.dev/posts/tech-debt-topology-and-governance/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;Ward Cunningham 在 1992 年提出「技术债务」这个概念时，他可能没想到三十年后这个词会成为每一个技术团队的噩梦。技术债务不像金融债务那样可以精确计算，它更像是一种熵——在看不见的地方悄悄增长，直到系统变得不可维护。&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;技术债务不是一种债&#34;&gt;技术债务不是一种债&lt;/h2&gt;&#xA;&lt;p&gt;很多人把技术债务理解为「欠下的代码质量」，觉得只要花时间重构就能还清。这个理解有一个根本性的错误：&lt;strong&gt;技术债务不是贷款，而是复利。&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;金融债务：&#xA;  借 100 万，年利率 5%，每年还 5 万利息&#xA;  债务总额是确定的，还款计划是可预测的&#xA;&#xA;技术债务：&#xA;  写了一段快速但丑陋的代码来赶 deadline&#xA;  第一个月：需要在这段代码旁边加个功能 → 多花了 2 小时&#xA;  第三个月：新人入职看不懂这段代码 → 多花了 2 天&#xA;  第六个月：这段代码的 Bug 引发了线上事故 → 多花了 1 周&#xA;  第十二个月：这段代码和其他模块的耦合太深，无法重构 → 被迫放弃&#xA;&#xA;技术债务的利息不是线性的，而是指数增长的&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;这就是为什么技术债务不能「等有空了再还」——因为等你有空的时候，利息可能已经超过了本金。&lt;/p&gt;&#xA;&lt;h2 id=&#34;技术债务的四种类型&#34;&gt;技术债务的四种类型&lt;/h2&gt;&#xA;&lt;p&gt;Martin Fowler 在《Refactoring》中把技术债务分为四个象限：&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;                    鲁莽的                审慎的&#xA;              ┌──────────────────┬──────────────────┐&#xA;    故意的     │ &amp;#34;我们不需要测试&amp;#34;  │ &amp;#34;我们知道这里耦合   │&#xA;              │ &amp;#34;先 copy paste  │  太紧，但现在重构   │&#xA;              │  以后再重构&amp;#34;     │  会延误发布，下个月  │&#xA;              │                 │  专门处理&amp;#34;         │&#xA;              ├──────────────────┼──────────────────┤&#xA;    无意的     │ &amp;#34;什么是分层？&amp;#34;    │ &amp;#34;我们现在才理解    │&#xA;              │ &amp;#34;把 SQL 写在     │  应该怎么做&amp;#34;       │&#xA;              │  Controller 里&amp;#34;  │（随着认知深入发现   │&#xA;              │                 │  之前的设计有问题）  │&#xA;              └──────────────────┴──────────────────┘&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;鲁莽且故意的债务&lt;/strong&gt;最危险——团队明知故犯，而且不考虑后果。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
