Transcript Slide 1
Rails for the Ruby-Impaired
John Paul Ashenfelter
CTO/Transitionpoint
1
Why Build a Web App?
Solve a (customer’s) problem
2
What Makes an Web App “Better”?
Good
Fast
Cheap
3
The Holy Grail of Web Apps
Build an application that solves a
problem better, faster, and cheaper than
anyone else
4
Keys to Successful Web Apps
Follow standards
Use best practices
Reduce, reuse, recycle code
Focus on quality and consistency
Gracefully respond to change
5
Why Is Rails So Hot?
Integrates/encourages best practices
Inherently agile
Keeps the framework out of the way
Convention over configuration
Self-contained
Extracted from real-life applications
Open source
6
Why Should I Care?
Hits the ColdFusion sweet spot
•
•
•
•
easy to use
flexible
fast (development and run-time)
everything is built-in
Java developers are adopting… and
competing against you
Lots of real-world momentum
7
Learning from Ruby on Rails
Ruby and CFML are similar
•
•
Scripting-oriented
Dynamic (eg duck-typing)
Rails and CF Frameworks are similar
•
•
•
Built for web applications
MVC
ORM options
8
Rails Components
Active Record
Web 2.0/AJAX
migrations
•
Action Pack
•
•
•
•
Action Controller
Action View
Action Mailer
Active Support
Rake
•
Prototype
Script.alicio.us
RJS
Generators
Plugins
Servers
•
•
Webrick
mongrel
9
Code: Create a Rails app
Create application skeleton
•
You’ll be using the command line
Create the database
•
Not much config for dev/mysql
Start server
•
•
Server options
Development modes
Generate a scaffold
10
ActiveRecord
Built-in ORM
•
•
•
CRUD
validation
filters
transactions
callbacks (16!)
observers
migrations
11
Code: Making the db invisible
Conventions
•
•
Names for keys, tables
Magic columns
Migrations
ActiveRecord sugar
•
•
has_XXX associations
acts_as_XXX
12
Action Controller
routing
•
REST
flash
filters
•
before, after, around
caching
cookie, session management
13
Code: Interacting with the user
Default and custom routes
The “flash”
RESTful routes and methods
14
Action View
templates
•
•
•
rhtml (embedded Ruby)
rxml (Builder)
rjs (AJAX)
helpers
•
paging, form/field, formatting
layouts
partials and components
15
Code: Showing your work
Templates, layouts, and partials
Helpers
Forms
RJS (AJAX)
16
Code: Other Cool Stuff
fixtures and YAML
the vendor/ directory
plugins
capistrano
JRuby
17
Rails Lessons for Web Frameworks
1.
2.
3.
4.
Best practices are, well, best.
Make the database invisible
Easy things should be easy
Testing is crucial… and should be
easy
18
Call to Action for CF Frameworks
More convention, less configuration
Pick an ORM and integrate it
•
We need a migrations library
Pick a AJAX library and integrate it
Pick a testing library and integrate it
•
And automate the creation
Don’t be afraid of the command line
•
Leverage Ant for automation where possible
19
Getting Started Resources
Rails Environments
•
•
•
InstantRails (Windows)
Locomotive (Mac)
>gem install rails (any Ruby installation)
Rails Editors
•
•
•
Eclipse with RadRails (radrails.org)
Textmate (Mac)
Other plugins… (Netbeans, Dreamweaver, etc.)
Agile Web Development with Rails, 2nd ed.
20
Thanks/Questions
John Paul Ashenfelter
•
•
[email protected]
http://www.transitionpoint.com
Transitionpoint
•
•
•
Consulting
Training
Mentoring
21