你是否有过这样的经历:别人在review你的代码后给出的评论,你觉得没有必要吗?注释代码是为了提高代码的可读性,目的是让别人更容易理解你的代码。我特别讨厌这5种注解类型和制作它们的程序员。希望你不是其中之一。1.自认为很棒的程序员!";//07/24/2010BobConsole.WriteLine(message);//07/24/2010Bob}}这个程序员认为自己写了一段很棒的代码,所以他觉得有必要在每一行上写下他的名字代码被标记。实施版本控制系统(VCS)可以对代码更改进行问责,但谁负责也不那么明显。2.过时的程序员publicclassProgram{staticvoidMain(string[]args){/*Thisblockofcodeisnolongered*becausewefoundoutthatY2Kwasahoax*andoursystemsdidnotrolloverto1/1/1900*///DateTimetoday=DateTime.Today;//if(today==newDateTime(1900,1,1))//{//today=today.AddYears(100);//stringmessage="ThedatehasbeenfixedforY2K.";//Console.WriteLine(message);//}}}如果一段代码不再使用(即过时的),删除它——不要浪费时间评论它代码。另外,如果你需要复制这段被删除的代码,不要忘记有一个版本控制系统,你可以从早期版本中恢复代码。3.不必要的程序员publicclassProgram{staticvoidMain(string[]args){/*Thisaforloopthatprintsthe*words"IRule!";i<1000000;i++){Console.WriteLine("IRule!");}}}我们都知道基本的编程逻辑是如何工作的——所以你不需要解释明显的工作原理,虽然你很乐意解释,但是这只是浪费时间和空间。4.爱爱讲讲故事的程序员upliCClassProgram{staticVoidMain(string[]args){/*idiscussedwithjimfromsalesovercoffee*atthestarbucksonmaintreetoneDayAdayandhe*告诉MethatSalesRepReceiveveceeveceivecrecmortsempression*supporter*didemertoitter。doubleprice=5.00;doublecommissionRate;doublecommission;if(DateTime.Today.DayOfWeek==DayOfWeek.Friday){commissionRate=.25;}elseif(DateTime.Today.DayOfWeek==DayOfWeek.Wednesday){commissionRate=.15;}else{commissionRate=.05;}commission=price*commissionRate;}}如果您必须在评论中提及要求,请不要提及其他人的名字。销售部的吉姆可能会离开公司,而且大多数程序员很可能甚至不知道他是谁。不要在笔记中提及不相关的事实。5.“稍后再做”的程序员publicclassProgram{staticvoidMain(string[]args){//TODO:Ineedtofixthissomeday-07/24/1995Bob/*Iknowthiserrormessageishardcoded*IamrelyingonaContainsfunction,but*somedayIwillmakethiscodeprinta*meaningfulterrormessage*Inowvejefultedy'stringmessage="Anerrorhasoccurred";if(message.Contains("error")){thrownewException(message);}}}这种类型的注释包括上述所有其他类型。如果是在项目的初始开发阶段,这种待办事项注释非常有用,但在几年后的生产代码中——它就会出问题。如果需要修复某些东西,请立即修复它,不要将其搁置“稍后再做”。如果你也经常犯这样的注解错误,如果你想知道注解的最佳实践,建议你读一读SteveMcConnell写的《Code Complete》这样的好书。
