你不需要它
GenAI LIVE! | 2025年6月4日
我喜欢回顾几个月前开发的功能,发现扩展它轻而易举。每当思考解决方案时,我总会问自己同一个问题:如果我要在一个月内更改它,难度会有多大?
我发现这是一种很有效的方法,可以尽早发现解决方案中的缺陷,但它也可能导致所谓的过度设计。简而言之,过度设计就是去解决一个除了你的大脑之外根本不存在的问题。
过度设计会导致糟糕的代码
我花了很长时间才意识到,尽管我的代码简洁、漂亮、易于扩展,但它仍然是糟糕的代码。它经常引入不必要的复杂性,难以维护,难以被其他开发人员理解,而且构建时间也更长。
这些本身都不是坏事。如果你只是为了完成任务而写代码,那还勉强过得去,但一个月后,你得到的只是一堆乱七八糟、乱七八糟的代码,以后没人愿意用。如果为了根本不需要的功能而付出了这么多代价,那就糟糕了。
你真的需要它吗?
我自己仍在与这场战斗中奋战,而帮助我的是极限编程 (XP) 的一条原则,叫做“你不会需要它”(简称 YAGNI)。XP 联合创始人 Ron Jeffries 曾写道:“永远在真正需要的时候实现它,而不是在你预见到需要的时候才实现。”
现在,每当我开始过度思考,发现自己在想“但如果发生了 X 怎么办”时,我就会停下来,写下我的假设。此外,我还会思考如果该功能没有实现会发生什么。增加的复杂性是我现在愿意付出的代价吗?
打这个电话并不容易
区分什么是需要的,什么是不需要的,这很重要,即使这很难做到。如果你在做决定时遇到困难,可以问问你的队友。重新审视问题总是有帮助的。如果出于某种原因无法做到这一点,那就选择一个更简单的解决方案。列出所有可能的假设,如果它们真的发生了,就选择更复杂的解决方案。
这种方法帮助我解决了决策瘫痪问题,我相信它也使我成为了一名更好的开发人员。
你呢?你有时也会过度设计吗?你有什么技巧和窍门来决定什么是需要的,什么是不需要的?
鏂囩珷鏉ユ簮锛�https://dev.to/bornfightcompany/you-ain-t-gonna-need-it-517j