Naming things, maybe one of the toughest things to do in software engineering, and surely the single most important practice of all.
Check this out: http://martinfowler.com/bliki/TwoHardThings.html
Is it not true indeed? Naming things being one of the two hardest thing in software engineering, with the other being cache invalidation?
I believe the power of good naming, or why not, great naming, not only makes software easier to read, maintain and extend, but also simpler to properly craft in the first place.
Good naming exposes intent, and with intent clearly exposed we can see the structure of what we are building and assess if it makes sense or not. Good naming makes refactoring and evolutionary development possible, good naming allows for patterns emergence.
Bad naming typically tends to hide things creating the illusion of "maybe not so bad software" behind the scenes. With bad naming you definitively don't see good software, but worst of all, you may not see terribly bad software hiding under the surface.
So, what's good naming then? I was going to write my own "naming" rules, but I came across these two great articles that do a much better job I could at the task:
http://parallelcross.com/post/36861185276/naming-strategies-uncle-bob-and-ottinger
http://www.objectmentor.com/resources/articles/Naming.pdf
Enjoy
No comments:
Post a Comment