What's your process?

Hi everyone,

By way of introduction, my name is Sarah and I've just found this
group. I work for a video game developer in Nova Scotia and run a
graphic
design business on the side: www.triggersandsparks.com. I build a lot
of database-driven websites for my clients, making use of PHP/MySQL and
simple CMS components, and am grappling with making the switch to Ruby
on Rails in order to start building apps that are smarter and faster.
I'm finding it a pretty steep learning curve, though, probably because
I don't have a proper grasp on Object-Oriented Programming principles
or the concept of the MVC -- if anyone can direct me to any resources
that'll really clarify this for me, I'd appreciate it, but I tend to
learn as I do, anyway, and I'm a highly visual learner, so I'm hoping
it'll come to me as I fumble along.

Anyway. My question, beyond "what resources do you recommend?", is
this: how do you go about approaching the development of an
application? I'm trying to develop a series of steps to take when
beginning the design of a web application (specifically how it's done
in ROR, which I've finally got running on my Mac using Locomotive) in
order to maximize productivity and to do things right the first time
around, rather than repeating a lot of steps or going back-and-forth
more than is necessary. How do YOU approach your projects? What comes
first, the frontend or the backend? How in-depth do you map out your
data and schemas and such? Do you define your controllers based on the
use paths, or is it more complex than this?

Any tips, tricks, or insider secrets you cats can throw my way would
make me a very happy girl.

Thanks, and I look forward to making use of this group as I (toes
crossed) progress further into RoR!

sarah

All other things being equal, I start with the front end because, as far as your users are concerned, the interface is the application.

One of the huge benefits of Rails is that it is easy and quick to make changes, whether to your model, view or controller. I came from a Java webapp background and it is so much faster in Rails to e.g. add a field to a model. So don't worry too much about making decisions -- you can change your mind and fix things up in a flash.

You may also find Getting Real[1] helpful. It's a book by 37signals on how they go about building web applications.

Good luck!
Andy Stewart

[1] https://gettingreal.37signals.com/

As difficult as it might seem at first, try and not get to far down
the track with Rails without learning something about testing.

I know in my experience, trying to incorporate testing into an app at
the same time I was learning RoR feels like a whole heap of extra
material to digest, and then writing tests feels like twice the amount
of work again.

But my first couple of apps built without testing now feel precarious.
Whereas an app built according to test-driven development feels solid
and just 'right'.

It seems Rails leans on TDD to a large extent. Many plugins come with
tests out of the box, and getting back to your question, TDD
represents a 'process' that you can hang your hat on. Indeed, many RoR
developers do so.

I've just grabbed a copy of the Beginning RoR Ecommerce book from
Apress and it is a great case study in implementing user stories via
TDD.

Thanks, Fred. I've been working my way through the Agile PDF & it's
definitely the best resource I've come across yet.

Thanks for the info!