Saturday, June 8, 2013

How to choose good framework

The java eco system is full of exciting frameworks most of them are open source, many of them provide the same purpose as others. Many time during the development of your project you consider using one of these frameworks, personally I believe using external frameworks is a great idea. It is best advised to focus on your business logic instead of reinventing the wheel. But how do I know which framework to choose?
In this post I will define some criteria that I think are the most important criteria for choosing a framework, some criteria are controversial but I think there are very important arguments in the decision.

1. Good framework, is framework with big community - this is very important mainly in open source frameworks. Since open source frameworks grown by their community. Usually the community is other engineers that work in places like you are. And if many engineers think it's a good framework and invest time of using it (on the way debug it) and maybe even develop it. It is probably a good framework. If you want to know the size of the community looks for the number of Q&A in stack overflow or number of posts, training solution for this project.

2. Who behind this project, who developed it? Who is the company behind it, if it is top level project of apache you can sleep well at night. If it is one of the big companies like red hat or HP. it is also something safe. Stay away from academic frameworks that more suitable for theoretical issues.

3. Good Framework is well documented framework. Some developers thinks that open source framework should not be well documented since the owner of the project would like to earn money from training.
Well, I believe if we have big community the training will not be the problem.

4. The framework should mature enough - it was already debugged and has many successful case studies around the world. You have enough developers that work with it and usually in this case the code is already optimized for better performance.

5. The framework is easy to use - there is no complicated API, the framework focus in one major thing and not try to resolve everything. When you read the code of the example is very understandable and you can easily integrate it in your program,

So you can see, that in small reading and paying attention to this issues you can determine if you have good quality framework or something that it is not good idea to work with.
I hope it will also help you in choosing your framework

No comments: