该YAGNI "原则"规定,你不应该集中在你需要像以前提供的功能:"你是不是要去需要它"反正.
我通常倾向于使用常识高于任何规则,无论如何,但有时我认为如果你有充分的理由过度设计或将来证明某些东西,即使你可能永远不会使用它.
我现在掌握的实际案例或多或少是这样的:
我有一个应用程序必须运行在一个简单的专有通信协议(OSI级别4).该协议具有一组理想的特性(例如遵循NORM规范),它们为应用程序提供稳健性,但并不是严格要求的(UDP多播可以执行可接受的).
还有一个事实是,该应用程序可能(但不一定)将来会被其他客户使用,而这些客户将无法访问专有解决方案,因此需要另一种解决方案.我知道另一个客户端应用程序的概率很高.
那么,你的想法是什么?我应该只设计专有协议并将重构,接口提取等留给我真正需要的时候,还是应该设计现在考虑(不是到目前为止)的未来?
注意:为了清楚起见,我有兴趣听到对一般问题(何时违反YAGNI)的所有意见,但我真的想对我目前的困境提出一些建议或想法:)
yagni ×1