“ 重塑方向盘 ”反模式非常常见-无需使用现成的解决方案,而是从头开始编写自己的解决方案。代码库不必要地增长,执行相同功能但接口略有不同的接口略有不同,浪费了时间来编写(和调试!)易于使用的功能。我们都知道这一点。
但是在频谱的另一端。如果不编写包含两行代码的函数,而是导入框架/ API /库,实例化,配置,将上下文转换为框架可接受的数据类型,然后调用一个可以完全满足您需要的函数,千兆字节抽象层下的两行业务逻辑。然后,您需要使该库保持最新状态,管理构建依赖关系,使许可证保持同步,并且其实例化代码比“重新发明轮子”要长十倍且更复杂。
原因可能多种多样:无论成本高低,管理层都严格反对“重新发明轮子”,尽管与要求之间存在边际重叠,有人推销他们所钟爱的技术,该系统以前主要模块的作用减弱,或者期望扩展和扩大使用这个框架,它永远不会到来,或者只是误解了“重量”,而一些导入/包含/加载指令却是“幕后”。
这种反模式有通用名称吗?
(无论是对还是错,或者它是一个真正的反模式或基于观点的任何内容,我都不会尝试进行讨论,这是一个简单明了的客观术语。)
编辑:建议的“重复项”讨论过度设计自己的代码以使其“为一切准备就绪”,完全与外部系统分开。在某些情况下,它可能源于此,但是通常它源于“厌恶重塑轮子”-不惜一切代价进行代码重用;如果存在解决问题的“现成”解决方案,则无论解决方案的适用性和成本如何,我们都将使用它。原则上赞成创建新的依赖项而不是代码复制,而与创建和维护新代码的成本相比,完全不考虑这些依赖项的集成和维护成本。