When two or more objects use the same piece of mutable data, they all have the ability to break each other in ways that can be hard to debug. If the shared data is immutable, however, these objects can not affect each other, and are effectively decoupled.
Classes are at the heart of object-oriented programming (OOP). A class is a way of grouping related variables and functions into a single container. This container is called an "object".
Recently we helped a client overcome widespread errors in Sidekiq. What follows are the high level changes that were implemented, each presented as an observation and a solution.
More features equal to more bugs, more complexity — uncovered cases and unexpected behaviour. In software engineering, we call it a technical debt. One of the working solutions to reduce technical debt is Code Review.