another one is move variables as close to their use as possible. so many people somehow inherited FORTRAN style (from where! you're younger than me!) and declare variables at the top of a function. that's a brilliant way to either forget to use/remove/initialize them and/or shadow names. drives me utterly insane (because it's like who the hell is teaching people this).
also probably -Werror or -Wall depending on the size of the code base (at least -Werror=return-type, -Werror=unused-variable, -Wunused-but-set-variable, -Werror=dangling).
> use version control
yea lots and lots of incremental commits with decent commit messages purely for you to remember what ground you covered. also lots of branches and rebasing. what a chore but it's the only way to stay sane.
> make sure the code is readable
debatable but my first move is to undo all the spaghetti OOP and "please break out into a function" bullshit. less readable to the junior maybe but much more readable to a senior that needs to actually understand what the entire module is doing.
C++ is fine language - most people just are really bad at it.
I thought this was a C 89 requirement too, and I thought until recently that some Linux distros lifted the build requirement to C 99.
I've worked on a few code bases with all the variables declared at the top of a function though and you're absolutely right - plenty of variables that end up unused or shadowed.
TIL
while (...) {
int a = 1, b = 2, c = 3;
printf("%d\n", a + c - b);
}
The best practices are: 1) do it in small steps 2) use version control 3) use automated tests 4) make sure the code is readable.
Pretty straight forward.