过度设计的巨大危害

摘译自SIMÓN MUÑOZ的文章Overengineering can kill your product

与缺乏良好的开发实践相比,过度设计杀死了更多的产品。

什么是过度工程?

Paweł Głogowski 的定义:

解决您没有的问题的代码或设计。

过度设计的原因

  • 我们试图预测未来 并为未知事物做好准备。 现实情况是,十有八九,“以防万一”永远不会到来。但在此过程中,我们失去了宝贵的时间并增加了项目的复杂性,而这将贯穿其整个生命周期。

  • 过度设计的另一个原因通常是缺乏经验。一般来说,你的资历越高,你就越不容易过度设计,因为你已经经历了很多人为复杂性在你面前爆炸的情况。

  • 松散定义的需求也增加了这个问题。如果工程师没有明确定义的问题,他会倾向于过度设计以保护自己免受不确定性的影响。

过度设计的后果

它增加了我们的开发成本。另一方面,它也会增加您的维护成本。

过度工程示例

  • 基于微服务的架构,它们在 99% 的情况下都不是必需的.

  • 过早优化

如何防止过度设计?

防止过度设计的最好方法是将您的工程师变成真正的产品工程师。

防止过度设计的心理模型

YAGNI - You aren’t gonna need it

KISS - Keep it stupid simple

编者按:感觉有些面向对象的语言例如Java本身就有过度设计的隐喻


Total views.

© 2013 - 2022. All rights reserved.

Powered by Hydejack v6.6.1