我为什么拒绝写注释
其实没有人问过我为什么不写注释我也没有向别人说过我不写注释的原因。但是最近一直有人在我耳边说你们这些鸟人为什么都不写注释了。所以我觉得我有必要做一下解释了。第一、什么情况下需要注释。如果你面对的受众是一些初学者或者非专业的人员那么确实需要写注释这一点在教科书上体现的最多。又或者你所工作的语言是结构化编程之类的没有很强的层次性包或者命名空间和封装类那么你需要写注释(C是最好的例子。最后如果你写的是算法或者你的函数中有魔数之类的东西你需要加注释比如如果你有一个函数如下那么你最好写一些注释publicstringGetRequestFile(){if(String.IsNullOrEmpty(Request.QueryString[fileName]))returnmagicFileName;//你可能需要说明为什么会返回这样一个文件名normal procedure....}。第二、为什么我不写注释。首先我面对的是专业的人员大家都是做软件的没有可能看不懂。其次现在项目的语言是C#面向对象的具有很好的封装性一个类的代码行数不会很多因为职责单一。最后函数和类是自说明的是比较简小的理解起来也没有什么困难我写的函数一般不超过10行如果异常处理多一点也就20行函数名和类名也符合规范类一般不超过150行。第三、为什么会要求注释。1、程序写的很不好函数和类名没有自说明或者由于语言导致的比如C。2、代码阅读人员对业务不熟悉建议先熟悉业务因为业务是根本技术只是实现而已。3、代码阅读人员能力有限或者自身的经历导致了需要由注释看起。而要求我写注释的人属于第三的3。他本身是由PHP转过来的而且其代码风格是纯粹的面向过程的写的程序很多注释但是也很长经常一个页面下来也就1两个函数搞定300行是家常便饭。因此他阅读程序养成了一个很不好的习惯的就是总是要全部把程序看完才可以理清楚这个类是做什么的类名和函数名对他来说都是浮云GetRequestFile和GetResponeFile对他应该没有什么区别。而很多时候我们看代码第一个就是看类名其次就是看被调用的函数的名称公共方法一般情况下已经足够判断这个类是做什么的还有提供的什么功能如果不行你可以跟类的作者说重构一下吧哥看得苦。这里就要求我们写代码的时候要像写诗一样去写就算不行起码也要做到代码的自解释。因此如果你也是一个拒绝写注释的人那么你写的代码满足第一和第二吗最后被要求注释的类大概是这样的。classUserAuth{public boolUserLoginAsClient(){......}publicboolUserLoginAsManager(){......}another private function}