The Rails community is full of conflicting advice. Do you use Minitest or RSpec? Do your plain Ruby objects go in app/models
, app/classes
, or lib/
?
If more experienced devs constantly argue about these things, what hope do you have of deciding which advice to follow?
What’s the secret?
Here’s the secret: just pick one side, and follow it.
It seems like a cop-out. But these are arguments over small differences in philosophy. The stronger the argument, the less important the choice actually is. Especially in small apps, like the ones you’ll start with.
Experienced devs got that experience somehow. They learned, they wrote code, they shipped apps. Whichever choice they made didn’t sabotage their progress. So following that choice won’t sabotage yours.
I’m a big fan of Minitest, and don’t use RSpec when I can avoid it. I’ve written a ton about why I prefer Minitest over RSpec. But if you decide that RSpec is the framework you should be using, you’re not going to end up with an unusable app. If you end up switching to Minitest later, you won’t be starting all over again. Most of the testing skills you learned will carry right over. So just pick one. Flip a coin if you have to. Because either choice is better than none.
It’s easier to change than you think
The right choice for you depends on your personality, your environment, your team, and your past experiences. These things will change over the course of your career. So if you spent days learning all the background and the nuances of each side and finally made the perfect choice, that choice may eventually change.
You’ll make some bad choices. Some of the best developers I know wrote entire gems based on philosophies that they now argue against. In code, few opinions last forever.
So don’t agonize over picking the right side in a Rails argument that you don’t totally understand yet. If it doesn’t work out, you can always change your mind.