As a professional web application developer, we’ve to develop application faster with maintaining the quality, security and performance. Once upon a time, when people develop web application without further planning about structure and maintenance. Now the situation is quite different. Today’s web application are very complex. Now it’s very important to structure the application. Now I’m describing about a case study:
Case 1: Suppose you’re a team leader. Your company tell you to develop a facebook application with some requirements. You’ve a good team to develop this app. Now what will you do?
Solution: You may use a framework and guide your team to fulfill the company’s requirement to develop your application like this.
So, you maintain a good structure and develop a good application.
Case 2: After some days, your company tell you to develop another application that has the same functionality with this application only view and some minor features are changed.
Solution: You and your team copy APP 1‘s source code, modify that, maintain the core and change the view. So You develop another application APP 2 that has it’s own core.
Case 3: Your company assign you to develop another 4 application like this.
Solution: You and your team develop those application like the same process. Now You’ve five applications like APP 1, APP 2, APP 3, APP 4, APP 5.
Case 4: After 2/3 months someone found some bugs in your APP 1 and notify you. Then what will you do?
Solution: You fixed the bugs for APP 1, and recursively apply the same process with other apps APP 2, APP 3 …..
Case 5: Suddenly facebook company announce to change their core library and deprecated some functions and updated some new APIs. Now what will you do?
Solution: You’ll identify the problems, replaced the core library for APP 1, integrated the new APIs by replacing the old APIs. And you recursively apply the same process with your other apps APP 2, APP 3 ….
So, I think now you realize the matter why I’m describing this situation. This type of situation sometimes happen in software firm. But If your team leader and senior developers plan and design before developing application, this type of recurrence situation might not happen.
For team leader and senior developers:
- Before developing any application, first time try to fully understand what is the future of this app. Would we need develop similar apps in future. Try to capture and visualize the full requirements from your company.
- Seniors and team leader have more responsibilities than junior developers. So, you should think and should chose a well known and best framework to give structure in your app.
- In professional life, developing from scratch is a very bad idea. Because you should consider security, maintainability, performance, structure and helpers. In student life or if you research then developing from scratch is essential.
- Over confident is very crucial. Try to understand others. By consulting, you could choose the best solution. Value others if you want to be a valuable person.
Now, for Case 1 at the first time the best solution might be like this.
Solution: You consult with your company about the requirements and future of the new app. If your company tell you that in near future, you have to develop similar app, then you have to make another structure like this.
That’s to say, you defined the core library, helper functions, common functionalists and moved in a common directory. Then when any new and similar app need to develop, you just use the core or inherit the base. By this way, you solved several common problems.
- When core library changed, you update in one place. And all the applications become updated.
- When any bug identified in core, you changed in one place and all the applications become updated.
- You reduce the code.
- You give a maintainable and robust structure for these similar apps.
So we all should remember, “Design your web application before developing“.