We love concerns and have been using them for years in large codebases. Here we share some of the design principles we use.| 37signals Dev
Maximalist positions are a thing in our industry. Take a technique, outline its drawbacks, extrapolate you can’t use it under any circumstance, and ban it forever. We are lucky that Rails embraces exactly the opposite mindset as one of its pillars.| 37signals Dev
How to create a good domain model is the subject of many books, but here’s a lesson I learned at 37signals: don’t be aseptic, double down on boldness.| 37signals Dev
There is complex and there is difficult, they are not the same. Being able to run a marathon is very difficult. But what you have to do to prepare is simple. A small sheet of paper is enough to describe the steps. You will need tremendous effort and discipline - so it’s hard - but it is simple. Software development is different: it is ...| world.hey.com
This article was originally published in the 37signals dev blog. Sacrificing purity for convenience is one of the Rails pillars. This principle informs several Rails features that some recommend avoiding but that we happily use in our apps. In this post, I’ll discuss how we use three of those in Basecamp. I’ll show some examples involv...| world.hey.com
Good code is a fractal: you observe the same qualities repeated at different levels of abstraction.| 37signals Dev
Active Record restates the traditional question of how to separate persistence from domain logic: what if you don’t have to?| 37signals Dev
When discussing software design techniques, actual code should be a mandatory ingredient.| 37signals Dev
A common critique of Rails is that it encourages a poor separation of concerns. That when things get serious, you need an alternative that brings the missing pieces. We disagree.| 37signals Dev