我觉得这应该是一个很好的评论,但我觉得我所拥有的仅仅是一种分心。
请注意,我正在使用规范化程度很低的应用程序。
(
/* Remove Time Portion From ActivityDate */
DateAdd(Day, DateDiff(Day, 0, Activity.ActivityDate), 0) Not Between
/* Remove Time Portion From @MinimumDate Or SQL Server Min DateTime */
DateAdd(Day, DateDiff(Day, 0, Coalesce(@MinimumDate, '1753-01-01')), 0) And
/* Remove Time Portion From @MaximumDate Or SQL Server Max DateTime */
DateAdd(Day, DateDiff(Day, 0, Coalesce(@MaximumDate, '9999-12-31')), 0)
)
答案 0 :(得分:3)
就个人而言,我认为您不需要说removes X from Y
或increments X by Y
等的评论......
话虽这么说,如果你觉得你需要评论特定的代码部分,我会尝试着重于功能的意图和大局。例如,为什么事情以这种方式实施?这样,当你不得不做出改变时,接下来的那个人将会有一个战斗机会。
例如,我知道你的代码片段在功能上是什么,但我不知道为什么它存在或者它与应用程序的其余部分有什么关系。一个可能的改进可能是一个解释功能的解释,你可能会给某些新手代码的人,或者一个可能不关心如何实现它的人,但为什么
我总是要提醒自己编程正在沟通,你可以越清楚地向其他程序员传达你的意图,你就会越好。如果您能找到一种方法来添加注释,以提高开发人员之间的通信质量,那就去吧。我认为,那些能够准确告诉你代码正在做什么的评论会适得其反,最终会伤害沟通。
答案 1 :(得分:1)
我将dateadd / datediff包含在带有自我评论名称的标量udf中,然后传入Activity.ActivityDate
或Coalesce(@MinimumDate, '1753-01-01'))
作为参数
所以你有这个:
(
dbo.ufnGetDateOnly (Activity.ActivityDate) NOT BETWEEN
dbo.ufnGetDateOnly (COALESCE(@MinimumDate, '1753-01-01')) AND
dbo.ufnGetDateOnly (COALESCE(@MaximumDate, '9999-12-31'))
)
你也可以有一个“date if null”参数,并在udf中处理COALESCE,如果它在SQL代码中很常见
(
dbo.ufnGetDateOnly (Activity.ActivityDate, DEFAULT) NOT BETWEEN
dbo.ufnGetDateOnly (@MinimumDate, '1753-01-01') AND
dbo.ufnGetDateOnly (@MaximumDate, '9999-12-31')
)
现在很明显......不是吗?
答案 2 :(得分:0)
这些评论对我有帮助,因为如果他们不在那里,我将不得不考虑这些线路正在做什么。虽然罗伯特格雷纳说,为什么你这样做也很有用。
答案 3 :(得分:0)
不 记录您的工作。必须自我解释一行代码的作用。文件: