当前位置:首页 > 每日看点

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

卡卷网1年前 (2025-01-11)每日看点240

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

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

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

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

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

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

    使用描述性的变量名:有意义的变量名可以减少对注释的依赖。例如,在一个扫雷游戏代码中,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.首先去申请个体户,这个可以用住宅来注册申请,而且速度很快就几天就下来了,经营类目主要是互联网销售这些…

请问什么软件支持看电视直播?

请问什么软件支持看电视直播?

2024年9月6日最新更新:本文列举的 所有看电视直播、或流媒体影视资源点播的软件,我这两天又重新梳理成最新版本,最大程度保证可用性。获取方式见文末图片,或见评论。后续我也将持续更新,文章是旧的软件也会是新的,保证你拿到的都是最新可用版本。…

我爸讽刺我,写个破代码一年才十几万,他在工地带50个人,让我回去跟他干,写代码没出路,我该怎么选择?

我跟你一样的情况,本人现身说法,千万不要跟你爸干,我就是反面教材,现在想回去都回不去了,快十年没写代码了,再就是岁数大了,38岁了,35岁以上的码农根本就没公司愿意要,而且会受歧视。 工程不好干,首先就是不合法,在法律层面,根本就没有包工头…

苹果为什么不做千元机?

苹果为什么不做千元机?

第一步,打开苹果官网,注意是.com,不是.cn; 第二步,点击iPhone,选择Compare iPhone; 第三步,选择最新iPhone 15系列,查看起售价格,分别为$1199,$999,$799。 这不妥妥的千元机吗,怎么苹果…

用红米手机会很丢人吗?

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

有哪些是你用上了mac才知道的事?

用上了高端的Mac(已退货)才知道:原来文件夹里面的文件,你看到是8个,其实可能有12个。其中3个图标重叠在一起了,另外一个被拖动到屏幕外面了。 用上了高端的Mac(已退货)才知道:原来鼠标灵敏度有问题是因为系统内置了鼠标加速度,只能用控制…

发表评论

访客

看不清,换一张

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