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

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

卡卷网10个月前 (01-11)每日看点145

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

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

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

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

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

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

    使用描述性的变量名:有意义的变量名可以减少对注释的依赖。例如,在一个扫雷游戏代码中,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

分享给朋友:

相关文章

app拉新在哪接单?

app拉新在哪接单?

“提供500+款任务”,“一手渠道app拉新项目”,“纯绿色的”,“高佣金”,“当天做当天结/算”,“多年孵化经验”,“独立后台一对一帮扶持”以上这种还有人信吗???作为一个做了三个月时间并且也踩过坑的人告诉你,不要轻易相信发这种广告的,还...

那些极速版软件其存在目的是什么?

那些极速版软件其存在目的是什么?

我看了很多回答,其实都没有回答道点子上。你知道极速版APP为什么叫极速版吗?是他看视频更快吗?显然不是。只是它的安装包体积更小,下载安装速度更快而已,所以叫极速版app。当然啦,现在极速版APP和原声版APP,安装包已经没有区别了,这是因为...

b站真的能自学PS吗?

b站真的能自学PS吗?

看你想达到哪一种程度了,如果你只是平常用PS扣图、调整照片大小、尺寸、简单调个色这样,自学真的挺简单的,B站很多免费的教程都可以教会你这些技巧。但是如果说你想成为专业的设计师或者是商业修图师,无师自通真的非常难,首先你会走很多弯路,不知道怎...

短剧推广怎么做,24年还能赚钱吗?

短剧推广怎么做,24年还能赚钱吗?

首先声明:短剧授权是免费的!短剧授权是免费的!短剧授权是免费的!其次我们再聊聊,短剧推广到底赚不赚钱?多的就不说了,随便上个图片,给大家过过瘾!然后,我们进入主题:0粉丝账号,新手,应该如何申请短剧推广!一、短剧推广变现方式首先,我们先要分...

抖音和快手最大的区别是什么?

1、目标人群定位不同抖音:一二线城市,占比52%,大专学历以上,女性偏多。抖音以年轻群体居多。快手:三四线城市,占比64%,高中学历以下,男女更均衡。快手所覆盖的年龄段范围更广。2、内容创作的形式和深度不同抖音:偏深层,内容的装饰及表达更高...

你每天用来涨知识的手机应用程序有哪些?

你每天用来涨知识的手机应用程序有哪些?

经过深度使用和测评,从100个APP中选出的这35个超实用的app,每一个都是最硬核最有料的涨知识神器!每天打开看看,能让你提神醒脑,眼界大开,成为朋友聚会上的话题王者!双击屏幕取走哦~先放上全部APP目录,有新闻资讯类、英语学习类、读书类...

发表评论

访客

看不清,换一张

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