大家敲代码,会写注释么?似乎周围的朋友,就我一人写的程序木有注释的。
想表达的意思就题目说的一样喽,询问了旁边的几个朋友,我说我写代码从不来不写注释,而且公司里的传统就是基本不写注释,而他们只有诧异不可能惊讶的表情,也因此跟朋友争论了很久,后来么也就不了了之了。
个人觉得,写了代码完全没必要再去敲注释,好比你写了篇作文,尼玛的,你还要用中文解释一遍?难道为了凑够800个字?呵呵呵。如果你写的是文言文,好吧,say good bye to you,我们不是一个次元的人。
想表达的意思就题目说的一样喽,询问了旁边的几个朋友,我说我写代码从不来不写注释,而且公司里的传统就是基本不写注释,而他们只有诧异不可能惊讶的表情,也因此跟朋友争论了很久,后来么也就不了了之了。
个人觉得,写了代码完全没必要再去敲注释,好比你写了篇作文,尼玛的,你还要用中文解释一遍?难道为了凑够800个字?呵呵呵。如果你写的是文言文,好吧,say good bye to you,我们不是一个次元的人。
从来没写过注释,也没发生过别人看不懂我的代码的情况。只有干活干一半不得不中断的时候,会写个// TODO: ,接着干完也就删掉了
嗯,严格说也有别人看不懂的时候,但是哥们你都不知道@Autowired的变量从哪里来的,到哪里去找,我写再多注释有用么?
20楼 @forzaJuve 复杂的逻辑必须重构,拆分成独立的模块,并且名字要一看就懂。名字起得好的话,你看了名字就知道干了什么,把它当做黑盒就行了,还要跳来跳去干嘛?
我们用 code review 流程保证代码可读性。任何人提交的 pull-request 都需要由其他两个人看懂才能通过,合并进 master。如果 reviewer 看不懂你的代码,你必须重构直到别人能看懂为止。就我目前的经验来说,从来没有遇见过无法重构到能看轻易看懂的代码(确实在性能很关键的领域可能没法重构,只能写注释)。
详细的说明文字写进 git commit message 里。如果读代码时不知道某段代码的作用,blame 一下就知道。
如此,代码自身解释了这段代码干了什么;git commit message 解释了为什么要写这段代码。
代码写的看不懂,不去重构代码,用注释这种简单粗暴的方式去隐藏问题,才是真的懒惰。
只写以下几种注释:
1 可以文档化的注释(比如python里的 ''' 这种 ''' , 或者C#里的 ///
最后, 第0点: 代码能自己说清楚的, 不要写注释. 如果代码在当前这个位置,有可能自己说清楚而现在没说清楚, 那么应该重构代码而不是注释. 一旦写了注释,就一定要保证注释和代码一致.
很多其他人回复了从不写注释,觉得代码 "一定" 可以自己解释自己. 我只能说你遇到的情况还太少了. 确实会存在一些无论如何你必须做出取舍的情况,并且牺牲可读性是更好的方案. 那么,你就需要注释.
虽然上面我列了很多条, 但是实际上这很多条大部分都是很少发生的,所以事实上我的代码里注释也是很少的.(除了第一条)
26楼 @jingqq5210 我们自己没有写博客。我们的流程是向 thoughtbot (一家比较有名的 Ruby 咨询公司)学的,他们写了非常多类似的 Topic。
其实这个主题不是写不写注释傻不傻逼的问题,是你当前敲的代码有多大程度需要注释的问题,下面举两个栗子相信大家都能看得懂
当你用python/ruby/swift,用着各种高级语言的特性,面向开发者的角度去编程,完全可以把代码写成文章一样,一眼就能看懂
当你用C/汇编,面对性能问题不得不面对机器编程,使用各种适合机器的特性,不写注释?楼上几位高手帮我看下这段汇编是什么意思,这个寄存器里存的是啥?
事情都没有绝对,都要看情况看环境而定,楼主下次问问题的时候带上你用的什么语言写的什么项目几个人合作
顺便,@tinyfool 的沙发回答已经包含了我的解释,我只是给理解不了的人具体化下场景