Dev-Links #13 Ruby/Rails

5th March 2021 – 439 words

Couple of Ruby/Rails related resources I found in the last couple of weeks in still partially-lockdowned Germany:

Rails design patterns - the big picture

This article is a high-level overview of design patterns that are commonly used in Ruby on Rails applications.

My Ruby on Rails stack for side projects in 2021 - Magnus Skog

This is the tools and gems that I recommend using in most Ruby on Rails projects in 2021.

One developer’s Gem stack. Most agree, some choices which I am not follow 100%, and a couple of new Gems that I need to check out.

Shopify/limiter

Simple Ruby rate limiting mechanism.

brainopia/sidekiq-limit_fetch

Sidekiq strategy to support an advanced queue control – limiting, pausing, blocking, querying - brainopia/sidekiq-limit_fetch

Save the sidekiq premium/enterprise plan if all you need is some kind of throttling of a queue (e.g. unallowed concurrent web API)

kawamataryo/schema2type

generate TypeScript type definitions from Rails schema.rb - kawamataryo/schema2type

If you wanna jump the Typescript bandwagon in a Rails app, this might ease the translation, if you are shipping your Models via REST.

charkost/prosopite

:mag: Rails N+1 queries auto-detection with zero false positives / false negatives - charkost/prosopite

Alternative to bullet

ankane/neighbor

Nearest neighbor search for Rails and Postgres.

Advanced Gem for using Postgres Cube extension to generate recommendations. Make sure to check out the example to understand anything.

pawurb/rails-pg-extras

Rails PostgreSQL database performance insights. Locks, index usage, buffer cache hit ratios, vacuum stats and more. - pawurb/rails-pg-extras

The Upgrow Guide

This project aims to make it easier for both new and existing Rails apps to adopt patterns that are proven to make code more sustainable long term, and codebases easier to maintain and extend. We will recommend a set of abstractions and practices that are simple, yet powerful in organizing code in Rails apps in a way that allows fast-growing apps to remain easy to change.

Shopify’s take on a advanced Rails architecture grown from Vanilla Rails