美文网首页
客户让你给代码加注释怎么办?

客户让你给代码加注释怎么办?

作者: 袁慎建 | 来源:发表于2020-05-18 21:30 被阅读0次

作为乙方,我以前听过一些同事说客户要求给代码加注释,一开始自己不以为然,直到有一天这件事情发生在我身上:某大有可为的项目接近尾声,准备下项目前一周,PM说接到客户的诉求,要求给代码加上注释,听到这个信息,内心蛮崩溃的,团队所有开发人员都把大大的拒绝写在脸上,PM也一脸无奈的疯狂吐槽。

怎么办,你以为我们会这么乖乖的听话,去吭哧吭哧的无脑加注释吗?并没有,毕竟这跟我们的做事的价值观发生了冲突的,不能因为客户的一个要求就去满足,虽然客户是上帝。

我们后来通过多次沟通,成功说服客户放弃这个念头,当然也了解客户提这个要求背后的担心点 -- 之前合作的一些Vendor写的代码是在是没法看懂,基本上都会要求他们把注释写齐全,有时候会作为验收标准。

所以客户要求加注释,并不是代表客户认为注释是个好东西,只是因为他没法通过其他手段来保证系统的可维护性,退而求其次,尝试通过一刀切来管理Vendor。

回到注释问题的本身。注释很早前被Martin Fowler在《重构》一书中列为一种代码坏味道,一些真正的敏捷开发者也非常赞同注释是一种代码臭味,但是他们也提到是有特例的。一些挤入软件开发的新人,可能会不明就里的走两个极端:

  1. 一行代码得配一行注释,代码无注释不欢。
  2. 拒绝任何注释,代码只为自己代言。

先下结论:凡是走极端的事情都可能有问题 -- 《中庸》一书中没提到过

讨论注释好不好之前,还是要回答为什么,你为什么需要添加注释?注释在解决你什么问题?同时又会有什么副作用?如果连这三个问题都没有思考过就去加注释,那你很可能就是在无脑添加注释,坏处多多。

  • 我这代码太长了,干了5件事情,我要在每件事情前说明一下
  • 我没有想到好的英文名字,我还是用中文解释一下吧
  • 我这个代码用了缩写,可能别人看不懂,不如来点注释说明一下
  • ......

以上理由的初衷都是好的,好像都是想让别人看懂自己的代码,但这种做法犹如茅房很臭,想让上厕所人的好受一点,于是买了一盒增香剂放到茅房中,你猜猜结果会怎样,非常奇特的“香臭味”,刺鼻难闻。这个时候你应该想办法让茅坑不要那么臭。同理,这个时候你就应该让代码本身就能表达意图,这才是治根的方法。

  • 干了5件事情,拆成5个方法,把你的注释用在方法命名上
  • 没想到好的英文名,去查词典,问同事,起名字哪那么容易搞定
  • 缩写很酷吗?自己都觉得不好意思给别人看的代码怎么好意思写出来

当然还有一个直击灵魂的问题:后期,你的代码修改改了,注释会被改吗?通常是不会,别抬杠说你会改,好好想想你改过没有!代码改了,注释没改,就等于撒谎的注释,简直就是罪大恶极。怎么避免,逼自己不要写注释,当你感觉需要添加注释的时候,先尝试重构,试图让注释变得不再必要。

当然也不要走极端,毕竟编程不是1+1=2这么简单事情,什么样的场景你都可能遇到,而不是什么样的场景都能应对如流的。

  1. 比如,有时候实在很无奈,写了一段颇有苦衷的代码,这时候就用注释来解释一下为什么这么做吧,好让读者知道原由。
  2. 比如,代码需要标注法律信息,审计要求,或者版权要求,想做一个好公民,避免出差错,来点注释吧。
  3. 比如,你要写一个公开于世界的API,造福人类(程序员),你需要提供一些详尽的API文档信息和版本变迁信息,加点注释吧,毕竟你要以最低标准要求你的用户

当然我尝试给写注释赋予了一个原则 -- 解释Why,高于广播How

到此,你认为什么时候应该加注释、什么时候不应该加注释呢?

相关文章

  • 客户让你给代码加注释怎么办?

    作为乙方,我以前听过一些同事说客户要求给代码加注释,一开始自己不以为然,直到有一天这件事情发生在我身上:某大有可为...

  • iOS 注释

    1、规范的注释让代码更好看 2、规范的注释让代码更实用 注释(单行注释) /* <##> */ 注释(预编译注释...

  • Python编程快速注释方法

    1、注释单行 (1)方法1:直接在单行代码前边加 # (2)方法2:选中需要注释的代码,Ctrl+/ 即可注释 2...

  • JSP基础

    1.JSP注释1./........./ Java代码注释,页面不显示,客户端不可见2<!-- ..... --...

  • Python之IDE pycharm

    1.注释中含有中文 报错 #注释,#后的注释为中文,报错 在代码第一行加#coding=utf-8

  • jsp中的三种注释方法

    这是不安全的,而且会加大网络传输量 <%--这是JSP注释客户...

  • 必须知道的C语言知识细节:注释三种使用方式区别

    注释的作用是给代码做说明,方便别人阅读和理解代码,写注释是很好的编程习惯。编译器会直接忽略代码中的注释,注释不对程...

  • Day02 python基本语法、数据类型、变量、运算符

    基本语法 1、注释: 写在代码中,不参与编译和执行的用来解释说明的语句。 单行注释: 在文本前面加#。 多行注释:...

  • 2022-10-15-整洁代码的注释与格式

    继续读《代码整洁之道》。 注释 认为写注释就表示一种失败,因为你的代码让人不明白,才需要注释,某种程度上来说也不无...

  • day2总结

    1.python基础语法 1.注释 注释只是对代码进行解释说明的文字。1.单行注释就是在注释文字前加#示例: 2....

网友评论

      本文标题:客户让你给代码加注释怎么办?

      本文链接:https://www.haomeiwen.com/subject/ocgpohtx.html