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!