I am embarked upon such a project right now, cleaning
up/refactoring/commenting a bunch of code from a recent, very
fast-moving project now that user demand for changes has slowed down.
Here's my list of most common issues:
1. Typos
2. Bad Variable References (really, just a subset of Typos)
3. Incorrect Data Types
4. Logic Errors
5. Unexpected User Actions
There are two of these that I just can't seem to find a way around:
A. User fat-fingers some bizarro combination of keys, causing a crash.
B. User finds some way to input something even when the mouse cursor
is an hourglass (okay, okay, spinning circle, or whatever nonsensical
emoji is current in Windows 10, for all you modernistes) and when all
the buttons are disabled.
Some of this is VFP's notorious set of screen update/paint/event
issues. You know, you have some routine or loop of code, in the midst
of which a button is supposed to be disabled or a control made
visible or invisible, but it doesn't actually happen until after the
routine/loop is finished, no matter how many DOEVENTS, WAIT ...
TIMEOUT, Paint() and/or Refresh() lines you put in.
I have also discovered that the user can sometimes defeat
hourglass/disabled control stuff by jumping to some other application
during some time-consuming process, and then jumping back into my
program before the process completes.
The rest of those in the list aren't an issue for me.
6. Other:
A. There is still, I think, some sort of really insidious corruption
in my various project files that allows bad code to compile without
throwing errors. This results in very rare instances of inexplicable
crash errors. A missing or extra END... something perhaps, somewhere.
I will probably never find it.
B. I am still occasionally having "invalid subscript" errors on
arrays even after conducting an exhaustive code search for array loop
counter variables that were not declared LOCAL (after Ted's
suggestion--Thanks Ted!--a while back I found a small handful and so
these are occurring much more rarely than before). Has anybody ever
constructed a utility that searches all of the
methods/functions/procedures in a project specifically for variables
that were not declared LOCAL in those routines? (I only have a
handful of PUBLIC variables that are set when the program starts and
are never deliberately changed, and I never use PRIVATE).*
C. Connectivity Issues: I realize I can't fix broken hardware or
cables through software, nor do I want to bog down my code with tests
to ensure that everything is available across the network before
every attempt to do something, but I wish I had a better handle on
how to deal with some of these. Especially, lately, I would like to
be able to "wake up" a dropped network share, since MS in their
infinite wisdom decided it would be "helpful" to disconnect mapped
drives that haven't been accessed within some mysterious amount of
time (I'm aware of registry settings on both client and server side
that are supposed to fix this; they simply DO_NOT_WORK).
* I know, never use PUBLIC variables; put stuff in global objects or
simply instantiate variables globally at program start up. It
shouldn't be a problem as long as those variables are intended to be
static. And I need stuff to be available before any objects are
instanciated and after all of them are destroyed.
Ken Dibble
www.stic-cil.org
_______________________________________________
Post Messages to: ProFox@leafe.com
Subscription Maintenance: http://mail.leafe.com/mailman/listinfo/profox
OT-free version of this list: http://mail.leafe.com/mailman/listinfo/profoxtech
Searchable Archive: http://leafe.com/archives/search/profox
This message:
http://leafe.com/archives/byMID/profox/52.A2.16607.7637AC95@cdptpa-omsmta02
** All postings, unless explicitly stated otherwise, are the opinions of the
author, and do not constitute legal or medical advice. This statement is added
to the messages for those lawyers who are too stupid to see the obvious.