优秀的程序员真的不写注释吗?

优秀的程序员真的不写注释吗?我在很多地方看到这样一个观点,“请停止写注释,因为只有烂的代码才需要注释。”这个观点非常巧妙,它让我想起了孟子的一句话,“杨氏为我,是无君也;墨氏兼爱,是无父也。无父无君,是禽兽也。”动不动就骂别人是“禽兽”,我总觉得有点不妥,这很不符合孟子的浩然之气啊。有些大牛也有孟子这样的觉悟,如果有人要他给自己的代码加上注释,就好像是对他的一种侮辱:“我的代码写得这么优雅,你难道看不懂吗?注释是多余的!”我必须得承认,每个程序员都应该有一颗追求“优雅”的心,力争自己的代码更易阅读和理解——不只是针对机器,还有我

大家好,又见面了,我是你们的朋友全栈君。

我在很多地方看到这样一个观点,“请停止写注释,因为只有烂的代码才需要注释。”这个观点非常巧妙,它让我想起了孟子的一句话,“杨氏为我,是无君也;墨氏兼爱,是无父也。无父无君,是禽兽也。”

优秀的程序员真的不写注释吗?

动不动就骂别人是“禽兽”,我总觉得有点不妥,这很不符合孟子的浩然之气啊。有些大牛也有孟子这样的觉悟,如果有人要他给自己的代码加上注释,就好像是对他的一种侮辱:“我的代码写得这么优雅,你难道看不懂吗?注释是多余的!”

我必须得承认,每个程序员都应该有一颗追求“优雅”的心,力争自己的代码更易阅读和理解——不只是针对机器,还有我们程序员同行。但不是每个程序员在一开始都能写出“高标准”的代码的,就好像不是所有君王和百姓都能搞清楚孟子的治国齐家理念的。

在我刚回洛阳的那段时间,过得非常痛苦。因为我刚接手了别人留下的一个项目,关于大宗期货交易的。后端代码是用 Java 写的,但有很多 bug 在里面,动不动就资金结算失败,甚至内存溢出,要解决这些问题,只有一个办法,就是彻底搞懂这些代码。

否则,根本无从下手。这就好像,你和朋友开车出去自驾游,去很远很远的地方,朋友开累了,需要休息,这时候,如果你没考过驾照,那就抓瞎了,只能把车停路边,等朋友的疲劳消退了,才能继续上路。

我就抓瞎了。凭良心说,前同事留下的代码是精彩绝伦的,如果换做是我来写,真不一定能写得出来。毕竟大宗期货交易本身还是有点难度的,需要竞价撮合,这个业务理解起来比股票还要复杂些。

股票涨了就赚,跌了就亏。期货不同的,买涨能赚,买跌也能赚。不过业务上的复杂还是次要的,重要的是代码里的注释非常稀有,就好像詹姆斯高斯林头上的发丝一样稀有。

优秀的程序员真的不写注释吗?

况且,国内程序员的英语功底你懂的,变量、方法、类、接口、枚举的命名无法做到真正意义上的名如其意。再加上,有些方法的行数多达三四百行,从头看到尾,看得只想捶自己。

没办法,我的解决办法就是,看懂一行就加一行注释,毕竟注释总比代码要容易理解啊。就好像,我们在调用一个不熟悉的 API 时,只要代码的文档说清楚它是干嘛的,我们就可以用,就敢用,至于实现的细节,暂时没有理解也没关系。

差不多花了两个月的时间(非常漫长、非常煎熬)吧,我总算是把项目中核心的代码给研究清楚了。搞清楚之后,那些之前怎么改都改不掉的 bug 也就迎刃而解了。

这也就是为什么,我倡导大家去读源码的一部分原因了,除了学习,读源码是解决 bug 的杀手锏。要读懂源码,注释是必不可少的。不信,你看看 Java 的源码,每个变量、每个方法、每个类,注释都非常详细,详细到你替源码的作者感到心累。

在我看来,Java 源码的作者绝对是这个世界上最优秀的程序员,连他们都写注释,那些声称“请停止写注释”的号召者是不是要啪啪啪地打脸,直到打肿为止。

优秀的程序员真的不写注释吗?

不要怀疑自己,写注释并不会证明你的代码就是烂代码。我相信,你应该买过电子产品,比如说鼠标、键盘、耳机、手机等等,所有的产品包装里除了产品本身,使用说明书是必不可少的。我就问一句,“手机没有使用说明书,咱这些后浪还能不会用?”

写注释不是我们的错,软件本来就是复杂的。尤其是我们这些英语不是主力语言的人来说,注释显得尤为重要。我可能属于记忆力不好的那一种,隔个十天半个月,再去回头看那些我自己敲的代码,有时候真有点见着陌生人的感觉:“这代码是我写的吗?怎么有点面生啊?”

大部分人写的代码都要升级重构,对吧?不论是语言本身版本的升级,还是我们自身能力的成长。假如在升级重构的时候,没有这些注释的帮助,真有点爬泰山的感觉,累啊,亲。

