在软件工程领域中,抽象是非常重要的概念。但这并不意味着抽象是完美的,也不意味着使用它们不会出现问题。实际上,抽象经常会导致致命的问题,其中一些可能会追溯到良好的设计决策,并且可以在项目中被正确使用,另一些则是深深植根于我们的习惯与思维模式中。这篇文章接下来将阐述三个例子,其中在过度的抽象上所犯下的犯错误点将成为焦点。

第一个问题是过度抽象。过多的抽象可能会导致重复劳动和不必要的代码,导致代码库中充斥着没有意义的抽象层。这种情况类似于砌砖,只有在您确切知道要构建的内容时,才能正确地使用抽象层。否则,您将有一些无意义的砖块,这种行为可能会导致代码基础设施的肿瘤式增长。

第二个问题是过早的抽象。软件设计最好通过重构而非规划演进。抽象所要解决的问题应该是尽可能接近实际需要,而非基于“未来”需求进行预测。当我们过早地引入抽象概念时,我们会花费大量精力来构建未来可能不需要的代码,并带来一些不必要的麻烦和开销。

第三个问题是“一劳永逸”的抽象解决方案。虽然该解决方案可以帮助我们创造更简洁和可读的代码库,但是某些情况下,它们可能会导致更大的问题。在某些情况下,解决方案并不能涵盖所有场景,从而使得维护困难,而选用较为细致的解决方案则会导致代码库的复杂度直线上升。

在软件设计中,只有通过不断实践和经验积累才能构建更好的抽象。在可能的情况下,请试图避免过度和过早的抽象,以便您在建立可扩展的、可维护的并能够应对未来需求的软件时拥有更多的成功。

详情参考

了解更多有趣的事情:https://blog.ds3783.com/