过去,我的团队有一项政策,即任何存储过程修改都需要在两个地方进行注释:
- 存储过程的顶部,包含所做更改的总体摘要
- 对进行更改的每一行的评论
它通常看起来像这样:
CREATE PROCEDURE usp_Test
/*****************************************************************
The purpose of this stored procedure is to get data.
Created by 8kb 2001-01-01
Modified: removed OR clauses from JOIN statement..8kb 2001-06-01
******************************************************************/
AS
BEGIN
SELECT *
FROM t1
JOIN t2
ON t1.colA = t2.colA
-- Removed OR clause..8kb 2001-06-01
-- OR t1.ColB = t2.ColB
END
但现在有了集成的源代码管理,我可以总结源代码管理中的变化,然后使用比较/差异功能来查看新旧版本之间的差异。
在作为集成源代码控制一部分的存储过程中编写逐行更改注释是否仍然有价值?
这对于每个模块的一个更改可能没问题,但想象一下经过几年的开发后您的代码会是什么样子。
在普遍采用版本控制之前,曾经有一些模块是 95% 的历史日志,只有 5% 的实际代码。幸运的是,版本控制很久以前就自动解决了这个不便。
我会完全摆脱评论中的更改日志——使用现代工具我们的工作效率要高得多。此外,git 和其他版本控制工具允许您做的不仅仅是查看一个文件的更改日志。例如,他们可以向您显示在同一提交中更改的所有其他文件。他们还为您提供准确的信息,而我们不能完全相信评论。
将它放在正文中也让我更容易在一个地方查看更改列表,而不必查看过程并从源代码管理中剔除历史记录。所以它具有恕我直言的价值,但在你的情况下是否值得双重维护,我认为这个网站不能客观地回答这个问题。