Design for Extensibility

Another problem with not being able to see the future is that you will not be able to anticipate every feature that you or your users will want to add to your program. You should build your program in such a way that new features are easy to add (and remove). Software designed with extensibility in mind is fun to work with because adding features is so easy. An extensible program is like a TV with several HDMI ports. Your TV might not have a DVD player built in, but the TV is extensible, so you can plug in a DVD player. And when Blu-ray players replace DVD players, you don’t have to buy a new TV because you can just remove the DVD player feature (unplug it) and add the Blu-ray feature. Similarly, if you want to add a ...

Get Learning to Program now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.