当前位置:首页 > 每日看点 > 正文内容

最顶尖的程序员是不是不屑写注释?

卡卷网12个月前 (01-11)每日看点168

最顶尖的程序员是不是不屑于写注释?先说结论:<>不完全是</>。

注释可以说是编程中非常重要的一部分,不过优秀的程序员不屑于写「无意义的注释」,他们只专注于编写「有意义的注释」并保持。

并不是所有的注释都是好的。不屑于写注释的情况通常有二。

<>不屑于写注释的情况</>

<>不屑于写注释的情况一:代码可以自解释</>

顶尖程序员会追求让代码自解释,所谓“自解释”指的是代码的结构和逻辑应该清晰到不需要额外的注释来解释。为了让代码自解释,优秀的程序员会做出这些努力:

    使用描述性的变量名:有意义的变量名可以减少对注释的依赖。例如,在一个扫雷游戏代码中,flaggedCellsflags更清晰地表达了变量的用途,读者可以很容易看出这个变量用于存储已被标记的格子列表。保持函数的短小精悍:函数只应该做一件事,并且有一个名副其实的函数名。一个清晰的、功能单一的函数通常不需要注释来解释其目的。如这样的小函数:

//defis_positive(numer):retnnumer>0

    采用模块化设计:将代码分解成模块,每个模块负责一个特定的功能,这样可以通过模块的命名和结构来传达其功能,而不是依赖注释。

在《代码整洁之道》一书中,作者将注释描述成一种失败,当开发者无法找到让代码自解释的方法时,开发者只好无奈地写释。优秀的程序员会追求让代码的逻辑和结构本身提供足够的信息,以减少对注释的依赖。

<>不屑于写注释的情况二:注释会说谎</>

注释可能与代码的实际行为不一致,尤其是在代码更新后没有同步更新注释的情况下。这可能会导致后来的阅读者错误地理解代码,这种情况甚至没有注释更糟糕。

随着项目的演进,保持注释的准确性需要额外的努力。在代码的时候,很少有开发者能够坚持注释。如果注释没有得到适当的,它们就会开始说谎,从而误导读者。于是有的程序员为了节省注释的时间,也为了避免这种最糟糕的情况,就会选择不写注释。

然而,优秀的程序员绝不会为了偷懒而不写注释。必要的注释应该被认编写和,随时保持精确。

<>有必要的注释</>

<>有必要的注释一:解释业务规则</>

尽管我们推崇让代码自解释,但所有的代码都能自解释往往只是一个理想。在许多情况下,注释是必要的。

如说,当代码实现特定的业务规则时,注释可以帮助解释这些规则,尤其是在规则复杂或不常见的情况下。

//defcalculate_discounted_total(items,is_holiday,memer_level):total=0foriteminitems:total+=item.pr*get_discount_factor(is_holiday,memer_level)retntotaldefget_discount_factor(is_holiday,memer_level):#根据节假和会员等级计算折扣系数ifis_holiday:retn0.9elifmemer_level>=5:retn0.85else:retn1.0

//defis_eligile_for_retn(order,item):#根据公司退货政策,只有在购后30天内且商品未开封的情况下才能退货if(datetime.now()-order.date).days<=30anditem.condition=='NEW':retnTrueretnFalse

在这两个例子中,注释解释了产品的具体规则,这对于理解代码的业务逻辑至关重要。

<>有必要的注释二:解释复杂逻辑</>

当业务逻辑复杂时,编写出的代码往往也较难以理解。此时编写注释以解释复杂逻辑是有必要的。

举个实际工作中的例子:

#用户看到的当前页面显示的模式crent_page_mode=None#假设Mode是一个已定义的类#主界面显示的模式,如果用户处于主界面,它和crent_page_mode是等价的。#如果用户不在主界面,它会将主界面的mode记录下来,这样当用户返回主界面时,才能为用户恢复mode。main_page_mode=None#假设Mode是一个已定义的类

