Subject | Code guidelines and other issues |
---|---|
Author | Mike Nordell |
Post date | 2000-07-28T17:50:18Z |
I've found nothing regarding code guidelines.
Are there any? If not, I'd like to toss in my $0.02 about this issue, that I
think is rather critical for
acceptance and understanding during the inevitable code-cleanup.
- Never put a space between the function name and the leading left paren.
- Always put a space after a loop-keyword ("if", "do", "for", ...). If it's
too long for one line, put the "{" on its own line with the same
indentation-level as the statements first character, e.g.
if (foo)
{ /* indented to the same level as "i" in "if" */
}
Note: This is *NOT* intended to display some preference for two spaces (my
personal pref. is TAB and TAB=4, but that's strictly a religious issue
:-) ).
- Always, unconditionally, put "{ }" around a conditional execution unit,
even if it's only one statement.
- Never, *ever* indent code the way it's (not) indented in the IB src. To
have the body of a function not indented makes the code close to
undreadable.
On to the "code usability" and platform support departement:
Are we still supporting Win16 (i.e. Windows 3.1+), or should we perhaps
ditch all those "WINDOWS_ONLY" (which I got to believe is Win16 only hacks
for a company called Harbor? This name was extracted from the following
lines in common.h
-----
/* this define indicates places where code was merged in
from the Harbor Software contract to do the Windows 3.1 port */
#ifndef HARBOR_MERGE
#define HARBOR_MERGE
#endif
-----
Another example is the file "utlswep.c" that is copyright Borland
"1984" and "1993". Nine years between those copyright claims :-), and it's
so complex that a five-year old would be able to reproduce it
(i.,e. "return 1;"), and it's only used in Win16. Is this old crap something
to really save for future generations to gaze upon, or could we ditch it
right now?
What platforms *are* we really to support?
My suggestion is: ditch the one(s) not used anymore. I'm pretty sure Win16
falls into this category, but I have no idea if e.g. OS/2, Ultrix, Apollo or
VMS is of interest anymore. I know sites that use one or more of these, but
as to their usage of IB I have no idea.
And it's still the issues of a CVS and a "patches" mailing list.
Btw, who is it that runs the site "interbase.com"? Is it Borland (or Inprise
or whatever they're called), or is it another "entity" or a single person
that runs it?
It seems that http://www.interbase.com currently is the "home" for IB,
execept that the site isn't very well suited to host Open Source software at
the moment since it seems to lack the crucial parts like Mozilla, CVS,
mailinglist(s) and so on. We currently use IB-Architect mailinglist - hosted
by a commercial company which adds commericals to every mail - but this
isn't feasible for serious development I think.
The focus of the interbase.com site could of course change in the future,
but right now that's not the case as I see it.
Where would developers discuss, post e.g. graphical overviews of the
different "subsystems" to communicate these matters?
Would it be that we mail mkemper@... (site admin according to the
front-page), or should we simply move on to sourceforge?
If IB moves on to sourceforge, who would admin it? I read about "dale1", but
I also found out that it was created some time ago. Is this a known person?
If not, maybe you know someone up to the task?
What do you think?
/Mike
Are there any? If not, I'd like to toss in my $0.02 about this issue, that I
think is rather critical for
acceptance and understanding during the inevitable code-cleanup.
- Never put a space between the function name and the leading left paren.
- Always put a space after a loop-keyword ("if", "do", "for", ...). If it's
too long for one line, put the "{" on its own line with the same
indentation-level as the statements first character, e.g.
if (foo)
{ /* indented to the same level as "i" in "if" */
}
Note: This is *NOT* intended to display some preference for two spaces (my
personal pref. is TAB and TAB=4, but that's strictly a religious issue
:-) ).
- Always, unconditionally, put "{ }" around a conditional execution unit,
even if it's only one statement.
- Never, *ever* indent code the way it's (not) indented in the IB src. To
have the body of a function not indented makes the code close to
undreadable.
On to the "code usability" and platform support departement:
Are we still supporting Win16 (i.e. Windows 3.1+), or should we perhaps
ditch all those "WINDOWS_ONLY" (which I got to believe is Win16 only hacks
for a company called Harbor? This name was extracted from the following
lines in common.h
-----
/* this define indicates places where code was merged in
from the Harbor Software contract to do the Windows 3.1 port */
#ifndef HARBOR_MERGE
#define HARBOR_MERGE
#endif
-----
Another example is the file "utlswep.c" that is copyright Borland
"1984" and "1993". Nine years between those copyright claims :-), and it's
so complex that a five-year old would be able to reproduce it
(i.,e. "return 1;"), and it's only used in Win16. Is this old crap something
to really save for future generations to gaze upon, or could we ditch it
right now?
What platforms *are* we really to support?
My suggestion is: ditch the one(s) not used anymore. I'm pretty sure Win16
falls into this category, but I have no idea if e.g. OS/2, Ultrix, Apollo or
VMS is of interest anymore. I know sites that use one or more of these, but
as to their usage of IB I have no idea.
And it's still the issues of a CVS and a "patches" mailing list.
Btw, who is it that runs the site "interbase.com"? Is it Borland (or Inprise
or whatever they're called), or is it another "entity" or a single person
that runs it?
It seems that http://www.interbase.com currently is the "home" for IB,
execept that the site isn't very well suited to host Open Source software at
the moment since it seems to lack the crucial parts like Mozilla, CVS,
mailinglist(s) and so on. We currently use IB-Architect mailinglist - hosted
by a commercial company which adds commericals to every mail - but this
isn't feasible for serious development I think.
The focus of the interbase.com site could of course change in the future,
but right now that's not the case as I see it.
Where would developers discuss, post e.g. graphical overviews of the
different "subsystems" to communicate these matters?
Would it be that we mail mkemper@... (site admin according to the
front-page), or should we simply move on to sourceforge?
If IB moves on to sourceforge, who would admin it? I read about "dale1", but
I also found out that it was created some time ago. Is this a known person?
If not, maybe you know someone up to the task?
What do you think?
/Mike