发布于 2026-01-06 0 阅读
0

你的代码不够美观 / 你的代码已经是死代码

你的代码不够美观 / 你的代码已经是死代码

“哇,看看这段代码,真漂亮!而且清晰易读!”清晰易读固然是值得追求的目标,但对“完美”代码的追求是否反而阻碍了你真正向用户发布实际功能呢?

当我的完美主义弊大于利时,我会提醒自己:

“昨天已逝,明天未至,今天才是我们唯一拥有的一天,也是我们生命中最重要的一天。”

——一行禅师

一行禅师所指的是佛教的无常概念。

“无常……?!”这听起来似乎有点不可思议,居然会拿软件来讨论这个概念。“我们难道不是在努力打造经得起时间考验的产品吗?”理性的人可能会这样说。但无常指的是万物终将衰败或改变。或许你会觉得这个概念令人恐惧或悲伤,但这并非我们的初衷——CubicleBuddha.com 的宗旨激励你不断进步!所以,与其为昨日成果的陈旧而感到沮丧,不如记住,你的用户希望代码能够不断更新,以支持新的使用场景。那么,为什么不专注于满足用户当下的需求呢?毕竟,“今天是我们生命中最重要的一天。”

我如何判断恐惧是否阻碍了我帮助用户?

不难发现,有些公司害怕改变。以下是一些“害怕改变”的明显特征,以及这种恐惧如何导致发展进程缓慢:

  • 因为“还没完全准备好”而延期的产品。(谁在乎还没完全做好?把已经做好的部分发布出去!)
  • 由于对需求/验收标准理解不足,导致代码从未发布。(如果你想为用户创造价值,你应该先问问他们想要什么。更好的做法是,尽量减少用户和开发者之间信息传递的环节。“耳语式沟通”是致命的。)
  • 一款产品从未发布,因为在它有机会“上线”面向客户之前,合同就被取消了。(这意味着该公司显然等待了太久才将产品交付给用户。)
  • 代码总是因为不断涌现的新需求而不断重写——也就是所谓的“频繁迭代”或“频繁变更”。这再次清楚地表明,产品交付给用户的时间太长了。软件并非像我以前认为的那样一成不变——它非常容易修改。如果你认为修改不容易,那么你在编写代码时就没有考虑到可重构性。不妨这样想:一个承包商如果要建造门廊或屋顶,不可能快速完工后就去问房主是否满意。如果工程存在缺陷,他们会被解雇甚至起诉。但房屋承包商可以绘制图纸,并就这些低保真原型获得反馈。在软件开发中,我们几乎没有任何借口,因为我们不仅可以让用户审查我们的方案,还可以发布产品后几乎立即进行修改。

这些情景有什么共同之处?它们都说明了拥抱变革会给所有相关人员带来更愉悦的体验。

那么,我该如何接受改变呢?

或许你已经意识到自己想要做出改变,但却不知从何下手。你会问:“在软件行业,拥抱变革意味着什么?”

  • 这意味着编写的代码能够让你快速进行更改而不会破坏原有代码。这意味着要使用优秀的设计模式(我们将在以后的文章中讨论)。
  • 这意味着要编写单元测试,这样你就可以进行新的更新,而不用担心是否破坏了之前的更新。
  • 这意味着要清除“死代码”,以免过去的事情拖慢你的速度,或者以意想不到的错误形式悄悄出现。
  • 这意味着要少担心代码的“美观”,多担心它是否能让用户满意,以及是否能让未来的开发者乐于在此基础上进行开发。
  • 这意味着要关爱和理解你的同事,即使你的产品负责人来找你说我们误解了客户,因此不得不删除你辛辛苦苦写出来的代码。这就是改变。只要你倾听客户的需求,你就是在朝着更好的方向改变。

我们将在以后的文章中探讨其中的许多解决方案,但让我们先来详细分析一下最后一点:

我是如何通过删除代码学会快乐的

在我多年的专业编程生涯中,我的老板们“完善”了他们对客户需求或市场需求的理解后,我不得不无数次地删除函数、功能甚至整个产品。所以,当这种情况发生时,我会因为丢失代码而感到难过吗?当然会!毕竟我只是个普通人。但最终你会意识到,我们每次编写代码,都是在尽力猜测客户的需求。随着我们对这种猜测的不断完善,我们必须移除或删除产品中那些基于错误假设的部分。有时,这意味着删除你最喜欢的部分——是的,即使是那些你认为写得非常优美的部分。但如果它对客户没有帮助,它真的优美吗?

你可能读过我对“优美代码”的评论,然后心想:“他是要我忽略代码的可读性吗?” 当然不是!我只是建议你不要因为思考代码结构而耽误或束缚自己的工作。

我发现摆脱这些想法的最好方法是问自己:“你觉得未来的开发者看到你的代码会觉得它很漂亮吗?”答案几乎肯定是“不会”。软件可维护性的一个不为人知的秘密是,我们大多数人只喜欢代码外观。

忽略“漂亮”和完美

我们努力的目标是为可接受的失败留出一丝空间,这样完美主义就不会控制你。当你从平衡的角度思考时,你可以这样想:“我希望代码易于维护,但我也希望用户今天就能获得价值!” 我们不妨记住孔子的名言:

“宁要有瑕疵的钻石,也不要完美无瑕的鹅卵石。”

所以我希望你能接受并从缺点中学习,这样你的作品才能日渐臻于完美。如果你的同伴也有缺点,也请接受——他们也在努力成长和学习。如果你不放下过去,就无法为今天真正重要的事情腾出空间。

—————————————

如果您觉得这篇文章对您有帮助,您可能也会对CubicleBuddha.com网站上的其他文章感兴趣,例如:


再次感谢您的阅读。我很想知道是什么帮助您接受工作中的变化?

文章来源:https://dev.to/cubiclebuddha/your-code-is-not-pretty-your-code-is-already-dead-code-glp