The fundamental nature of coding is that our task, as programmers, is to recognize that every decision we make is a trade-off. To be a master programmer is to understand the nature of these trade-offs, and be conscious of them in everything we write.
In coding, you have many dimensions in which you can rate code:
* Brevity of code
* Featurefulness
* Speed of execution
* Time spent coding
* Robustness
* Flexibility
Now, remember, these dimensions are all in opposition to one another. You can spend three days writing a routine which is really beautiful and fast, so you've gotten two of your dimensions up, but you've spent three days, so the "time spent coding" dimension is way down.
So, when is this worth it? How do we make these decisions? The answer turns out to be very sane, very simple, and also the one nobody, ever, listens to: Start with brevity. Increase the other dimensions as required by testing.
Which is some very clever words. You cant have everything, and the things you want, always comes at a cost of something else.
Now go coding and remember to use the KISS principle (Keep It Simple Stupid)
No comments:
Post a Comment