再者说,大牛也不敢保证自己的代码是没有问题的,对吧?但注释是不会骗人的,它的意义是明确的。你可能会忘记代码是干嘛的,但我敢保证,注释能够唤醒你的记忆。

优秀的程序员真的不写注释吗?

写出好的、有意义的注释其实是有难度的,就像写代码一样。在追求卓越的路上,代码和注释其实是相辅相成的。注释会让你的代码更易阅读,代码会让你的注释更富有逻辑。

即便是你的代码已经优雅到不需要注释,那只是在你的层面上。对于你的同事,你代码后来的负责者,就不一定了。所见略同的英雄并不会很多,你以为很优雅的代码没准在别人眼里就是一坨垃圾,而你的注释很可能会帮助别人“恍然大悟”,明白代码的意义。乖乖地写注释吧,对你对别人都有好处。

另外,我想说一句,注释就好像是代码的一个蓝图,也或者是对代码的一个总结。在你写代码之前,脑子里肯定要想清楚你要实现什么,怎么实现,把这些作为注释写下来绝对可以帮助你写出更优雅的代码。在代码写完之后,通过注释进行总结,还能对代码进行一些升华,没准还能在总结的过程中想到更好的代码方案。

我还见到有大牛信誓旦旦地说,写注释就好像是给不会游泳的人扔一个救生圈,他永远也学不会游泳。咋眼一看,这句话说得很有道理,对吧?在大牛们看来,要让一个新人快速成长,最好的办法就是把没有注释的代码扔给他看。

纯属扯淡,恐怕这个新人没入门就放弃了吧?我已经三十一岁了,不,我已经十八岁了,还不会游泳呢?别听那些大牛们的鬼话,我就不信,他自己没写过注释。

优秀的程序员真的不写注释吗?

总之一点,注释并不会妨碍你写出优雅简洁的代码,它只是程序固有的一部分而已

如果觉得文章对你有点帮助,请微信搜索「 沉默王二 」第一时间阅读。本文已收录 GitHub,传送门~ ,里面更有大厂面试完整考点,欢迎 Star。

我是沉默王二,一枚有颜值却靠才华苟且的程序员。关注即可提升学习效率,别忘了三连啊,点赞、收藏、留言,我不挑,嘻嘻

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/139164.html原文链接:https://javaforall.net

(0)
上一篇 2022年5月30日 上午11:00
下一篇 2022年5月30日 上午11:00


相关推荐

  • 7月上旬国内网站流量统计TOP5:新浪跻身五强居四

    7月上旬国内网站流量统计TOP5:新浪跻身五强居四

    2021年9月7日
    78
  • Hasor Dataway使用教程

    Hasor Dataway使用教程绝了 这款工具让 SpringBoot 不再需要 Controller Service DAO Mapper 来自 开源中国 作者 哈库纳链接 https my oschina net ta8210 blog Dataway 介绍 Dataway 是基于 DataQL 服务聚合能力 为应用提供的一个接口配置工具 使得使用者无需开发任何代码就配置一个满足需求的接口 整个接口配置 测试 冒烟 发布 一站式都通过 Dataway 提供的 UI 界面完成 UI 会以 Jar 包方式提供

    2026年3月17日
    2
  • 使用 Cursor 接入 PoixeAI API 的实用指南

    使用 Cursor 接入 PoixeAI API 的实用指南

    2026年3月16日
    2
  • pycharm不联网能运行吗_pycharm连接调试器失败

    pycharm不联网能运行吗_pycharm连接调试器失败第一步:查看你的计算机是否安装了严密的防火墙,当你开始运行编写的网络程序时他都会发出警告并且禁止你的程序连接网络你要对防火墙进行配置,让他允许你的程序或者直接关闭防火墙(慎重考虑)如下图直接关闭防火墙或者对防火墙进行设置(只要选中这两个勾,在你执行的时候会提示你是否允许XXX连接网络)第二步:因为有些代码里面可能需要根据主机名称来去本地的DNS里找对应的IP地址,由于本地的DN…

    2022年8月27日
    8
  • IntelliJ IDEA 如何创建一个 Java 项目

    IntelliJ IDEA 如何创建一个 Java 项目一、创建Java项目1.选择一个文件夹,鼠标右击OpenFolderasIntellliJIDEAProject(作为intellijidea项目打开文件夹),打开之后应该是一个初始界面2.选择File—>New—>Project3.选择一个电脑本机的JDK4.NewProject:可以不勾选,直接NEXT5.选择新项目名称,新项目路径,然后Finsh,在新打开的页面选择NewWindow6.创建Java项目成功二、创建Java文件1.右击src—&gt

    2022年7月9日
    83
  • Anchorpoint_the mythology handbook

    Anchorpoint_the mythology handbook之前做一个imageview的transform的动画,从scale(1,1)变成scale(0.3)

    2022年10月8日
    8

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号