Matt Frost has a new post to his blog talking about reducing complexity and preventing overcomplication in your code and application structure.
We've all come across code that's written so craftily that it takes us some time to figure out what's actually going on in that block of code. We've never written things like that ourselves of course....seriously though, if you're collaborating, not doing things in the simplest terms will create an issue when other people start to look at your code. There is something about us; when we have an opportunity to show off how smart we are; we really try to go for it. The point is that it's not helping anyone and crafty code !== good code.
He makes a few recommendations about how to keep things simple in the various aspects of your development:
- Know your tools
- Know what you're doing
- Check your smells
- Ask "what value does this add?"
By simplifying things, you give others a chance to look at what you are doing and help you understand what you did right and what you can do to improve that section.