What's the flow?

Bahadir Dogan wrote:

I'm new to web programming. I want to learn about the process while
developing web applications. What must come first? design, database or

In traditional development, you must write the database first, then the design. That's because changing a traditional program - especially changing the database schema - runs incredible risk of bugs.

Rails is a member of a category of programming styles called "Agile", meaning Rails uses tests and database migrations to help reduce the impact of early design mistakes. This, in turn, allows you to start a program as "lean" as possible. Just enough data tables, models, and controllers to pass some test, and produce some output.

So the flow should be to write unit tests and functional tests, get them to fail, then write enough code to pass the test. And repeat, adding a test for each new bit of code you need. Keep your program as simple as possible at all times.

Some programming environments make that technique very hard. HTML development makes it especially hard. Rails is unique in the industry for making test-driven development for HTML easier than most other platforms.