On Sat, 27 Oct 2018 at 16:39, Booth Martin <booth@xxxxxxxxxxxx> wrote:
I am having to rethink an old habit and realizing times change, perhaps
I should, too?
Very commendable if you ask me.
I stopped using QCLSRC, QRPGSRC, QRPGLESSRC, etc a very long time ago; I
prefer all related source grouped together in a recognizable naming
pattern. Easy to see and easy to police.
Tradition is a harsh mistress.
If I could start over, I'd have one source PF for each object type, so
FILSRC
PGMSRC
SRVPGMSRC
PROTOSRC
BNDSRC
... you get the idea.
The basic concept is that since IBM i doesn't allow two programs in a
library to have the same name (not even CLP and RPG), or two files
(not even DSPF and PF), I need separate source files for these object
types as long as I want to have the source member named the same as
the object. Which I do, desperately. Is there anything worse than a
source member called CLP00001 -> CRTCLPGM CUSTMNTCL SRCMBR(CLP00001)?
This is why I bang on about having my service programs using one
module - named the same as the *SRVPGM. It refers to a /copy - the
same name as the service program. It's created with binder source -
named the same as the service program. Yes, it's a simplistic scheme,
and it's met my ILE needs for more than 20 years. I don't work on
rockets and my needs are simple.
I am seeing discussion about the necessity of using QCPYSRC as a PF-SRC
file. Is that a universally held practice in RPG-World? Is this a
compelling reason to revert back to 1980s practices?
I only have 10 characters to name my objects and source members. I
begrudge every one. It's already bad enough that I need to use
Hungarian notation to differentiate my CLP from my RPG, but to have to
use Hungarian notation on every source member because I lumped all of
the source into a single SRCPF just rubs me the wrong way. I don't see
it as wrong or evil; just not my first choice. I prefer a separate
source file for my prototypes so that all of the related source
members - all of them - have the same name as the object they end up
used in.
I had a good think about this very topic when the PTFs came out to
allow CL to be stored and compiled from stream files. I /could/ make
source with 128 character names, but the object can still only be ten.
And yet, with some discipline...
/development/pgm/custmaint_Customer_maintenance_app_mods_for_canada_vat.sqlrpgle
crtsqlrpgi pgm(custmaint)
srcstmf(/development/pgm/custmaint_Customer_maintenance_app_mods_for_canada_vat.sqlrpgle)
-- the secret sauce is to put the 10 char object name as the stuff
before the first underscore in the stream file name. Now I can quickly
swap between versions of the program:
/development/pgm/custmaint_Customer_maintenance_app_mods_for_canada_vat.sqlrpgle
/development/pgm/custmaint_Customer_maintenance_app_mods_for_eu_vat.sqlrpgle
/development/pgm/custmaint_Customer_maintenance_app_mods_for_japan_vat.sqlrpgle
Something to ponder; I don't really know the bestie best way to use
the IFS yet. But it fits right in to your very useful thread.
--buck
As an Amazon Associate we earn from qualifying purchases.