Code Reviews
by Arjen Markus
Deltares, The Netherlands
ACM Fortran Forum, August 2009, 28, 2
This is one of the first papers I found. Consider it my “warm up” paper.
According to the header, Arjen Markus works for “Deltares”, and after a quick Google-hunt, I found out that Deltares is a “new independent Dutch institute for national and international delta issues”.
Upon closer inspection, it seems that Markus’ paper is concerned with what reviewers should be looking for during code reviews:
“What should you be looking for in the code? It is not enough to check that the code adheres to the programming standard of the project it belongs to. Such a standard may not exist, be incomplete or be focussed on layout, not on questionable constructs that are a liability. With this article I would like to fill in this practical gap, at least partly.” (Page 4)
This isn’t exactly what I set out to look for, but I thought I’d give it a once-over anyways.
Markus’ paper is not what I would call a rigorous scientific publication. There is no empirical data, no hypothesis, none of that good ol’ scientific method stuff. Instead, it’s more akin to a “do” and “do not” set of advice and examples that one would find in a software engineering textbook.
A FORTRAN software engineering textbook, to be more precise. Markus’ examples are all in FORTRAN.
Broken down simply, Markus has four principles, or bits of advice:
“The importance of being explicit”
Essentially, this means to be clear with what you’re doing in the code. It’s common sense stuff: don’t be overly clever, be readable, don’t use magic numbers or strings, document your code, group related routines into the same modules, use information hiding in your modules when appropriate, clear and precise error messages, etc.
“Don’t go your own way”
Markus advises developers to stick to an agreed coding standard / style guide. Don’t reinvent the wheel – instead, use typical solutions to problems that arise. “Don’t go against the grain” (Page 7).
“Be careful out there”
Markus advises developers to watch out for documented language quirks, common language pitfalls, etc. This is followed by numerous examples in FORTRAN.
“Curiouser and curiouser”
Markus asks to keep an eye out for “a lack of attention to design, to readability and other aspects that are important for the program in the long run” (Page 11). He also repeats a few things from “the importance of being explicit” – mainly, to make sure that the code is organized in a way that makes sense to the developers.
I don’t know. I don’t think I’m the target audience here. In hindsight, I found the information in this paper to be very general, and rather self-evident. The only thing I seemed to learn was a bit about FORTRAN quirks.
I think I need to be less laissez faire in my paper selections. This one didn’t help me find what I was looking for, and I should have seen that from the abstract. Bah.
EDIT: Why did I waste my time searching ACM when more interesting information was waiting right under my nose? I think I have an idea what to review next.