更新履歴・修正履歴をソースコードに残すこと
#🌱
更新履歴・修正履歴をソースコードに残すことのメリット
更新履歴・修正履歴をソースコードに残すことのデメリット
そういう現場にしか当たらないのでどうにかなくすためのメモする。
「更新履歴・修正履歴をソースコードに残す」とは以下のようなソースコード中に修正履歴を入れてしまうこと。
code:memo.c
‘START 2017.07.01 【修正】 会員番号の桁数増加対応(5桁→6桁) 詳細設計P-4400 担当:山田 太郎
‘元のソース(コメント化)
修正後のソース
‘END 2017.07.01 【修正】 会員番号の桁数増加対応(5桁→6桁) 詳細設計P-4400 担当:山田 太郎
ref: ソース修正時にコメント文に残しておきたい項目(参考例付き)
上記のような文化を無くしていくには、そもそも GitやSubversionなどのバージョン管理システムが不可欠である。
とはいってもバージョン管理システムを使っていてもなおこの文化が残ることがよくある。理由としては保守メンバーが障害が起きたときに確認とき便利らしい。
更新履歴・修正履歴をソースコードに残すことのデメリット
ソースコード中に修正履歴を残されると、
grepの時に邪魔
ソースコードを読むときに邪魔
diffがうまく機能しなくなる
保守性云々言われるがとにかく開発するときに邪魔なのでやめてほしい。
コメントを残す理由
まずは修正を加えた際に、コメントを残しておくべき理由から。
コメントが活躍するのは修正を行った後になります。再度カスタマイズなどで手が入れることになれば、コメントが残っていることで、その経緯を追いやすくなります。さらにコメントが残っているおかげで、せっかく修正した箇所をつぶしてしまうリスクもなくなります。
コメントを残す行為は面倒かもしれませんが、ソース修正時のお約束事とでも言うのか、鉄則だと思ってもらってよいでしょう。後々のメンテナンスが楽になりますので、必ず次に挙げるような情報を含めて残しておかなければならない、という認識を持っておくようにしてください。
ref: ソース修正時にコメント文に残しておきたい項目(参考例付き)
逆に更新履歴、修正履歴がないことをポジティブな言い方に直すと
grep
grep結果が見やすくなる
例えば/* */の間のコメントアウトを生きてるコードと思うことが無くなって、見間違いが起こらなくなる
ソースコード
余分な情報が無くなることで認知的負荷が減る
余分な情報が減って見やすくなる
修正がしやすくなる
diff
(GitHubやWinMergeなどのサイドバイサイドで見ることができれば)レビュー時に負荷が小さくなる
適切な差分を見ることができる
説得をする場合、恐怖(またはネガティブ)で説得する場合よりポジティブな説得の方が受け入れやすいらしい
ref: 『事実はなぜ人の意見を変えられないのか-説得力と影響力の科学』
更新履歴はバージョン管理システムがあれば別にいらなくなる。
ソースコードのヘッダにコメントを残すのは自分は別に良いと思う。この場合のヘッダというのは以下のような更新履歴。
code:memo
日付 修正内容 修正者
2020/06/01 64bit化対応 John Doe
2023/02/02 会員番号の桁数増加対応(5桁→6桁) 山田 太郎
問題は様々なステークホルダーを納得させるのが非常にきつい場合がある。
バージョン管理システムをうまく導入する
shift-jis
Proj: 会社で構成管理(Git)ができる人を増やす
(書き途中)
Shift_JIS環境へのGit導入
Gitハンズオン
確認用
Q. 更新履歴をソースコードに残すこととは
Q. 更新履歴をソースコードに残すことのメリット
Q. 更新履歴をソースコードに残すことのデメリット
参考
『事実はなぜ人の意見を変えられないのか-説得力と影響力の科学』
バージョン管理にコメントを残したとしても、ソースコードに改訂履歴のコメントを残す必要があるという主張 - ITコンサルの日常. 2011-05-30.
ソースコードの修正履歴は誰が見るか
ソースコードのレビューア
トラブル発生時の保守エンジニア
影響調査時の保守エンジニア
ソース中に変更履歴をコメントで残すことについて考えてみた - Qiita. 2018-06-02.
ソース修正時にコメント文に残しておきたい項目(参考例付き). 2017-07-06.
これを公開してしまうということに戦慄してしまうが資料としては便利
コメントを残す理由
まずは修正を加えた際に、コメントを残しておくべき理由から。
コメントが活躍するのは修正を行った後になります。再度カスタマイズなどで手が入れることになれば、コメントが残っていることで、その経緯を追いやすくなります。さらにコメントが残っているおかげで、せっかく修正した箇所をつぶしてしまうリスクもなくなります。
コメントを残す行為は面倒かもしれませんが、ソース修正時のお約束事とでも言うのか、鉄則だと思ってもらってよいでしょう。後々のメンテナンスが楽になりますので、必ず次に挙げるような情報を含めて残しておかなければならない、という認識を持っておくようにしてください。
メモ
2012-08-15
変更前をコメントアウトして残す習慣は未だ根強い (2012年現在) - 日々常々
2013-01-29
ソースコードに修正履歴を書く意味を考えてみた - miyohide's blog
2025-03-20.
https://x.com/fumokmm/status/1902684988795138097
令和にもなって、まさかこんなコード残ってないですよね?
https://x.com/fumokmm/status/1902692036551032844?s=46
「バージョン管理してるんだから、この修正履歴の行いらないですよね?」って昔上司に聞いたら、
「いやいや、バージョン管理ツールだといちいち履歴を見ないとどんな変更してたか確認できないんだから、これの方がいい」
って言われてれ、「あ、終わったー」と思ったのはいい思い出です☺️
関連
詳細設計という名のゴミ
#TODO #ふわふわとしたもの