Re: [请益] 写注解到底是不是好习惯

楼主: babelism (Bob)   2018-12-28 22:55:13
先说结论:注解必须写,除非 code 太过简单。
我不相信有“看得懂的命名”这东西。
哪怕是我现在全部写中文,发到网络上,
只要字数多到一个程度,就会有一堆人看不懂中文表达的意思。
更不用说是程式码。
连命名都看不懂,就更要花大量的时间去厘清整个 code 的逻辑才看得懂“写什么”。
看懂写什么之后,更重要的是看懂“为什么”这样写。
而注解,就是一个省下看得懂“写什么”跟“为什么”时间的好东西。
然而,会议跟文件是码农最大的敌人,
在某种程度上,注解也是。
所以注解,在精不在多,在关键不在详细。
注解和 code 是完全相依的,
如果注解既繁且杂没重点,那基本上 code 是垃圾的可能性很高。
善于写 code 的人,要锻练自己写注解的能力。
最好别人不用去 trace code,只要看一遍注解,就可以接手。
所以好的注解,可以引导别人的思路,就跟写小说一样。
---
这就又回到如何写 code 的命题,这里举个例,
每个人习惯不一样,所以姑且参考。
我个人很喜欢 if,但非常讨厌 else。
if 是可控的,else 不可控,思虑再慎密的人,都会败在 else。
透过许多可控的 if,逻辑一脉相承,注解写起来就非常轻松,
只要解释为什么我要用这些 if,跟这些 if 在做什么事。
也许 if 太多很难看,把许多 if 精简后变成短短几行看起来非常炫,
但对于要理解 code 的人来说,反而是要在大脑里把这短短几行,
拆开并还原成所有的 if 条件,再去逐一理解--浪费时间又容易错。
把 if 归纳成 function 之后,对我来说没有什么功能是三个 block 无法说明的。
// if ..., do ...
case -> if -> handling
画成 block diagram 就是一个唬弄客户跟长官的好东西。
好吧这是题外话XD
也许写完这个功能要数百行 code,但注解可能就十几行。
解释一下“写什么”(do) 跟“为什么”(if) 就好。
如果注解写成这样
code .... code ... code ... // comment
在一行 code 后面还要注解这行在干什么,基本上就是一种失败,
因为这表示别人连这一行 code 都得靠注解才看得懂。
失败的不是注解,是 code 写太烂。
作者: Astar5566 (一颗星5566)   2018-12-28 23:04:00
doxygen大法好看开源专案少之又少的注解真的是种磨练
作者: Ghamu (猫丸)   2018-12-29 04:44:00
我觉得我的code是越写越简单 拆分越来越细 不太懂你说除非程式码很简单是什么意思 工程师不是本来就应该要写简单好懂的程式码吗? 简单应该是常态 复杂是非常泰吧?
作者: RapidGrowth (Jasper)   2018-12-29 08:25:00
其实还是有else, 只是被当default case, 我认为这样还是不严谨的
作者: philip80220 (花)   2018-12-29 12:00:00
作者: RapidGrowth (Jasper)   2018-12-29 13:15:00
没有看前篇文章就回了我的看法跟前篇文章是比较相似的。前篇他那种写法只是视觉上难看,其实逻辑上是比较清晰的,非常严谨,真的产品要够stable的话,这些是避不掉的。虽然我觉得有可以深层套嵌的写法,但并不是简单的不处理else分支。更正:有可以避开深层套嵌的写法
作者: kyrie77 (NTU KI)   2018-12-29 20:36:00
推这篇
作者: rofellosx (鏖)   2017-01-02 08:36:00
我比较讨厌各家语言简洁if写法..

Links booklink

Contact Us: admin [ a t ] ucptt.com