【发布时间】:2009-02-16 08:56:07
【问题描述】:
YAGNI“原则”指出,您不应该在需要之前就专注于提供功能,因为无论如何“您不会需要它”。
无论如何,我通常倾向于使用常识而不是任何规则,但有时我觉得如果你有充分的理由,过度设计或未来证明某些东西是有用的,即使你可能永远不会使用它。
我现在手上的实际情况差不多是这样的:
我有一个应用程序必须通过一个简单的专有通信协议(OSI 4 级)运行。该协议具有一组理想的特性(例如遵循 NORM 规范),这些特性为应用程序提供了稳健性,但并非严格要求(UDP 多播可以执行)。
还有一个事实是,该应用程序将来可能(但不一定)被其他无法访问专有解决方案的客户使用,因此需要另一个解决方案。事实上,我知道该应用程序的另一个客户的可能性很高。
那么,你的想法是什么?我应该只为专有协议进行设计,而将重构、接口提取等留到我真正需要的时候,还是应该现在设计考虑(不是目前的)未来?
注意:为了清楚起见,我很想听听关于一般问题(何时违反 YAGNI)的各种意见,但我真的很想对我目前的问题提出一些建议或想法两难:)
【问题讨论】:
-
现在在programmers.stackexchange.com 上问这个问题更合适...
-
想象一下只使用 2 位数字的 COBOL 约会系统。那将是违反 YAGNI 的好地方:)
标签: yagni