Philip Meyer;494391 Wrote: > >No. More complexity means more bugs and less performance or more work > >which means less features or higher price. > No it doesn't mean that for certain. Bolting on stuff later could mean > more work and more bugs (depending on the quality of the initial > design/implementation/code review/test), but designed from the outset > its much less likely. >
Sorry, but repeating this doesn't make it true. Take TTP as an example. Hard coding the behavior makes for a straightforward approach. You have an action and this action will result in some message being sent to some object. Simple use case, simple test case. Add a context menu for a different action. Similar. One use case, one test case, one message. Now add options for, say, going to a details menu instead of play and using the context menu action for play. Similarly simple. Also add a variation for playing the whole album or a single track by default. You don't want to duplicate your whole playback code (since this would add complexity for code maintenance) so you add a branch in the playback function. If you do all this using options, you also have to have an options menu. You now have: - 3 times the basic use cases (6 instead of two) - Two options that you have to implement and test against all the 6 use cases - Two branches in your code on EVERY execution that will add to the execution time - twice the number of related functions or messages to be implemented growing your code size You can design this until the cows come home (which, again, is effort), it will obviously be much more bloated than the straightforward implementation and be roughly 6 times as complex. And these were just two "simple" options. -- pippin --- see iPeng, the Squeezebox iPhone remote, at penguinlovesmusic.com ------------------------------------------------------------------------ pippin's Profile: http://forums.slimdevices.com/member.php?userid=13777 View this thread: http://forums.slimdevices.com/showthread.php?t=69471 _______________________________________________ beta mailing list [email protected] http://lists.slimdevices.com/mailman/listinfo/beta
