Ruby on rails 如何为下一个项目选择合适的Ruby gem?

Ruby on rails 如何为下一个项目选择合适的Ruby gem?,ruby-on-rails,ruby,design-patterns,Ruby On Rails,Ruby,Design Patterns,假设您在过去的六个月里花在一个遗留系统项目上,即大型web平台,集成外来数据结构 现在你终于可以出发了,你可以开始一个全新的Ruby创业项目了 应用程序将从头开始构建,并由您决定要使用哪个gem 这个问题可以扩展到构建全新web应用程序的各个方面,但对于semplicity,只需假设您需要一个身份验证系统 现在,你最后一次在Rails中使用的是“authlogic”,与“authentication_-fu”相比非常酷,但是当你在“the cave”中使用时,你刚刚听说了几种其他的身份验证方法,

假设您在过去的六个月里花在一个遗留系统项目上,即大型web平台,集成外来数据结构

现在你终于可以出发了,你可以开始一个全新的Ruby创业项目了

应用程序将从头开始构建,并由您决定要使用哪个gem

这个问题可以扩展到构建全新web应用程序的各个方面,但对于semplicity,只需假设您需要一个身份验证系统

现在,你最后一次在Rails中使用的是“authlogic”,与“authentication_-fu”相比非常酷,但是当你在“the cave”中使用时,你刚刚听说了几种其他的身份验证方法,比如许可、设备、omniauth、典狱长、巫术、twitter身份验证、开放身份验证和其他

更糟糕的是,假设你可以“想象”Ruby社区并没有睡着,六个月后,她就提出了关于“身份验证模式”的新想法和范例,但你没有时间更新

你只想走出去,看看发生了什么,发现所有新的宝石出现,并决定什么更好地填补你的下一个项目

你是怎么做到的

提前谢谢 卢卡·G·索夫

UPDATE Sep 18 10:36
根据Andrew Grimm描述的指标比较同一类别中的宝石

UPDATE Sep 17 02:09 
一些人试图澄清为“下一个全新的Ruby项目”发现和选择正确的Ruby宝石的过程。我想通过列出我的理解中的主要步骤来总结我从大家那里学到的东西:

关于决定同一领域内宝石的过程:

  • 你自己试试吧——塞姆佩罗斯

  • 给他们每人一次试驾,确保github上有大量活动,最后看 提交-通过电子文档提交

  • 选择松散耦合的Gems和Monolitic框架,优先考虑敏捷、快速的实现和连续重构——Craig Stuntz

  • 获得宝石/领域领域的专家,以便能够在宝石之间做出决定-作者:james_schorr

  • 不要为您的生产客户项目选择“令人惊叹的东西和酷炫的新版本”,而是每天在mikhailov的小型和私人测试项目上进行测试

  • 关于发现和选择正确宝石的过程,jeremiahd的最后一篇文章对该过程进行了深入、清晰和非常有用的描述:

    • 搜索覆盖我的用例的最常见的安装库

    • 看看他们的文档,看看它看起来有多完整和可读

    • 查看他们社区中的活动:更新-邮件列表-维基- IRC-提交-情绪

    • 看看他们的代码:测试套件-干净的代码-文档-有用的注释-

    • 使用他们的代码

    • 社区和代码的质量

    • 把它当作一个学习过程,找一个更好的程序员,回报你的社区

      结束更新9月17日02:09


    请随意添加更多。。。分享你的观点。

    选择一个,然后跟着它跑。重要的不是你现在选择什么,而是六个月后要改变你的想法有多难。简言之,您的努力不应该是做出一个永久性的决定,这将在项目的整个生命周期内约束您,而应该是将对授权系统的依赖性隔离到一个(尽可能多的)小且易于交换的代码位。

    在我看来,您应该自己尝试其中一些

    这似乎已经成为一种事实上的选择,具有支持各种身份验证样式的机制。这可能是一个很好的开始,但你显然应该尝试让它做你想做的,如果它不起作用,试试你提到的其他宝石


    Rails没有预先构建的“默认”身份验证机制,因为身份验证往往特定于每个项目。试一试,看看哪一款最适合你的需求和编程风格。

    我基本上同意Craig Stuntz的观点,你应该选择一款,然后用它运行(如果可能的话,构建你的应用程序以便可以替换掉)

    不过,我建议,这样做意味着你要给他们每人试驾一次。也许你在你的主要项目中没有这样做,但实际上,在你真正使用这个东西之前,你永远不会知道它有多糟糕。无论今天社会对一块宝石投下了多少爱,你都可以肯定它存在着严重的问题


    对于相对较新的gem,您还需要确保github上有大量的活动,这样gem就不会很快停滞不前。如果我在过去几周内没有看到提交,那么使用一个尚未成熟的gem会让我感到非常不安。

    我花了很多时间研究认证gem,并登陆了designe。太棒了。以上所有提示都很好。

    我所做的(当这个问题在任何语言中出现时)是搜索覆盖我的用例的最常见的安装库。然后我看一下他们的文档,看看它看起来有多完整和可读

    接下来我看看他们社区中的活动——项目是否积极更新?是否有易于访问的邮件列表/wiki/IRC?他们有多活跃?一般的语调是什么

    接下来我看一下他们的代码。有测试套件吗?它们是帮助我理解库的测试套件吗?代码干净吗?记录在案?评论有用吗?它看起来像是一个荒谬的混乱,还是像人们在每一点上都投入了思想

    接下来,我以一种简化但类似于实际需要的方式使用他们的代码。是吗