Acceptance Testing

Why I Believe Rails is Still Relevant in 2019

Why You and Your Team Should Consider Ruby on Rails  

You might have read the infamous blog posts titled “Rails is Dead”, but I have seen development teams flounder over and over again when they try and reinvent the wheel using NodeJS on the backend. Rails is Scalable Despite the negative press, I’ll argue rails does scale. After developers at Twitter have spoken at length about their issues with Rails performance, it’s easy to get the wrong idea. Rails is not the fastest framework in the world… but I will argue that performance is the last thing you should worry about when you want to scale. more»

21 Commandments for Greenfield Development

A Developer's Guide to New Projects  

The “greenfield” project is known by developers as a productivity Nirvana. It is a beautiful place where there is no legacy, no bugs and endless possibilities. It is also littered with mines. I’ve recently seen a number of anti-patterns around the creation and early growth new projects, and thought I’d summarize the anti-patterns I’d seen in the past as a guide for developers to avoid these common pitfalls. 1. Get a Pipeline in Place Early Run your tests automatically. more»

Flexible Config

Ruby configuration management  

FlexibleConfig promotes good OOP design, and the separation of logic and configuration in your Ruby classes.

FlexibleConfig allows you to set class constants cleanly in ruby with the heirarchical structure and clean workflow of YML config, without sacrificing the flexibility and immediacy of ENVironment variables.


Active Hash

Rails models powered by static files  

ActiveHash is a simple base class that allows you to use a ruby hash as a readonly datasource for an ActiveRecord-like model.

ActiveHash assumes that every hash has an :id key, which is what you would probably store in a database. This allows you to seamlessly upgrade from ActiveHash objects to full ActiveRecord objects without having to change any code in your app, or any foreign keys in your database.

It also allows you to use #has_many and #belongs_to (via belongs_to_active_hash) in your AR objects.

ActiveHash can also be useful to create simple test classes that run without a database - ideal for testing plugins or gems that rely on simple AR behavior, but don’t want to deal with databases or migrations for the spec suite.