阿里为什么开源这么多项目_为什么我从不怪开源项目

阿里为什么开源这么多项目

我时不时地读到有人对给定的开源框架的错误思考。 当我开始对Struts Web框架进行编程时,每个人都喜欢它。 但是后来,越来越少的人开始指责它,然后是仇恨。

然后人们开始指责Hibernate和最近的MongoDB。 我什至读过“ 我不应该使用MongoDB ”。 好吧,我在Struts,Hibernate和MongoDB上交付了项目,但这些都不是阻碍。

如果有人责怪通常是我们,而不是我们使用的框架。 如果下载并浏览给定开源项目的源代码,则代码质量会令人惊喜。 大多数时候,我发现它至少和我自己做的一样好。 许多开源项目是许多热情的开发人员无休止的工作时间的结果,那么我们为什么要怪他们的框架呢?

就像地球上的任何其他事物一样,所有这些都有优点和缺点,这是我们决定适合我们项目的功能,还是我们到底是否应该考虑采用该框架。

在学习Struts时,Spring或jQuery并不是那么困难,但是在数据库,Hibernate和现在的NoSQL方面则变得更加棘手。 Hibernate和MongoDB都是高质量的产品,我知道许多成功的项目都建立在它们之上,但这并不意味着它们易于使用。 如果您想雇用他们,请准备学习很多,没有其他方法。

当我开始使用Hibernate时,我对它的复杂性不知所措。 我很快了解到,如果不深入研究就无法掌握一切,这就是为什么我决定使用Hibernate完整阅读所有900页Java Persistence的原因 。 那仅仅是开始,即使现在我仍然不时地继续阅读并检查其源代码。

然后,MongoDB在我们的许多项目中都非常适合缝合,并且由于我对NoSQL一无所知,因此我不得不花很多时间才能提高工作效率。 幸运的是,MongoDB提供免费的在线课程 ,我不得不再次回到学习上。 如果您曾经使用过MongoDB聚合框架,那么您就会明白我的意思。

这只是我犯下的一个简单错误的简短示例,我花了两个小时的常规睡眠时间来解决它。

$match: { 
	"timestamp" : { 
		$gte: fromTimestamp
	},
	"timestamp" : { 
		$lt: toTimestamp
	}
}

当我写这篇文章时,我想我可以通过匹配fromTimestamp和toTimestamp之间的所有文档来获得逻辑上的合取。 但这不是我得到的,因为此匹配选择的文档少于toTimestamp,因为第一个分配被第二个覆盖。

我想要的必须表示为:

$match: { 
	"timestamp" : { 
		$gte: fromTimestamp,
                $lt: toTimestamp
	}
}

但是那不是MongoDB的错,我的聚合性能很差。 我错过了指示它做一些与我最初意图完全不同的事情。

这就是为什么我不怪我使用的框架。 我们主要是因为使用不当而不是使用工具而遭受苦难。

参考: 为什么我从不Vlad Mihalcea的Blog博客上指责我们的JCG合作伙伴 Vlad Mihalcea的开源项目

翻译自: https://www.javacodegeeks.com/2013/11/why-i-never-blame-open-source-projects.html

阿里为什么开源这么多项目

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值