What are good approaches to develop web application?

34 views
Skip to first unread message

Nagesh Kumar

unread,
Sep 18, 2017, 9:39:41 AM9/18/17
to nodejs

For example, do you start with the user interface and then begin adding function? Do you focus on a single resource and code everything around it before moving on to the next? Or do you go layer by layer, starting with the model/DB layer and building up?


Thanks in advance for Useful comments 
Nagesh Kumar

Jaret Flores

unread,
Sep 19, 2017, 10:39:29 AM9/19/17
to nodejs
I'm sure this varies widely by programmer and company, but it is a good idea to get a minimal working example ASAP and then build features on top of it (iterative development).  The minimal working example should take into account server/client side libraries/frameworks you plan to use.  Look to their documentation for best practices, directory structure, testing frameworks and build processes.  All of these can affect the project for it's lifetime.

Then I would work feature-by-feature prioritizing the most important/necessary.  This way, after one "task" you have a new working component of your website which you know works which can be tested, improved and most importantly: used.

If you're not familiar, this isn't special to web development, it's simply the "Agile" approach which is currently the popular way to develop any software.  The goal is to break the project into "deliverables" (working components) that can be shown "product owners" ASAP.  This way, the decision makers can give feedback ASAP to better steer future features hopefully toward the success of the software.

So in the case of the website, features may look like (after having a minimal working example):

1. Setup basic navigation + home, about, contact pages (pure client side work?)
2. Setup user accounts (client side: basic login + profile page, server side: routes + handlers + models for authentication and sessions, db: profile storage?)
3. Some task related to the intial setup of the site's content (i.e. whatever the purpose of the site is)
4. ...

Of course, in each situation you should do a little planning so you can break up a task into smaller ones, and make sure the design is flexible enough to be improved.  For example, in (2) you may need to plan for user "roles" (admin, user, priveleged, etc.) later on even though you won't need to do anything role specific for a while.

In general, finding the "right" way to break-up a feature and prioritizing them is not a simple thing (especially at first when so much is needed).  But if you start doing by doing this you should see a more useful website more quickly.
Reply all
Reply to author
Forward
0 new messages