网络流行语黑话与术语

屎山代码

shi shan dai ma网络流行语也写作 祖传屎山代码、祖传代码、屎山

屎山代码指长期多人接力维护、结构混乱、逻辑和命名杂乱、文档缺失,能跑但很难读懂和改动的代码库,多用于程序员自嘲或吐槽项目历史包袱。

什么意思

2 个义项
  1. 屎山代码指问题长期累积、结构混乱、难以理解和维护的代码库。它的典型特征包括历史遗留设计过时、多人接力导致风格不一、为赶需求不断叠加临时补丁、缺乏文档和注释,改动一处可能牵动多处。
  2. 屎山代码常用来自嘲或吐槽接手别人留下的项目。说自己在“屎山”上开发,通常表达的是不敢大改、只能小心绕开的处境,而不是说这段代码一定跑不起来;很多屎山代码在真实业务里已经稳定运行很久。

什么语气

带调侃和自嘲意味的口语词,贬义但强度可控,多用于同行之间吐槽,不适合写进正式的代码评审或对外交付文档。

用在哪儿

  • 程序员接手公司里长期维护的老项目,看到命名混乱、层层嵌套和到处是特例判断时吐槽一句“这是个屎山”。
  • 技术群或社交平台上,开发者自嘲自己每天的工作是在老代码里加补丁、绕坑,把项目称为祖传屎山代码。
  • 团队讨论重构或技术债时,用这个词概括某模块为何没人敢动、改动风险为什么高。

这样说

接手这个项目第一天我就绝望了,全是屎山代码。
需求又要加在这个模块上,我真是要在屎山上雕花了。
这段代码能跑,但没人敢动,典型的祖传屎山。
别问为什么这么写,问就是历史原因,屎山代码的日常。
重构?老板不同意,我们只能继续在屎山上盖楼。

例句是编辑写的,只为演示怎么用,不是从谁的帖子里扒下来的。

从哪来的

现有公开资料来源均未给出可核验的首创者、首发帖子或最早使用年份,因此无法确认这个词具体起源于哪个平台或哪一年。可以确认的是,它在中文开发者语境中与“祖传代码”长期并用,用来形容随时间累积、难以维护的代码。

注意什么

资料之间存在分歧:维基百科把“屎山代码”“祖传代码”“面条式代码”并列为同称,但另有开发者观点认为,旧代码不一定就是屎山,只要规范命名、及时重构、控制总量,长期维护的项目也能保持可读。因此不宜把“老代码”“多人写过的代码”一律叫作屎山,严格意义上的“面条式代码”侧重混乱的控制流程与跳转,而口语里的“屎山”范围更宽,还包括重复代码、命名混乱、注释缺失、耦合严重、赶工留下的一次性补丁等。另外,这个词带贬义,当面评价同事写的代码,或写在正式技术文档、交付说明里容易引起不快,也不适合用来描述自己维护但运行稳定的系统对外交差。

还不确定

  • 该词的最早出处、首创者和首次流行时间均无权威来源可核验,资料中查不到相关内容。
  • “屎山代码”与“祖传代码”“面条式代码”是否完全同义存在分歧:维基页面将三者并列,另有开发者观点认为祖传旧代码不一定是屎山。
  • 维基页面强调混乱的控制流程和无组织分支,其他开发者文章则把历史包袱、重复代码、命名、注释、耦合和赶工都算作成因,该词的口语范围可能明显更宽。
  • 现有来源以开发者平台、行业专栏和百科协作页面为主,未见辞书、学术论文或平台官方语言报告对该词作专门考证。

常见疑问

屎山代码是什么意思?

指问题长期累积、结构混乱、难以理解和维护的代码库,常带有调侃和自嘲意味,重点在改动风险高,而不是说代码跑不起来。

屎山代码和祖传代码是一回事吗?

常被混用,但严格说不完全等同。祖传代码强调由前人留下、年头久;屎山强调混乱难维护,老代码如果规范清晰、持续重构,也可以不是屎山。

屎山代码和面条式代码有什么区别?

面条式代码侧重控制流程扭曲混乱,比如滥用跳转、分支无组织;屎山代码的口语范围更宽,还包括重复代码、命名混乱、依赖耦合和赶工补丁。

屎山代码是怎么形成的?

常见成因包括初始设计过时、多人接力导致风格不一、为快速上线不断加临时补丁、文档和注释缺失、重构长期排不上优先级,问题逐年叠加。

屎山代码能用吗?

很多能正常运行,甚至在真实业务中长期稳定,只是理解成本高、改动风险大,任何小修改都可能引发连锁问题。

屎山代码怎么用才不尴尬?

适合自嘲或同行私下吐槽,不适合当面评价同事代码,也不建议写进正式评审、交付文档等场合。

接手屎山代码该怎么办?

通常做法是先摸清核心流程、补测试护住关键路径、小步改动并逐步重构,避免一次性大重写带来失控风险。

屎山代码是骂人的话吗?

贬义但强度可控,多用于吐槽系统或项目,如果直接用来评价某位同事写的代码,就可能被当成不友好的指责。

相关的词

参考来源

4 条
最后核实:2026年9月11日 · 依据 4 条公开证据