Good ways to overcomplicate your code and slow down development
Jerry Daniels
jerry at daniels-mara.com
Thu Sep 14 18:20:47 EDT 2006
Josh, you have a future making presentations! Very informative and
entertaining.
Best,
Jerry Daniels
Artists, Consultants & Developers
http://www.daniels-mara.com/art
http://www.daniels-mara.com/services
http://www.daniels-mara.com
Skype: jerry.daniels
On Sep 14, 2006, at 3:07 PM, Josh Mellicker wrote:
> One of the great things about Revolution is the speed of
> development, and how the language can lend itself to minimalist,
> simple, elegant script structures and code. One line to do the work
> of many.
>
> However, even the best fall prey to bad habits, some perhaps from
> other dev environments, that slow us down and rob us of precious
> time, as well as making apps overcomplicated, and needlessly
> difficult to debug and expand.
>
> Here are a few common ways I've learned to overcomplicate scripts
> and slow down software development.
>
>
> 1. overhandlerize
>
> instead of simply:
>
> set the uFlag of me to true
>
>
> make everything a handler:
>
> setUFlag true
>
>
> ON setUFlag pFlagValue
> set the uFlag of me to pFlagValue
> END setUFlag
>
> Cons:
>
> - it gives you 4 lines of script from one, making your script
> longer, and more time consuming to scroll and look through
>
> - by breaking it out into a separate handler there is one
> more "moving part"- one more thing to go wrong
>
> - it means if something goes wrong, you now debug 4 lines of code
> instead of one, maybe in two different scripts requiring you to
> trace through multiple pages,s lowing down debugging
>
> - it makes your handler list bigger, making it harder and slower
> to find a handler
>
> - now, you need to remember the handler name, but you still
> probably need remember the custom prop name too, giving your brain
> more things to keep track of and requiring more caffeine
>
> And then, instead of just saying:
>
> IF the uFlag of me THEN
>
> you continue in your overhandlizing:
>
> IF getUFlagValue() THEN
>
> FUNCTION getUFlagValue
> return the uFlag of me
> END getUFlagValue
>
>
> Lame argument in favor of overhandlerizing: "Ummmm... now you can
> change your custom prop name in just one place."
>
> Whaaaa???? First of all, why change a custom prop name? And why is
> that any more likely than you wanting to change your handler name,
> meaning you'll have to change it in THREE TIMES as many places??
> (call, begin and end hander)
>
> Nooop! Sorry, but thanks for playing.
>
>
> 2. Capitalize the first letter of all your Handlers, Variables, and
> Stack, Card and Control names, etc. This will cost you hundreds of
> keystrokes over a day's work and add to your carpal tunnel potential.
>
>
> 3. Declare your variables
> Yes, yes, I know, this might be a religion to some, but I have
> analyzed the situation carefully and I believe in most cases it's
> an example of one step forward, two back.
>
> The key is how much it slows you down that you can't compile a
> script and test immediately, instead you must first scroll to the
> top and type "local tWhatever". This increases development time by
> a significant factor.
>
> (Sure, you could turn CheckVars off while writing, but that defeats
> the whole purpose, right?)
>
> And yeah, it finds misspelled variable names, BUT it doesn't find
> where you typed the wrong variable or control or handler name, so
> it is arbitrarily useful. You still have to debug and test anyway,
> right?
>
> AND, of course you don't ever misspell variable names anymore
> anyway, because you use ScriptPaint in Galaxy (a feature yours
> truly contributed ;-)! ScriptPaint (among many other benefits)
> mostly eliminates having to type a variable name (except for the
> first time) so it allows you to turn that burdensome CheckVars off
> and warp speed your development!
>
>
> If anyone else has common timewasters and app bloating techniques,
> let's hear 'em!
>
>
> hugs & K.I.S.S.es,
>
> Josh
> _______________________________________________
> use-revolution mailing list
> use-revolution at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your
> subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-revolution
>
More information about the use-livecode
mailing list