这里的两个变量crent_page_modemain_page_mode看起来非常类似。在程序运行时,用户一次只会使用一种mode。当用户从主界面跳转到页面时,页面可能会切换mode,在页面切换mode时,crent_page_mode会随之更新。

当用户再次返回主界面时,我们需要为用户恢复之前在主界面使用的mode。为了实现这一功能,程序员不得不再定义一个main_page_mode以记录主界面使用的mode

在这个例子中,虽然用户一次只会用到一种mode,但代码中却需要定义两种mode,这一点是有些反直觉的。如果不加注释,很容易造成阅读困难。

另外,在团队环境中,注释的作用不仅仅是为了个人理解,更是为了知识共享和团队协作。通过编写注释可以帮助团队成员理解代码的设计意图,以及为什么选择特定的实现方式等等。

所以说,优秀的程序员不是不屑于写注释,而是不屑于写无意义的注释。他们专注于编写有意义的注释,并保持注释的。注释应该是代码的补充,帮助解释代码的意图、复杂的逻辑和特定的业务规则。注释是编程中不可或缺的一部分,它们应该是精确的、有用的且及时更新的。

声明:本文归“力扣”版权所有,如需转载请。

扫描二维码推送至手机访问。

版权声明:本文由卡卷网发布,如需转载请注明出处。

本文链接:https://www.kajuan.net/ttnews/2025/01/8698.html

分享给朋友:

相关文章

现在做抖音的话,还有机会嘛?

现在做抖音的话,还有机会嘛?

之前我问过小杨哥一个问题:“现在抖音还好做吗?”疯狂小杨哥在抖音已经突破1亿粉丝,直播间10w的在线观看人数,日常带货随便一场也是上7位数的数据。现在抖音的市场好像已经被头部占领,资源靠前,普通人似乎已经没有机会了?下面是小杨哥对于做抖音的...

无人机真的是中国领先吗?

无人机真的是中国领先吗?

巧了这是。捡到了一台大疆。应该是别人飞丢的。在草丛中泡过水,轴承锈死,电池鼓涨已,经没有维修价值了。但作为玩电子的,免不了要把它解剖,研究一番。那么,我们看看它的国产化率能有多少吧。图片说话:解释一下吧。图一,高通 美国图二,MPS: 美国...

用红米手机会很丢人吗?

前些日子遇到了一位快递小哥,京东的,签收小哥年纪不算大,目测二十多岁他的手机上全是一道道极严重的划痕,有点卡,他开热点了,热点名就是手机型号,红米9a,我父母的同款现在他那边操作了一会,然后又是我这边操作了一会小哥看着我手机刷刷的,颇有些好...

为什么有人觉得华为mate60只值2000?

为什么有人觉得华为mate60只值2000?

你以为买Mate60的人真的傻?真的那么爱国?国庆前,我家那傻子加价800多买了一台Mate60,当时还被我骂他是傻子。可是他说一回到公司就被老板同事朋友看到,拿去反复查看,都在惊叹他这么快就买到新机。跟亲戚朋友聚会,别人一看就知道他买的是...

PHP承载百万/天 访问量需要用到什么技术?

当年做一个百万PV的商城,也不过是两台2c4g的阿里云虚机罢了(其实一台就够,另外一台主要的逼着大家一定开发的时候一定要有负载均衡和横向扩容的意识)。当时框架还是Thinkphp3.2,框架提高运行效率的开关全打开,标准的lnmp模式,单机...

抖音上有一些账号搬运别人的视频,几乎一模一样,也没判搬运,他们是怎么做到的??

对于任何短视频平台来说,如何用最低的成本快速实现伪原创搬运都是需要解决的问题。所有的短视频平台,包括抖音、快手、tiktok、视频号、小红书、B站,甚至是FB、推特、INS、YouTube,它们的查重技术都是类似的,只要你在网络环境设置得当...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。