“Great” developers versus great developers
There are a lot of really good developers out there. I feel some of them climb the ladder and either hit the “great” category, or the great category. I use one in quotes to represent the same area of expertise but with a slight difference that means a lot. I will relate this area to design patterns for this example.
A “great” developer knows the ins-and-outs of OOP, knows design patterns, knows how to implement them properly, and follows the rules of the pattern strictly.
A great developer knows the ins-and-outs of OOP, knows design patterns, knows how to implement them properly, and follows the rules of the pattern loosely.
Design patterns are not laws. There are things you can do in your coding that will go against the the pattern definition, but leave the heart and idea in tact. I have seen some pieces of code get criticized because they are not a “proper singleton” pattern or … whatever the excuse is. The truth is that the “great” developers are either not good enough to actually bend the rules or they have nothing else going for them except perfection in patterns.
Patterns are great because they are a universal concept to an approach and they have been proven to organize code, but these are not restrictions as some people seem to think we are bound to. It is okay to bend concepts of a pattern if it fits your application more or makes more sense. I have seen situations where actually implementing the pattern to perfection is more confusing then taking a small detour. Knowing when to use a proper pattern and when to bend the rules a little is what separates a “great” developer from a truly great developer. When you are a young programmer, you are afraid to stray far from what you know so you do it strict and to the point. As you gain more experience, you realize that being so strict was never necessary. That concept applies further and further.
( When I say “bend” the rules, I do not mean tearing them to shreds and doing your totally own thing and claiming to be something else. )
Design patterns, and most concepts in developing, are not rules… They are more like guidelines.




