インターネット老人会の魔法書 Advent Calendar 2023 の5日目の記事です。
人力変更履歴
gitやsubversionがなかった時代、誰がいつどう直したかを人力で記録しなければいけませんでした。
ソースコードの修正があった場合は、元のコードは消さずに必ずコメントアウト。
いつ誰が何のために修正したかもコメントに記載する必要がありました。
/**
* FizzBuzz
* @auther 株式会社キータ 木板太郎
* @version 2003/12/5
* @param end FizzBuzzを終える数。
*/
public static void useForLoop(int end) {
for (int i=1; i<=end; i++) {
if (i%3==0 && i%5==0) {
/* 2003/12/6 仕様変更 No.123 株式会社キータ 木板太郎 ここから */
//System.out.println("Fizz Buzz");
System.out.println("Fizz Buzz Yeah!!!");
/* 2003/12/6 仕様変更 No.123 株式会社キータ 木板太郎 ここまで */
} else if (i%3==0) {
System.out.println("Fizz");
} else if (i%5==0) {
System.out.println("Buzz");
} else {
System.out.println(i);
}
}
}
そのため、仕様変更やバグの多いコードはコメントアウトの嵐になり、1万行あるコードの9割がコメントアウトという事態も珍しくはありませんでした。
可読性悪すぎるので、「不要なコメント消しましょう!」と勇気のある若手社員が進言したとしても、「会社のルールだから」と言われて一蹴されます。
なお、納品物としてのソースコードはこれらコメントは全て削除されます。
gitがある今でも、この文化を残してある会社は意外と多いかもしれません。