Few Design Decisions and Development Tips For Web Applications
1) Use a ORM (unless you have a strong reason)
Using a ORM tool reduces your development time and it is easy to maintain. Yes, I know that some people say ORM tools reduce the performance. An added layer of abstraction definitely reduces performance. But, most ORM tools are developed in a way to minimize the overhead.
Let us say you have 4 developers building an application for you. This application would take 3 months to complete and each developer is paid 8000 dollars a month. You end up paying 96000 dollars for this project. If you used an ORM tool you can easily save 15 - 30 days of work. For the argument lets say it saved 15 days work. The cost advantage: 16000 dollars, go buy some extra RAM / better CPU, instead of mourning about performance. And you have your product 15 days earlier, which may give you a market edge.
2) Concentrate on User Experience
I am not talking about sugar candy images / css etc.. For doing a particular task, minimize the keystrokes required, mouse clicks required.
3) Use Ajax wisely
Ajax is a very nice technology. Use it properly. When you are changing a major part of the page, do a full post back. I know a lot of people may not agree to this. I am suggesting this because some browsers and some Ajax frameworks available have memory leaks with Ajax components, When a major part of the page changed, the browser has to unload the whole DOM and create new DOM structure. Thankfully some browsers are not good at it. Use Ajax when for partial page updates. And whenever possible, try queuing Ajax requests. When a user clicks something and sees the loading… text or image and if he has to wait, it is a little frustrating. Ofcourse it is better than a whole page re load.
4) Take the Users seat
Unfortunately, some developers dont see themself as the end user. So the developers think they built a great product, but it could be useless for end user. For example, for a certain application lets say end users receive some paper forms and they key in them into this application. Remember most of them are good typists. Sometimes developers forget the logical flow using Tabs. An application should add value not make things hard. So to know such things think like the end user. Or for example, the users take telephone calls and key in some things into the application. There is a huge form. And we have a session timeout of 15 minutes, which may not be sufficient for the user. After he keys in everything and clicks submit he finds himself staring at the login page with the message your session expired. (If the developer cared to put that message). Well there are a couple of techniques to handle this. (may be a future article).
5) good coders code, great reuse.
Good coders write good code, great developers re use. Don’t re-invent the wheel. If there is some library that solves your purpose and the library license is applicable for you, go ahead and use it.
Finally,
Be clear on what needs to be done, have your unit test plans ready before you even write code. Test early and test frequently. Don’t wait till you build a mammoth. Start testing as soon as you have some little feature. And test as soon as you add another one. This way you find bugs early, fix them early.
Goodluck.
Few Design Decisions and Development Tips For Web Applications