Advanced Rails Training Course
Course Summary
The Advanced Rails training course provides you with skills and knowledge to leverage powerful advanced features of Rails and take your applications to the next level.
Upon completion, you will be able to improve the architecture of your applications and do more with less code. You will understand how to use tests to drive the design of your applications in an Agile fashion, and make it secure. And you will be able to tune your applications for high-traffic scalability.
[top] Duration
3 days.
[top] Objectives
In this course you will learn:
- How to use git with Rails
- Rspec and Cucumber
- Advanced association features, named scope
- How to write REST-ful applications
- Performance profiling
- Scalability & Caching
- Security
- Deployment Best Practices
[top] Prerequisites
Pre-requisites:
- Prior working experience with the Rails stack of 6 months or more
- Prior programming experience in Ruby
- Basic understanding of object relationships in Rails
- Prior knowledge of a revision control system such as git
- Familiar with how to make simple SQL queries (e.g. SELECT * FROM ... WHERE ...)
- Basic exposure to Ajax in Rails
- Familiar using gems and Bundler
[top] Instructors
Daniel Morrison has been teaching Ruby, Ruby on Rails courses at Marakana since 2007. Not to mention helping some of the most advanced software teams across the U.S. with consulting projects within the Ruby and Rails space. Daniel brings his industry expertise from these real world projects to the training class. With a background in Computer Science, there's a good chance Daniel will start rambling on about Merge Sorts or Big Oh calculations. If you leave him alone, however, his fascination with code, databases, and APIs will kick in and he'll start programming.
Daniel founded Collective Idea in 2005 to put a name to his growing, and already full-time freelance work. He can usually be found (coffee in hand) staring into a tiny 15" digital world. He writes about code and other uninteresting things on his blog.
More about Daniel Morrison...[top] Outline
RSpec and Cucumber
- rspec for model, controller, views, helpers, libs
- mocks, custom matchers
- writing cucumber tests
Writing maintainable code
- Skinny Controller, Fat Model
- Presenters
- Interactors
Advanced model & association features
- understanding association proxy objects
- working with eager loading
- scoping
- using association callbacks
- adding association extensions
- inheritance
Performance profiling
- using tools to profile
- interpreting the data
- instrumenting Rials
Scalability & Caching
- page caching, action caching, fragment caching
- memcached and plugins
- using model caching
Security
- authentication & authorization
- understanding best practices
Deployment and Operations
- cloud infrastructure vs application platforms
- managing an app in production
- deployment best practices
Working with APIs
- building a RESTful API
- consuming third-party APIs
Extending Rails
- Building a gem
- Gems vs Plugins vs Engines