How To Onboard A New Developer
A good way to onboard a new developer:
-
Open
db/schema.rb
(and/orapp/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 theREADME.md
ordoc/
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.)?