A good way to onboard a new developer:
Open db/schema.rb
(and/or app/models
) and walk them through the important models.
Bonus points if you have an UML diagram of your schema. If you don’t then at least draw the most important tables and relationships.
Open the config/routes.rb
file and list the important entry point of the application.
Open the Gemfile
and walkthrough important gems. There are the standard ones (devise
, pg
, puma
, redis
), and some other more confidential but important for the project.
Have a look at the rake
tasks for everyday development.
For instance, we have a list of commands to run to dump a production DB to be able to easily mount it locally on the dev machine and debug an issue. This kind of information should be somewhere in the README.md
or doc/
folder.
Talk about the production infrastructure.
Is it Heroku? AWS? Something else? How secrets are handled? .env
? figaro? New fancy Rails 5+ credentials?
What are the hard dependencies of the Rails app I need to develop?
What are the external APIs/Services on which the rails app depend?
Stripe? S3? Cloudinary? The Gemfile
might help detect those
How assets are handled?
There is a new way since Rails 5: webpacker
. Is it used? Does it completely replace the asset pipeline? Are there both? Is the Rails app just an API with a full JS front-end (React/Ember/Angular/etc.)?
If you want to receive my latest essays and interesting finds subscribe to my list: