… all.the.time我的意思是,当这些宝石有用和/或需要时,我会花很多时间。
几个月前,我发表了一篇文章/故事,介绍了我在《几乎每个SaaS项目》中使用的27种宝石 。 使用*如此多*的宝石引起了极大的赞誉和负面影响。
宝石 青年汽车
因此,盲目安装一整堆gem,而不必担心gem的状态,可维护性以及对gem的更多依赖关系。 当我写上一篇文章时,我可能有点夸张,因为似乎我会一直在每个项目中使用所有这些宝石。 在编写自己的代码和使用gem之间总是要权衡取舍。 无论是功能的可维护性还是纯粹的时间/价值支柱。
注意:本文是基于我即将出版的《 在Rails 6中构建SaaS应用程序》一书中的一章摘录。 这本书指导您从不起眼的开始到将应用程序部署到生产中。 该书现已开始预售,您现在就可以免费获得一章!
另外,我的新项目Pull Manager的beta已发布。 如果您忘记了拉取请求,或者有旧的请求徘徊,或者只是喜欢一个仪表板,可以将这些请求聚合到多个服务(Github,Gitlab和Bitbucket)上, 请检查一下 。
摩尔宝石
以下是您的武器库中的一些宝石,它们可能会对您有所帮助!
工头 -您可以使用此gem从Procfiles运行您的应用程序。 当您需要运行多个应用程序或服务器时,这会很方便。 假设您运行了Puma Web服务器,ActionCable,Webpack开发服务器等。使用forman,您可以只使用foreman .Procfile将它们全部启动。
VCR —此宝石可让您记录外部Web请求并在以后的测试运行中重播它们。 这有两个好处,首先,您将记录外部请求的已知工作版本,然后将来的测试运行将仅在本地加载YAML cassette VCR存储。
图表踢 —当您需要在视图中快速获取图表/图形时,从ActiveRecord中提取数据,ChartKick将使您走一条直线(大多数时间)。 如果您的图形将包含更多复杂的数据,或者您需要特殊的图表,则可能需要研究构建json响应并使用javascript库。
边际 —该gem将在日志中的SQL条目中添加注释,以使您知道查询可能来自哪个应用程序,控制器和操作。 这对于调试日志中似乎与操作没有直接关系的查询很有用。
BrakeMan-这是您可能不是通过Gemfile而是仅通过gem install的少数gems之一。 BrakeMan是一个安全分析工具,它将使您知道您的应用程序是否存在任何安全漏洞。
机架迷你轮廓仪 —这里的宝石将通过分析每个Web请求并通过一个小部件(仅在开发中显示)显示堆栈每个部分所花费的时间来帮助您使应用程序快速运行
RuboCop —另一个分析工具,但是这次是对红宝石文件进行整理,以检查它们是否符合Ruby样式指南。
并发Ruby —不一定是每个Gemfile中都包含的gem,但是当我需要编写自己的并发代码(例如数据导入器)时,我会遇到这个坏孩子,让我以自己喜欢的风格编写并发Ruby。另外,许多流行的宝石实际上使用并发红宝石作为主要依赖项。
OmniAuth —如果您需要处理第三方API,则很可能需要处理OAuth。 如果必须处理OAuth,则应使用OmniAuth及其开放源代码策略列表,以使OAuth像几个配置变量和一些响应处理一样简单。
偏执狂 - soft-delete功能有一些优点,但是对于我来说,这似乎一直是最好的。 软删除是SaaS应用程序的理想选择,在该应用程序中,关联和审计可能仍需要数据存在,而对象在其他情况下似乎已删除。
MetaTags-此gem是其中一种情况,对于简单的meta HTML标签,您可以跳过完整的gem,而仅content_for /从控制器中获得一个值。 但是,如果您需要更多的元标记,这可能是您的瑰宝。
Pundit-这个宝石是我对上一篇文章的回应。 Pundit采用简单的Ruby类方法在您的应用程序内进行授权。 它的功能比cancancan少得多,并且被喜欢更明确的代码库的开发人员大量使用。 这是Ruby / Rails开发人员可以开始基于隐式/显式首选项在工具上进行区分的地方。
ActiveAdmin —如果您习惯使用Django的管理界面,或者只是想使用管理区域来管理数据等,那么ActiveAdmin可能正是您所需要的。
这些是我对宝石的更多选择,您有什么想分享的(甚至是您自己的无耻插件)? 请在下面发表评论!
From: https://hackernoon.com/13-more-gems-i-use-all-the-time-a17ba64d4b83