使用它们的第一个原因是降低了成本,因为相比于您自己编写相同的东西,您的项目更容易拥有开源库。
使用开源工件的第二个原因是降低了成本 :您可以从大量有能力且热情的开发人员那里获得免费支持,通常以大量的文档和论坛的形式。
第三个原因是降低了成本 :您可以从开源社区获得免费的更新和增强功能,并可以免费修复错误,尽管您无法选择要向项目中添加哪些增强功能。 某些项目(例如Tomcat)具有对所做的增强进行投票的机制,但最终取决于开发人员真正感兴趣的是什么。
使用流行的开源库和框架还有两个不言而喻的理由:首先,它们使您的CV看起来不错。 如果开源X流行并且将其放在简历中,那么您获得加薪或获得更好工作的机会将会增加。 其次,如果您从事一个开源项目,那么您将获得一些荣誉,这又使您的简历看起来不错,从而增加了增加薪资包大小的机会。
使用开源工件显然有一个缺点,那就是所有项目都有自然的生命周期。 发行了新版本的库,过时的库已过时,不再使用,原因是该技术过旧,开发人员失去了兴趣或继续前进,或者社区的其他成员发现了其他更好的方法并跳上了落后的行列。
因此,首先要为淘汰和弃用的开放源代码库感到困扰的问题首先是额外的费用 :没有支持,没有论坛,也没有错误修复。 你一个人。 您通常可以设法将源代码下载到退休的项目并自己提供支持,但这并不能保证,而且要花钱 。
使用不推荐使用的代码的第二个问题是额外的成本 :旧代码通常包含过时的体系结构和模式,其中包含已知的缺陷和问题-毕竟,这就是它们过时的原因。 使用过时的模式和体系结构会鼓励并且在某些情况下会迫使开发人员编写错误的代码,这并不是因为您的开发人员很糟糕,而是这种方式。例如,有些过时的JSP标记公然地将数据库调用与业务和表示逻辑,这是一种生成Crumpy,不可维护的意大利面条代码的众所周知的方式。
第三个问题是,不管您相信与否,这会产生额外的成本 :我最近遇到一个项目,其中的代码太旧了,以至于JAR文件发生冲突,其中包含相同API的不同版本的不同JAR被拖到类路径中。 代码的某些位使用API的一个版本,而其他位则使用另一版本。 蚀不知道该怎么做。
这里面还存在着隐性成本:没有合适的人愿意处理过时的意大利面条式编码–它会损害道德并降低生存意愿,同时会损害您找到下一份更高薪水工作的能力。 另外,当人们离开时,您将有寻找和培训其替代者的额外费用 。 永远不要忘记,最优秀的人才会最先离开,留下经验不足的开发人员,这又增加了您的成本 。
因此,面对过时的开源库和框架,您该怎么办?
1)什么也不做,继续使用过时的库,希望一切都会好起来的。
2)废弃整个项目,然后从头开始-大爆炸理论。
3)大力重构以删除过时的开源代码。 这也可以看作是更改应用程序体系结构,更新团队的编程实践以及改进代码和整个构建过程的一种方式。
从上面的内容中,我想您可以得出结论,我认为我更喜欢选项3。选项1的风险很大,但是选项2也是如此,从头开始浪费时间只是在重新发明轮子,而在这样做的时候那就是说,您没有产品,而且您一开始可能也会遇到很多麻烦。 选择3是进化而不是革命,这是最明智的选择。
说了这么多,我绝对不会停止使用开源代码…
参考: “ Captain's Debug”博客中的 JCG合作伙伴 Roger Hughes 的使用开源Java库和框架的好处和危险 。
相关文章 :
翻译自: https://www.javacodegeeks.com/2011/09/open-source-java-libraries-and.html