糟糕的代码如同Kudzu
摘要
这篇文章将糟糕的代码比作入侵性的Kudzu,强调了从代码库中主动移除功能以管理复杂性的必要性,尤其是针对AI生成的代码,并通过作者删除未使用的hashtag功能的经历进行说明。
暂无内容
查看缓存全文
缓存时间: 2026/09/13 23:41
# 坏代码如同葛藤
来源:https://vickiboykis.com/2026/09/01/bad-code-is-kudzu/
《葡萄藤的培育》,亨利·马丁《葡萄藤的培育》,亨利·马丁
葛藤是一种最初从东亚引入美国东部的植物,旨在防止水土流失。
但一旦引入,(https://www.nature.org/en-us/about-us/where-we-work/united-states/indiana/stories-in-indiana/kudzu-invasive-species/)葛藤便会疯长,可能覆盖人行道、房屋、地基甚至树木。
消灭葛藤的唯一方法是大力修剪,并采取集中策略,由所有居住在葛藤生长地附近的人共同实施。
你们知道我要说什么了。一个应用功能一旦添加到代码库中,就可能极其难以移除。
即使简单的功能也会变得非常顽固,因为你不仅要删除代码,更糟糕的是,人们会在你的代码之上编写新代码,不知不觉中,你就在一个没人想要的已实现功能中陷了两年。
删除代码很难,尤其因为它是一项吃力不讨好的任务,通常不会出现在晋升材料中,这就是为什么我们最终发布了数十万行闪烁表情符号、魔杖、AI功能,而删除代码却悄无声息。
但在这个新时代,我们必须更努力地删除代码,因为如果我们不持续移除复杂性,就会被生成的葛藤般垃圾淹没,它们会侵占代码库。
在这个轻易就能添加东西的时代,为自己制定一个移除已添加功能的计划,尤其是现在这比以往任何时候都更容易。
例如,五月时,我为我的博客添加了话题标签气泡功能。我是个千禧一代,社交话题标签是我的爱的语言。我以为我会一直使用它们,我以为我的网站访客也会一直使用它们来优雅地浏览我的睿智文章。我使用了一种巧妙的机器学习技术组合。(https://vickiboykis.com/2026/05/18/tagging-my-blog-posts-with-bertopic-and-llams/)
我将其搁置了几个月,看看用户在生产环境中是否真的使用了它,答案是响亮的没有。
在我的Plausible分析中,过去三个月的访问页面前30名里都没有它们。
可能有些人从中有所收获,但不值得维护,尤其是现在重新添加它们如此容易。(这是自5月1日以来的数据)
所以,是时候像当初轻松创建它那样,来修剪葛藤了。
``
该功能的提交历史现在如下:
- 77e2c5a — 更新日志条目
- 85000e2 — 将搜索栏移回首部
- 91b6fde — 移除标签侧边栏和标签气泡
``
💆♀️
相似文章
或许我们不该审查所有代码
文章认为,代码审查常被用来解决错误的问题,建议通过结对编程和团队设计会议等实践将反馈左移,尤其是在人工智能增加代码产出的情况下。
@kentcdodds: 我使用Fable和Grok 4.5(在两个独立的聊天中)查找并清理了代码库中所有搞笑又糟糕的AI生成代码。
作者讲述了自己使用Fable和Grok 4.5识别并移除代码库中糟糕的AI生成代码的经历。
即使AI代码能工作,我也会拒绝
作者解释了为何他们经常拒绝AI生成的代码,即使这些代码可以工作,原因包括无法解释方法、diff过大、过早抽象以及降低系统推理能力,并主张必须进行人工审查。
你还阅读代码吗?
本文探讨了两种AI增强编码方法——保持代码理解的加速者和更多委托AI的氛围编码者——并讨论了它们对软件维护和团队动态的长期影响。
@dzhng: https://x.com/dzhng/status/2090252351533973768
这篇文章讨论了因人工审查瓶颈而产生的AI生成代码‘垃圾’问题,并指出软件工程必须演进,以系统设计为重点,而不是代码的可读性。