我在每个Rails应用程序中添加的10个工具

178 阅读4分钟

我最终创建了很多Rails应用,每次开始的时候,我经常发现自己想要添加类似的功能或在其他项目中使用的宝石。

下面是我在每个Rails应用中最常添加的10个东西的简短列表。

1.Tailwind CSS

我使用Tailwind已经快2年了,我使用它的效率非常高,如果你还没有,请你试一下。

正如创始人亚当所说...

如果你能抑制住反胃的冲动,给它一个机会,我真的认为你会想知道你是如何用其他方式处理CSS的。

2.认证(Devise)

除非项目有非常具体的认证要求(如nine.shopping的auth code方法),否则我会使用devise来管理登录。

同时,devise_masquerade是一个非常好的插件,可以用于你的管理区,允许你以其他用户的身份登录。这对于调试账户的具体问题等很有帮助。

3.电子邮件系统

不管是用于 "忘记密码 "的电子邮件,几乎所有我正在构建的Rails应用程序都要发送电子邮件。我在这方面使用了两个方便的工具。

Letter opener web

这个工具可以确保你在开发或测试时不会尴尬地给真正的用户发送电子邮件,这可是救命稻草啊

邮戳

Postmark是我使用了多年的服务!它真的很容易集成到我们的系统中。使用他们的postmark-rails gem,它真的很容易集成到Rails中,而且产品很好,易于使用,非常可靠。

4.管理系统

我试图使我所有的产品尽可能的自我服务,需要尽可能少的时间来设置账户或保持产品的运行。

正因为如此,拥有一个深入的管理系统,让我能够检查事情,阻止恶意的用户或进行计费的改变是必要的。

我通常倾向于从Scratch创建这些系统,但在未来,我已经开始使用thoughtbot的adminategem。它坚持使用Rails的控制器和路由惯例,所以很容易定制和添加新的功能。

5.测试

我是TDD的忠实拥护者,拥有体面的测试覆盖率,这让我对持续部署代码充满信心,最终帮助我更快地开发应用程序。

对于测试,我使用RSpec,以及shoulda-matchers,以方便测试模型关系和验证。

我使用Rails内置的固定器,而不是像FactoryBot那样的东西。这完全是出于性能方面的考虑,固定器可以让你的测试运行得更快。最终,我发现一个快速的测试套件更有用,对我的工作流程的干扰更少。

6.Rubocop

坚持自动化测试方面的事情,我喜欢使用rubocop来确保我的代码是一致的,它还可以捕捉到我的代码的一些常见问题。

我通常遵循Shopify的Ruby styleguide,并做一些小的调整。

7.Sentry

接下来是用Sentry进行错误监控。当真正的用户接触到你的代码时,异常通常会在生产中发生,确保这些被跟踪,对看到发生了什么和修复它有很大的帮助!

8.Sidekiq

我通常不会马上设置这个,但在开发的第一或第二周,就会有后台工作的时间。我喜欢坚持使用我知道的东西,Sidekiq和它的网络界面很容易使用,而且很可靠。

9.Metamagic

这个是一个小的,但非常有用的宝石。它可以帮助设置页面标题、元关键词,甚至开放图谱标签,以便在社交网站上分享。如果你有很多可公开访问的页面,并想开始做一些SEO,这是必须的。

<% meta(title: "Sign in to your account") %>

10.机架攻击

我喜欢在所有项目中包括的最后一项工具是机架攻击。这是一个速率限制工具,对于在你的应用程序中节制危险的动作以防止机器人攻击或其他恶意用户来说是非常好的。

它对API非常有效,但我也喜欢把它用于登录/注册页面,就像这样。

Rack::Attack.throttle("authentication/ip", limit: 30, period: 1.hour) do |req|
  if req.post? &&
       %w[/users/sign_in /users/sign_up /users/password].include?(
         req.path
       )
    req.ip
  end
end