2011-11-04 38 views
1

当你开发一个新的Rails应用程序时,最好是建立你自己的解决方案还是使用第三方的开源包?什么是更好的:自己做还是使用可用包?

例如,我可以使用设计来实现我的应用程序的身份验证,但我也可以自己做,因为它并不真的那么复杂。我可以使用RMagick,但如果我需要做的只是调整一些图像的大小,我可以自己将它与ImageMagick集成。

使用可用的第三方包的好处是简单快速的开发。但是滚动我自己的解决方案的好处是对我的应用程序正在发生的事情有更全面的了解,而且我最终得到的解决方案最适合我的应用程序,而不必弯曲我的应用程序以使用该程序包。

此外,我担心,当使用一堆第三方软件包时,升级可能会变得困难。如果他们没有不同步更新,我可能会遇到版本不兼容和其他问题。

很显然,我提到的软件包很受欢迎并且被广泛使用。我担心版本兼容性没有根据吗?

谢谢。

回答

0

这是一个相当主观的问题,并推广到所有语言。

我认为你应该尽可能使用可用的软件包,理由是它应该已经进行了很多测试和bug修复,而且他们遇到的陷阱如果你制作了,就必须找到自己你自己。

那说你有一些非常重要的考虑因素:

  • 许可 - 与你的产品,服务或组织这个兼容?你需要付钱,你会处理copyleft材料吗?
  • 脉搏 - 除非你有足够的时间给它一个生机。
  • 社区 - 了解社区的活跃程度,是否有邮件列表,人们在此讨论堆栈交换?
  • 文档 - 应该有用户文档,以及相当易于访问的示例。
  • 测试 - 使用机器尝试下载并安装该软件,运行该软件包附带的任何测试以确定它是否按照说明正常工作。对于我来说,没有一个源库的测试对我来说不是一个难题。
  • 和它一起玩 - 做一些简单的例子 - 使用任何教程和例子,衡量它的使用难度。

一个好的系统应该提供一个抽象级别,让你远离血淋淋的细节,直到你想知道。我知道python的urllib工作的基本原则 - 但大多数情况下,我不是在寻找内部源,我只是使用它。

1

这个问题是非常主观的,但总的来说,我会去与广泛使用的宝石。我个人比较喜欢那些黑魔法比较少的游戏,因为就像你我想要了解发生了什么,没有什么比调试第三方代码库更烦人。例如,我传递Devise并使用AuthLogic,因为后者完成繁重的工作,但是可以让我根据自己的需要与我的应用程序集成。

0

他们不是没有根据,但他们有争论,并没有“正确”的答案。

重新发明车轮费时且容易出错;成千上万的眼睛比少数人好。在某些情况下,您的车轮可能比通用车轮更适合您的需求。

OTOH,您的车轮可能没有想到您以后需要的所有东西,而后期的重新设计可能与模制预先打包的解决方案一样有问题。

相关问题