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.
Duration
4 days.
Objectives
- 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
- Multi-Model forms
- How to write your own plugins
Audience
- 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 subversion
- Familiar with how to make simple SQL queries (e.g. SELECT * FROM ... WHERE ...)
- Basic exposure to Javascript & Prototype & Ajax in Rails
- Familiar with using plugins
Instructors
Wolf learned the ropes on Rails while working on a project at Pivotal Labs in the winter of 2006/07 and has been an active member of the Rails community ever since. Prior to discovering Rails, Wolf was working in C++ on commercial server applications in Silicon Valley and, before that, on high-performance numerical simulations in solid state physics at Los Alamos National Lab and the University of Oregon. He holds a Ph.D. in physics and used to teach undergraduate physics classes as a graduate student.
Wolf speaks English, German, French and Spanish and currently lives in San Francisco.
More about Wolfram Arnold...Additional Notes
Participants will receive the course materials in a printed and bound handout. Continental breakfast, lunch, snacks and drinks will be served.
About the Instructor:
This class will be taught by Wolfram Arnold.
Wolfram Arnold, Ph.D. is a seasoned software professional with 17 years of experience and has been working on consumer web applications in Ruby-on-Rails since 2006. He has co-founded RubyFocus, a Ruby-on-Rails consulting and recruiting firm where he engages in his passion of championing viable, and long-term sustainable software development practices for his clients, including TDD/BDD (test-driven development), Rails best practices & conventions, performance profiling and scalability optimization.
Wolf learned the ropes on Rails while working on a project at Pivotal Labs in the winter of 2006/07 and has been an active member of the Rails community ever since. Prior to discovering Rails, Wolf was working in C++ on commercial server applications in Silicon Valley and, before that, on high-performance numerical simulations in solid state physics at Los Alamos National Lab and the University of Oregon. He holds a Ph.D. in physics and used to teach undergraduate physics classes as a graduate student.
Wolf speaks English, German, French and Spanish and currently lives in San Francisco.
Scaling 'most popular' lists: a plugin solution by Wolfram Arnold at LA Ruby
Rails 2.3: Associated models accepts_nested_attributes_for
This is the video of a presentation by Wolfram Arnold at the East Bay Ruby Meetup, July 21, 2009.
Rails 2.3: Associated models accepts_nested_attributes_for from Paul Lundahl on Vimeo.
Outline
Using git with Rails
- starting a new project
- commiting to a project
- comparing changes with previous revisions
- making and merging branches
Rspec and Cucumber
- rspec for model, controller, views, helpers, libs
- mocks, custom matchers
- writing cucumber tests
Advanced association features
- working with eager loading
- understanding association proxy objects
- using association call-backs
- adding association extensions
- inheritance
Named Scope
- composing queries with named scopes
Performance profiling
- using tools to profile
- interpreting the data
How to write REST-ful applications
- REST vs. RPC
- REST-ful routing and controllers in Rails
- Best practices
- page caching, action caching, fragment caching
- memcached and plugins
- using model caching
Security
- authentication & authorization
- understanding best practices
Multi-Model forms, new in Rails 2.3
- creating multi-model forms
- update, deletion and creation of nested objects
- dealing with validation errors
Writing plugins
- Ruby meta programming tricks to add methods to classes
- adding models
- using generators