It would be very tough ask to quantify any application as good or bad but I have put forward some of the good practices that should be followed in striving to achieve the behavior of good application.

Architecture Level

  1. Define the blue print of the application that we are going to build and how this is going to solve the business problem the client is facing.

  2. Quantify what level of documentation should be put in place as most of the projects have a exhaustive documentation process which according to me is a kill.

  3. Define the high level Architecture of the application by following some of the industry standard Architecture like layered Architecture embedded with Orthogonal Architecture inside each layer of the application based on some of the application that we are developing.

  4. Follow as much as possible Domain Driven design which can easily be understandable by the business users.

  5. Determine the Buy v/s Build strategy based on the ROI over long run.

  6. Determine the Technology trace if needed(Not an option for buy) based on factors like budget,Active community, Skill set of the people available within the organization and in the Open Market and the number of application that has been built with the similar trace ,Experience of the people who have built it.

  7. Define the physical Architecture of the system with the help of system Administrator and the vendor of the infrastructure. This is very key in determine the number of cores the application needs and the number of threads each core will support based on the load the system can handle at single point of time.

Implementation Level

  1. Allow the server to do what it does best. The App server should deal only with Application; the web server should deal with loading the static content.

  2. Tune each server component to its best. Like caching the static content at web server level and setting the right level of Permgen space ,RAM setting at the application server level and also at the Database layer.

  3. Allow each layer to finish it task what it is meant for and move forward. Don’t have too many push back calls.

  4. Follow some good naming conventions which is closely related to business.For instance any table which is used for configuration by technical guy can be prefixed c_ {table_name}.Similarly all technical columns could be prefixed with t_{table_name}

  5. Cache all the static data

  6. Push only the data what is needed which would enhance the storage capability of the Data stores

  7. Don’t perform any costly operation in the Online App if possible push the same to the Batch mode

  8. Don’t have any network calls inside the loops.

  9. All the exposed services should be in Records mode rather than Record mode. Expose the service which would take a list of items rather than single Item.

  10. Don’t kill any technology by overusing the same for instance most of the applications will make an ajax call to fetch the data based on some user action. Think twice whether the same behavior can be achieved in the first call and unhide the thing when user performs some action. Ajax call is costly as it has to hit the App server and perform some activity.


About Author

Deepak Madhugiri

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 4.00 out of 5)

Posted by Deepak Madhugiri

Leave a reply

Your email address will not be published. Required fields are marked *