Hi David,
What you are using is effectively an adaptation of the Hungarian
Notation (
http://en.wikipedia.org/wiki/Hungarian_Notation, see here for
a discussion about this
http://ootips.org/hungarian-notation.html) and I
personally am an advocate of the use of it. In my view it creates a
clear view of the possibilities of the value in that field, I tend to
use it not only in the case of constants but all my variables. I even
use the additional indication of the type of field (so 'ga' for a global
alphanumeric and 'gn' for a global numeric) so the possibilities of
usage is clear as well. There will be some valid arguments against the
use though, and application should always be with keeping in mind of the
environment.
Using other editors then SEU may lessen the absolute need for this
notation though, I haven't programmed in RPG for a while but the last
memories I had were of programming in an Eclipse like "intelligent"
editor on a PC. Eclipse (and derived IDE's like IBM's RSA) may help the
developer with specifying the scope of the variable, but since there is
no guarantee that the person reading my code has this editor, I still
use this where allowed.
Documentation should not re-iterate the obvious, so if the constant is
called gAUNT (or gAUNT_RELATIVE) it is quite obvious (given the context
of the application or source) what is meant by this. When there is room
for error however I tend to precede the line with comment (both with
variables, constants and in the code).
Figurative constants are indeed those constants which are basically
without declaration, so *BLANK, *ZERO, *OFF, *ON, etc. To call the gA
constant in your example "Figurative Constant" is stricly speaking a
misnomer.
Kind regards,
Cor
-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-
bounces@xxxxxxxxxxxx] On Behalf Of David FOXWELL
Sent: woensdag 1 april 2009 9:55
To: RPG programming on the IBM i / System i
Subject: Constants in RPG
Hi people,
I'd like some comments concerning the use of constants. I've been
asked
to prepare a presentation to the team for a discussion on good coding
practices, as the boss is getting tired of seeing this sort of thing :
* Global figurative constants
* Type relation = aunt
D gA C 'A'
myRelation = gA;
Now, I'd have written :
D gAUNT C 'A'
D gUNCLE C 'U'
myRelation = gAUNT;
Some questions :
I would normally not use a commentaire at the declaration of a
constant. What do you think?
We use a prefix g to indicate a globally defined constant, and w for a
locally defined one. When would you locally define a constant in a sub
procedure? I think it's nice to be able to see the definitions close
to
the calculation specs, but isn't a constant almost always global?
What is meant by figurative constant? I thought it was one with a
fixed
value like *BLANK.
Thanks
--
This is the RPG programming on the IBM i / System i (RPG400-L) mailing
list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.
Please help Logica to respect the environment by not printing this email / Merci d'aider Logica à préserver l'environnement en évitant d'imprimer ce mail / Bitte drucken Sie diese Nachricht nicht aus und helfen Sie so Logica dabei die Umwelt zu schuetzen / Por favor ajude a Logica a respeitar o ambiente não imprimindo este correio electrónico.
This e-mail and any attachment is for authorised use by the intended recipient(s) only. It may contain proprietary material, confidential information and/or be subject to legal privilege. It should not be copied, disclosed to, retained or used by, any other party. If you are not an intended recipient then please promptly delete this e-mail and any attachment and all copies and inform the sender. Thank you.
As an Amazon Associate we earn from qualifying purchases.