我总是觉得令人沮丧的一件事是我不再维护我使用的库.即使事先查看更新历史记录和社区,我也遇到过后来检查的情况,发现我使用的版本是最后一个版本.
通常这会在几个月过去之后被忽视,或者已经发现了一些错误/限制.我在Python中进行编码时经常会遇到这种情况,因为我希望升级到新版本的解释器很容易在以前运行良好的库中引入问题.我的问题是:对这种情况的最佳回应是什么?
你成为旧图书馆的维护者吗?即使你只修复了你关心的错误,这仍然是很多工作.特别是如果库很大,很复杂,并且编写的代码不够精确(通常情况下).
你切换到另一个库(如果有的话)?这也是一项重大任务,有可能引入新的错误,特别是如果唯一的替代方案从不同的角度解决问题.即使您有远见为旧库的功能编写抽象层,也可能如此.
你自己滚吗?它可能最终会比旧库更少代码,因为您只编写您关心的部分.因此,将来更容易维护.但是现在你已经浪费了几天/几周/几个月来生产可能功能较少的东西,并且保证会引入大量的新bug.
我意识到答案取决于具体情况:库的大小,源是否可用,可维护性,代码使用的程度,代码依赖程度等等,我正在寻找答案跨越一系列案例.你对这个问题有什么经验?
好吧,你找到了一个减少外部依赖数量的论据......
我在几个我审计过的Java项目中遇到过这个问题; 似乎人们倾向于在Web上的某个地方找到一个Jar,因为它可以从中获得最微小的重用.结果是一堆混乱的依赖,最终破坏了代码库.我更喜欢谨慎使用外部组件.
询问你之前可以做什么可能是最有用的.在开始使用外部组件之前,请先评估外部组件的未来生命周期.对其开发者社区及其用户社区的规模进行一些研究.此外,更喜欢使用具有一个或两个"较小"替代品的组件,您也可以使用它.
如果你有一些想要使用的东西,但它只有一两个人在使用它并且不会超出他们自己的项目,那么你应该自己动手 - 或者与组件的维护者联手.