何为屎山代码?

在编程界,有一种代码被称为"屎山代码"。这并非指某种编程语言或方法,而是对那些庞大而复杂的项目的一种形象称呼。屎山代码,也被称为"祖传代码",是历史遗留问题,是前人留给我们的"宝藏"。它不是一个人堆成的,而是无数前辈一层一层堆起来的。

一些新手程序员,自信满满,决定重构或修改这些屎山代码。但听我一句劝:屎山代码虽然看着难受,但一旦动手,山就可能塌了,将自己深埋于屎山之中,臭不可闻。

想象一下,你有一个满是锁的箱子,手上拿着一串没有备注的钥匙。你一个一个锁地试,最终打开了箱子,却没想到里边还有一个满是锁的箱子。当你费尽心思解决了所有锁,钥匙却断了。你完全不明白为什么要这样设计,它看起来那么愚蠢。

当你有了个新想法,忙碌之后,可能会发现自己写得更蠢。不要试图去理解它,改变它。罗马不是一天建成的,屎山也不是一天堆出来的。千万不要凭一己之力,愚公移山。谁愿意搭上子子孙孙去搞屎山?

那有什么办法解决呢?我告诉你,无解。只要这坨屎山还能支撑业务运作,就不会有领导关心。你一个人和领导沟通,领导又不懂技术,对牛弹琴。你一个人硬着头皮改,你必然疲惫不堪,身心俱疲,最后也必成拉屎之人,千万不要明知山有屎,偏向屎山行。

编程圈流传着这样一个有趣的小故事:一个哥们上班忽然怒气冲冲,大声质问:"这 TMD 谁写的代码,这么明显的 bug 都能写出来,还不写注释?简直就是一坨屎"。当时项目组的码农们都心惊胆战,不敢说话,瑟瑟发抖,生怕把自己揪出来示众。项目经理听到后发话:"哥们查一下 git 记录。"查出来后通报。哥们说:"在查了。"过了几分钟后,哥们说:"不可能吧!"大家都凑过来看,发现这段代码是哥们一年前自己提交的。为了避免尴尬,大家都没有再提这件事情。

言归正传,造成屎山代码的原因有很多:

  1. 离职工作交接不重视
  2. 无项目文档
  3. 代码注释不全
  4. 团队机制不完备
  5. 领导客户的原因

如果项目需要添加新功能怎么办?那只能在屎山上挖个坑,然后自己再拉坨屎上去。

屎山是神圣的,为了让你的下一任有点事情做,你可以这样:

  1. 定义看不懂的命名
  2. 定义过长的类或者函数
  3. 写大段重复代码,不进行封装
  4. 写一堆没有注释的代码
  5. 定义 100 个参数的函数
  6. 让业务过度耦合

不幸的是,大多数项目中,上述屎山代码是随处可见的。毕竟几百个人写的屎山代码,就像几百个人堆积木,堆得歪歪扭扭、摇摇晃晃、乱七八糟。你千万不能抽掉一块,指不定抽了一块就塌了。只能看见哪里不牢靠,不停地往哪边堆积木,只要不倒就好,这也是大部分程序员的工作。

其他行业里的祖传是指有传统的根基,良好的信誉品质好,可以说是前人栽树后人乘凉。但代码如果挂上祖传二字,就意味着无数修不完的 bug。

面对屎山代码,我们或许无法完全避免,但我们可以尽力减少它的产生。通过良好的编程习惯,清晰的代码结构,充分的注释和文档,我们可以为后来者留下一个更加稳固的代码基础...,好了我编不下去了,因为我也是挖坑拉屎的人~~~

原文地址https://mp.weixin.qq.com/s/uIhRYcZ0IqNGpNeMuJk1rQ
往期文章合集https://stormsha.blog.csdn.net/article/details/139203741

相关推荐
Code_流苏几秒前
Python星球日记 - 第20天:数据分析入门
python·数据分析·数据可视化·数据清洗·pandas库
毕小宝13 分钟前
Python 使用 copy_from 完成批量插入postgre数据库脚本分享
python
Hesse17 分钟前
希尔排序:Python语言实现
python·算法
love530love23 分钟前
PyCharm Community社区版链接WSL虚拟环境
ide·python·pycharm
船长@Quant24 分钟前
VectorBT量化入门系列:第一章 VectorBT基础与环境搭建
python·量化策略·sklearn·ta-lib·量化回测·vectorbt
FreeLikeTheWind.33 分钟前
Qt 开发时可以在函数内引用的头文件
开发语言·c++·qt
学会870上岸华师34 分钟前
c语言学习16——内存函数
c语言·开发语言·学习
XYN611 小时前
【嵌入式面试】
笔记·python·单片机·嵌入式硬件·学习
PyAIGCMaster1 小时前
react从零开始的基础课
开发语言·javascript·ecmascript
插件开发1 小时前
JavaScript-异步和同步函数使用场景及区别-正确构建程序的核心要点
开发语言·javascript·ecmascript