Architecture 你如何判断自己是否过度依赖图书馆?

Architecture 你如何判断自己是否过度依赖图书馆?,architecture,implementation,Architecture,Implementation,我曾经为一家铁路商店做过一些工作。似乎每隔一天,首席开发人员就会为项目添加一个新的gem 这让我想知道,在决定是否使用图书馆时,最佳做法是什么。我绝对认为,你不应该重新发明轮子,但如果仅仅为了解析提要而包含整个twitter库,那就有点不对劲了 关于使用库进行开发,有哪些最佳实践?避免“不在这里发明”综合症-如果有一个库,请使用它。 但是,如果图书馆很糟糕,也不要害怕停止使用它。如果你花了很多时间来解决图书馆的低能问题/限制,这些问题/限制可以在合理的时间内重写,比如说,1周到1个月,这取决于它

我曾经为一家铁路商店做过一些工作。似乎每隔一天,首席开发人员就会为项目添加一个新的gem

这让我想知道,在决定是否使用图书馆时,最佳做法是什么。我绝对认为,你不应该重新发明轮子,但如果仅仅为了解析提要而包含整个twitter库,那就有点不对劲了


关于使用库进行开发,有哪些最佳实践?

避免“不在这里发明”综合症-如果有一个库,请使用它。 但是,如果图书馆很糟糕,也不要害怕停止使用它。如果你花了很多时间来解决图书馆的低能问题/限制,这些问题/限制可以在合理的时间内重写,比如说,1周到1个月,这取决于它的功能与你的产品核心竞争力的接近程度,那么也许是时候用对你更有利的东西来取代图书馆了。
当然,以我一周一个月的估计值作为一个表面上的猜测,我见过这样的情况:在图书馆重写中投入2个人年是一个好主意。

很难以可测量的方式说明图书馆重用的好习惯。但我建议:

不要使用一个新的库来完成你所选择的技术堆栈的基本库可以合理实现的事情。 如果您正在使用新库提供的功能的一小部分,请不要使用它。 不要使用新的图书馆,如果它是新的。例外的是,这个库是您数月来一直迫切需要的东西,您的项目团队都在等待这个新库来保存它们。否则,您可能需要等待这个新库的版本2或3,然后再合并它。 你已经知道是什么让一个新的图书馆变得好了。但是,如果您还没有评估是什么导致了新库的糟糕,就不要使用它。 如果你没有考虑过培训和培训计划,就不要使用新的库来让开发团队跟上新技术的发展。 任何人都可以在我上面提出的建议中挖洞,但通常情况下,在项目代码中引入新的依赖项会带来很多风险。在我的书中,经常这样做是一种反模式。我建议你们的团队都应该听一听