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@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


_______________________________________________
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to