想问一下大家平时写代码注释的习惯是怎么样的 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
spoonwep

想问一下大家平时写代码注释的习惯是怎么样的

  •  
  •   spoonwep
    spoonwep 2014 年 6 月 10 日 6080 次点击
    这是一个创建于 4336 天前的主题,其中的信息可能已经有所发展或是发生改变。
    尝试过一边写代码一边写注释,感觉非常乱,有什么提高写代码注释效率的方法吗
    22 条回复    2014-06-12 11:54:19 +08:00
    PrideChung
        1
    PrideChung  
       2014 年 6 月 10 日   5
    把写注释的时间用来起一个好的变量名
    sandtears
        2
    sandtears  
       2014 年 6 月 10 日
    窝一般习惯是每次写到 if 或者 for 语句的时候写几句简短的注释,写完比较麻烦的逻辑之后写一点注释。

    至于那种对于整个函数、整个类的注释,就是某个参数干嘛的、某个返回值干嘛的的那些,一般是后期补的。
    chmlai
        3
    chmlai  
       2014 年 6 月 10 日   1
    把 stackoverflow 的地址贴上.
    chairuosen
        4
    chairuosen  
       2014 年 6 月 10 日
    不写注释....变量名自解释
    yukirock
        5
    yukirock  
       2014 年 6 月 10 日
    先或文,一一整理,最後再代。
    palmers
        6
    palmers  
       2014 年 6 月 10 日
    喜欢 行注释 注释别人的代码就使用段注释
    zhenghuiy
        7
    zhenghuiy  
       2014 年 6 月 10 日
    @PrideChung 同意。但比较复杂的地方也会写一下注释
    TankyWoo
        8
    TankyWoo  
       2014 年 6 月 10 日
    Clean Code里说过,大意是:

    写注释,因为自己的表达能力不够,无法用代码来表达意图

    当然,也不是说不能写注释,适当的写注释不会太多,应该也不会导致乱吧。
    dorentus
        9
    dorentus  
       2014 年 6 月 10 日 via iPad
    写 TODO 的时候可能会写解释性的注释简述实现方法,实现完了就删掉了。
    jsonline
        10
    jsonline  
       2014 年 6 月 10 日
    变量名+2048
    hourui
        11
    hourui  
       2014 年 6 月 10 日
    用同样的风格对齐就行了, 视觉上的排版一致性, 能直接影响到视觉快乐度.
    怎么排, 不用太在意, 排出风格, 排出个性即可.
    akfish
        12
    akfish  
       2014 年 6 月 11 日
    找个Code Doc的生成工具(如doxygen),然后按这个工具的格式撸注释,一般而言主要着重注释类、方法、参数等接口性质的东西,养成习惯后,代码写完,API文档也有了。
    具体实现代码也就在重要的地方意思下就行了,真的需要事无巨细详细说明的,还不如另外写design document。

    当然,如果编程语言是类似CoffeeScript这种的,可以试试literal programming的注释风格,注释比代码还多,更像是写篇blog,中间插入代码块。
    然后同样可以用工具生成页面,比如CoffeeScript的源代码全是这样搞的,生成的页面很清晰:
    http://coffeescript.org/documentation/docs/coffee-script.html
    lm902
        13
    lm902  
       2014 年 6 月 11 日 via Android
    用好的名字,例如用GetServerConfigurationInformation(credential, "usessl"),而不要用getconf(login, true)
    lightening
        14
    lightening  
       2014 年 6 月 11 日
    不写注释,看不懂的代码就抽象成一个方法,起个好名字。

    实在要说明,放在 git commit messages 里面。
    yangff
        15
    yangff  
       2014 年 6 月 11 日
    c++
    在class和namespace的"}"后面加上一个注释 " // namespace XXX" " // class XXX"
    别的基本没有了。。
    jsonline
        16
    jsonline  
       2014 年 6 月 11 日 via Android
    @lm902 永远没有必要在变量名里加 information 等单词,因为所有的变量都是 information。
    同理永远不要用 flag 命名一个 bool,因为所有的 bool 都是 flag。
    spoonwep
        17
    spoonwep  
    OP
       2014 年 6 月 11 日
    @PrideChung
    @chairuosen
    @TankyWoo
    @jsonline
    @lightening
    有时候公司会要求写代码注释,而且还有比例和格式的要求……
    spoonwep
        18
    spoonwep  
    OP
       2014 年 6 月 11 日
    @yukirock 可以试试,我也比较喜欢有条有理一点
    spoonwep
        19
    spoonwep  
    OP
       2014 年 6 月 11 日
    @akfish 好像是个很棒的工具,感谢推荐~赶紧去尝试一下
    spoonwep
        20
    spoonwep  
    OP
       2014 年 6 月 11 日
    @lm902 这样好长啊
    lightening
        21
    lightening  
       2014 年 6 月 11 日
    @spoonwep 好吧,我们公司的 code style 要求尽量不写注释,除非有非要写注释的理由。因为注释很容易导致不一致(更新了代码,没更新注释)。
    spoonwep
        22
    spoonwep  
    OP
       2014 年 6 月 12 日
    @lightening 各个公司对注释的要求相差还真大
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3022 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 60ms UTC 03:08 PVG 11:08 LAX 20:08 JFK 23:08
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86