Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Front-end first or back-end?

Hi I have to do a small CMS application in MS ASP.NET using WebForms. I do everything on my own: front-end and back-end and Data Base schema.

Now that I want to develop the site, I wonder if I should start from front-end first, or back-end.

Considering this is a small project, could you guys give me a list of steps I do better following to help to determinate what is the best order for developing my application?

Thanks once again for your time.

like image 687
GibboK Avatar asked Sep 01 '10 12:09

GibboK


1 Answers

You'll develop all tiers as you go most of the time

For some page you may first create database schema and fill it up with some dummy data and than work your way up.

For others you may start with a page itself and then write functionality that's needed to get it working. Especially when this page hasn't been envisioned enough. This is not bad nor good. It's just the way development tends to be.

Some considerations

Follow agile development

  1. Write down some requirements in a form of user stories (and keep track of them), that don't give any info about page, data etc. Just something like As a user I would like to have primary navigation on my page. This kind of a story will permit later changes to code/pages without the story becoming invalid.
  2. Don't haste into something fully functional at first. Don't over-engineer your code. Because you'll end up doing changes later = follow YAGNI. For instance don't fully design your DB at first. Do just as much as you need per story being developed. But do think of future things that you'll have to integrate into existing codebase.
  3. Refactor existing code right away when you see something should be changed.
  4. If you have someone to test your code, let them do it. Don't develop next stories before existing bugs have been fully resolved. You'll be grateful for this later.
  5. If your code is semi-complex I suggest you write unit tests, so future code changes won't break existing functionality.

Most of all: learn as you go and change existing code while doing so. Since you're learning these technologies I suggest you stick to simplicity at first. You'll add more complex things when needed. Some of them won't get done at all. So in the end youl realise YIDNI (yep, I didn't need it).

like image 124
Robert Koritnik Avatar answered Oct 29 '22 14:10

Robert Koritnik