[COFF] Code/comment Ratios Style

Larry McVoy lm at mcvoy.com
Mon Jul 21 07:46:37 AEST 2025


On Mon, Jul 21, 2025 at 07:26:07AM +1000, Warren Toomey via COFF wrote:
> So this isn't a rant so much as a request for alternate perspectives. If
> you have a spartan commenting style, why? Can you read your code and see
> all the implications, or do you dislike lots of comments, or do you write
> more external documentation etc.?

Well, in a long lived code base, comments can rot.  I'd much rather have
to read the code and figure it out than have a comment that is no longer
true send me down a wild goose chase (it's happened more than I care to
think about).

I tend to comment structures quite a bit, globals and locals,
have a block comment above the function saying what it is and it
gets sparse from there.  There may be inline comments but they need
to do something a lot more useful than

	i++;	// increment i <-- this sort of comment is worse than useless

I also have a style that is

	int	*p = 0;
	char	*foo = 0;
	int	ret = 0;

	// lots of code
err:	ret = -1;
out:	if (p) free(p);
	if (foo) free(foo);
	return (ret);
}

Most of the BitKeeper code follows that style, no unitialized pointers,
we did use a lot of

	unless (p = malloc(whatever)) goto err;

style of programming.  Memory management in C is primitive so you have to
adopt some consistent style to avoid errors just because someone did 
something different.

> When I taught, I had two mantras about comments:
> 
>  Code explains how, comments explain why.
> 
>  Code as if the person who takes over your codebase
>  is a crazed psychopath who knows where you live.

I always said "optimize for reading, not writing".  I've also said "anything
that you wrote 6 months ago, you will approach it as if it is someone else's
code".


More information about the COFF mailing list