Abstractions are great!
Except, when they aren't.
We use abstractions everyday in our code, and it's what allows us to create our programs. This post is just going to be a quick blurb on the downside to non-trivial abstractions, as motivated by reading: http://www.joelonsoftware.com/articles/LeakyAbstractions.html
It's a great read. And, in the interest of time, for now:
- All non-trivial abstractions, to some degree, are leaky.
- Abstractions fail, and you have to know the underlying pieces to understand how to fix it.
- Many great examples
- When there is some great new code-generation tool, learn how to do it manually first, then use the tool to save time.
Eventually, I'll write my own informative article about abstractions, but for now, this will have to do. ;)
And, as I like to say, make sure you remember to think for yourself. Don't do something just because somebody else did it. Don't let your excuse be that somebody else told you to do it.
~ Danial Goodwin ~