Systems | Development | Analytics | API | Testing

Ruby

Improve Code in Your Ruby Application with RubyCritic

RubyCritic provides visual reports highlighting code smells, code structure, ease of testing, and test coverage in your Ruby application. It's in active development, with new code analysis tools often being introduced as new features. It's well worth keeping track of RubyCritic's releases. This article will touch on some of RubyCritic's benefits, its dependencies, and how to read its code reports. Let's get going!

Debugging in Ruby with AppSignal

An application monitoring tool (APM) is not just useful for seeing how your application performs through graphs and visuals. We can go deeper and use an APM to understand how your application behaves in a certain environment. As developers, we should aim to be less reactive to errors and more predictive, avoiding crashes for end-users. One way to accomplish this is by using monitoring tools to debug our application when an error occurs.

JIT Compilers for Ruby and Rails: An Overview

A program is compiled at runtime using a different method from pre-execution compilation. This process is known as just-in-time compilation or dynamic translation. In this post, we'll look at why JIT compilation can be a good choice for your Ruby on Rails app, before looking at some of the options available (YJIT, MJIT, and TenderJIT) and how to install them. But first: how does JIT compilation work?

A Deep Dive into Memory Leaks in Ruby

In the first part of this two-part series on memory leaks, we looked at how Ruby manages memory and how Garbage Collection (GC) works. You might be able to afford powerful machines with more memory, and your app might restart often enough that your users don't notice, but memory usage matters. Allocation and Garbage Collection aren't free. If you have a leak, you spend more and more time on Garbage Collection instead of doing what you built your app to do.

How to Track Down Memory Leaks in Ruby

A memory leak is an unintentional, uncontrolled, and unending increase in memory usage. No matter how small, eventually, a leak will cause your process to run out of memory and crash. Even if you periodically restart your app to avoid this crash (no judgment, I've done that!), you still suffer the performance implications of a memory leak.

State Machines in Ruby: An Introduction

A state machine can hold all possible states of something and the allowed transitions between these states. For example, the state machine for a door would have only two states (open and closed) and only two transitions (opening and closing). On the other hand, complex state machines can have several different states with hundreds of transitions between them.