Android到底要不要写注释

先来灵魂一问,大家平时开发,写不写注释的都,我先来,方法加注释?不存在的。类注释?想多了。网络请求解析实例元素注释,这个确实要写点,不然都不知道是个什么玩意。不要说什么字段名就是最好注释,这个的前提是,用词准确并且阅读理解的水平相近,不然,那就是呵呵。

那么大家为什么不爱写注释,至少我自己不爱写就几个原因,1 懒。2 快速迭代就够烦了,谁还折腾这个,bug都还没改完呢。3 光我一个人写,其他小伙伴不写也没劲啊,我自己写的代码,写不写注释我自己都还有点印象,我写了注释,只是方便其他人理解,我自己接手修改别人负责的内容时,还是没注释啊,注释写得不够明白的不也折腾。4 注释其实是需要更新的,尤其是方法注释,某个版本修改某个功能后,如果注释忘记更新,那也是会有误导性的,尤其是注释参数需要足够明确参数范围和用法。

但是注释真的能一点都不写吗,那肯定不行的,坑人坑己,时间长了自己坑自己,所以我总结了下,在最懒的情况下,有这么些注释是值得去写的,而且基本是一次性的,创建的时候顺手写上完全不碍事,并且最好强制同项目小伙伴严格执行。结合实际来说,我经常遇到后台,测试,产品,拿着手机就过来问,这个页面的这个啥能不能改,这个页面用到了哪些接口..等等等等。一般来说,如果这个页面刚好是自己做的,那还有点印象,在哪个包,哪个Activity或者Fragment,但如果不是,那就只能,等等我先找找,每次都这样不累么。其实基本上大部分应用,每个activity或者fragment对应的都是特定职能的页面,而且大多数页面都是有标题的,比如什么,"设置"页面,"修改XX密码"页面,"关于"页面等等。所以,在创建类的时候,顺手写上是值得且有用的。
比如:

 /**
 * 总资产页面
 */
 public class TotalAssetActivity extends BaseActivity{}
/**
 * 历史消息页
 */
public class FragmentHistoryMessageHome extends BaseFragment{}

诸如类似,这样以后不管谁找来,只要主题明确,在studio中ctrl+h一把就能快速定位


图1

重点就是注释明确不要瞎写,结合应用体现中心主题,别瞎搞不好理解的就行。

第二类非写不可的注释,那就是网络接口定义注释,还是实际问题。
后端同事:能不能帮我看看这个接口哪些页面会调用到。
我:??什么接口。
同事:查询XX数据的接口。
我:哦,等我先找找这个接口定义在哪。
然后找到后再来一顿ctrl+g搜索一把,最后找到定位。

那么如果加了注释,会不会方便很多呢。由于大部分接口职责单一的特殊性,其实道理和activity一样的,创建的时候,就决定了这个接口是干嘛用的,需求会明确到那些界面会使用,并且这个作用后期并不大可能修改,涉及到修改的,通常考虑兼容性会选择新增功能接口,所以这个注释也是可以在一开始就确定的。
比如

   /**校验短信验证码
   * @since v1.5
   * @see com.xxx.xxx.ui.dialog.sms.CommonSMSCodeDialogEventHandler
   * @see com.xxx.xxx.ui.fragment.VerifySMSFragment
   */
  public final class CheckSMSCodeRequest extends BaseRequest<CheckSMSCodeResult> {}

主要推荐两个元素 1 功能描述,这个接口用来干嘛的写清楚(特别强调,推荐写在文档注释第一行) 2 文档注释中的 @see 标记,其实改成{@link}也可以。使用see标记,能够使文档注释直接点击跳转到指定的页面类,而且写注释的时候这个过程是便捷化的,并不用一个字一个字敲,基本向上面的,打个@see verify,studio就智能引出可选类了,谁用谁知道。
可选标记@since 这个是个人习惯问题,哪个接口,是哪个版本迭代才增加的,标记一下,顺手的事,方便事后分析,因为会有同类型接口在某个新版本加入,用来逐步替代某个版本的老接口,但是有些人又不清楚的,会需要区分,同时老接口打上@Deprecated 。
当所有定义的接口都严格注释后,新世界来了,android studio下选中代码主包,然后来这么一下


图2

别忘了加参数 -encoding utf-8 -charset utf-8

就会得到一份传统的java doc文档,没有注释的类我们不管,我接口都放在同一个子包下,程序包中选中接口所在包,随便选一个接口类切换到程序包,就会看到
图3

并且点击进去后,可以很方便的看到该接口用在了哪两个类
图4

结合一开始说的页面注释,已经方便很多了,这样至少以后别人问起来,或者自己找起来,不再那么狗血。
最后说一下,定义接口解析实例对象的字段属性,也一定要注释,不然,谁来都受不了,哪怕只是漏一个,以后都有可能是坑,人员来来去去,完全不知道这个字段是什么意思,要去翻用在哪,怎么用,来反推这个字段的意义,贼坑啊。

最后,愿大家接盘项目都有注释,只要人人做到了写好注释,那在填坑的路上,不至于一脚踩得太深。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,294评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,780评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,001评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,593评论 1 289
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,687评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,679评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,667评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,426评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,872评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,180评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,346评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,019评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,658评论 3 323
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,268评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,495评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,275评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,207评论 2 352

推荐阅读更多精彩内容