Skip to content

Instantly share code, notes, and snippets.

@daphsta
Created May 28, 2015 03:47
Show Gist options
  • Save daphsta/af6bc83044979dd8796a to your computer and use it in GitHub Desktop.
Save daphsta/af6bc83044979dd8796a to your computer and use it in GitHub Desktop.
Things you should know to qualify as a mid-level Ruby on Rails dev
Things you should know to qualify as a mid-level Ruby on Rails dev
Ruby
Metaprogramming
- Dynamic methods, writing DSL, instance_eval(), singleton methods, singleton class
- understanding mixins
Create Ruby Gem
Design Patterns (when to use): Template Method, Strategy, Observer,Composite,Iterator, Commands, Adapter, Proxy, Decorator, Singleton, Factory, Builder
SOLID principles (Single Responsibility Principle, Open/Closed Principle, Leskov Substitution Principle, Interface Segregation Principle, Dependency Inversion Principle)
applying refactoring techniques by using the above principles
Resources: Refactoring by Martin Fowler, Clean Code by Uncle Bob, YOW conference- Kevlin Henney, Sandi Metz- POODR
Rails
Understanding of Rails stack
- engines, filters, plugins, gems, rack, middleware(metal)
Ability to write generators
Rails patterns
- Value Objects,Service Objects,Form Objects, Query Objects, View Objects, Policy Objects, Decorators
Tests
feature tests
when to mock/stub
api tests
building API Rails app (understand APIs)
Single Table Inheritance (STI)
basic data modelling
Other necessary skills to survive
Simple bash scripts
ability to use other Ruby frameworks
Create rake tasks run with cron
basic *nix knowledge
Setup continuous integration, continuous deployment, infrastructure management
- eg: Capistrano,Chef,Jenkins, TravisCI
- undersand containers - eg: Docker, Rocket, CloudFoundry
understand REST
read jsonapi.org
understanding of memory management
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment