Rails doesn�ft denounce documentation. Rails makes it trivially easy to cre-ateHTMLdocumentationforyour entire codebase.But theRailsdevelopment process isn�ft driven by documents. You won�ft .nd 500-page speci.cations at
1. http://agilemanifesto.org/.DaveThomaswasoneof the17 authors of thisdocument.
Report erratum
Prepared exclusively for Jordan A. Fowler
FINDING YOUR WAY AROUND
the heart of a Rails project. Instead, you�fll .nd a group of users and develop-ersjointly exploring theirneed and thepossiblewaysof answering that need. You�fll .nd solutions that change as both the developers and users become moreexperienced withtheproblemsthey�fretryingtosolve.You�fll.nd aframe-work thatdeliversworking softwareearlyinthedevelopment cycle.This soft-ware maybe rough aroundthe edges,butitletsthe users starttoget aglimpse of whatyou�fllbedelivering.
In this way, Rails encourages customer collaboration. When customers see just how quickly a Rails project can respond to change, they start to trust thattheteam candeliver what�fs required, notjust whathasbeen requested. Confrontationsarereplacedby �gWhatif?�hsessions.
That�fs alltiedtotheidea ofbeingableto respondto change.The strong, almost obsessive, way that Rails honors the DRY principle means that changes to Rails applicationsimpactalotless codethanthe same changes wouldin other frameworks.And sinceRails applications are writteninRuby, where concepts can be expressed accurately and concisely, changes tend to be localized and easy to write. The deep emphasis on both unit and functional testing, along with support for test .xtures and stubs during testing, gives developers the safety net they need when making those changes. With a good set of tests in place, changes areless nerve-wracking.
Rather than constantly trying to tie Rails processes to the agile principles, we�fve decided to let the framework speak for itself. As you read through the tutorialchapters,trytoimagineyourselfdeveloping web applicationsthis way: working alongsideyour customers andjointlydeterminingpriorities and solu-tionstoproblems.Then, asyou readthedeeper reference materialintheback, see how the underlying structure of Rails can enable you to meet your cus-tomers�f needsfaster and withless ceremony.
One last point about agility and Rails: although it�fs probably unprofessional to mention this, thinkhow muchfun the coding willbe.
1.2 Finding Your Way Around
The .rst two parts of this book are an introduction to the concepts behind Rails and an extended example.we build a simple online store. This is the placeto startifyou�frelookingtogetafeelforRailsprogramming.Infact, most folks seem to enjoy building the application along with the book. If you don�ft want to do all that typing, you can cheat and download the source code (a compressed tar archive or a zip .le).2
2. http://www.pragmaticprogrammer.com/titles/rails2/code.htmlhas thelinksfor the downloads.
Report erratum
Prepared exclusively for Jordan A. Fowler
FINDING YOUR WAY AROUND
The third part of the book, starting on page 228, is a detailed look at all the functions and facilities of Rails. This is where you�fll go to .nd out how to use the various Rails components and how to deploy your Rails applications ef.ciently and safely.
Along the way,you�fll see various conventions we�fve adopted.
LiveCode
Mostof the code snippets we show comefromfull-length, running exam-ples, whichyou candownload.Tohelpyou .ndyour way,ifa codelisting canbefoundinthedownload,there�fllbe abar abovethe snippet(just like the onehere).
Agile Web Development with Rails
Start from the beginning
