Blogs
Automated code reviews via mutation testing - semantic code coverage.
An automated code review tool, with a side effect of producing semantic code coverage metrics.Think of mutant as an expert developer that simplifies your code while making sure that all tests pass.That developer never has a bad day and is always r...
Rails 7 will have three great answers to JavaScript in 2021
Rails has been unapologetically full stack since the beginning. We've continuously sought to include ever-more default answers to all the major infrastructure questions posed by modern web development. From talking to a database, to sending and re...
Decomposing a massive Rails monolith with Kirsten Westeinde, software development manager, Shopify
What's it like to deconstruct one of the largest Rails codebases (3 million lines of code, 500,000 lifetime commits, 40,000 files) on the planet? And why didn't Shopify follow the standard path to microservices, but instead choose to modularize t...
Previewing Rails 7 upcoming changes | Stefan's Blog
Rails 7 is taking up speed. There is no beta out yet, but a lot of features, especially in ActiveRecord are available, if one want’s to wade through the Changelogs.To view all the changes per framework gem, just access the main branch’s CHANGELOG....
Using Hotwire with Rails for a SPA like experience
In a previous post I wrote about using Rails and Stimulus to create a SPA like experience with page navigation. Since then, the Basecamp team has released Hotwire to allow for similar functionality but with little-to-no Javascript.We’ll take a loo...
Modern web apps without JavaScript bundling or transpiling
I didn't much care for vanilla JavaScript prior to ES6. Through all of the 2000s, I chased different approaches to avoid writing too much of it. First there was RJS (Ruby-to-JavaScript). Then there was CoffeeScript. Both transpiling approaches tha...
Five Turbo Lessons I Learned the Hard Way | Viget
We've been using Turbo on our latest client project (a Ruby on Rails web application), and after a slight learning curve, we've been super impressed by how much dynamic behavior it's allowed us to add while writing very little code. We have hit so...