首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

如何优雅地写注释:找到代码注释的黄金平衡点

编程知识
2024年07月23日 07:46

在软件开发的世界里,注释是代码的伴侣,它们帮助我们记录思路,解释复杂的逻辑,以及为后来者提供指引。然而,注释的艺术在于找到恰当的平衡——既不过于冗余,也不过于吝啬。本文将探讨如何优雅地写出恰到好处的注释。

注释有啥用

首先,我们需要认识到注释的价值。好的注释可以:

  • 提高代码的可读性:让其他开发者或未来的你快速理解代码段的功能和目的。
  • 促进团队协作:在团队项目中,清晰的注释可以减少沟通成本。
  • 加快调试过程:当出现问题时,注释可以帮助快速定位问题所在。

所以,必须写注释。当阅读源代码时,没有注释会使大脑负担加重,就像你去查看Spring的源代码一样,几乎没有注释。你能看到的只有在抛出异常时提供的少量信息。因此,并不是大多数程序员不理解Spring,而是有时候它并不打算让人轻易理解。

image

注释原则

要写出优雅的注释,可以遵循以下几个原则:

  • 相关性:只对重要的逻辑和决策进行注释,避免对显而易见的代码进行注释。
  • 简洁性:注释应简洁明了,避免冗长和啰嗦。
  • 清晰性:确保注释清晰表达其意图,避免模糊不清的描述。
  • 更新性:随着代码的更新,及时更新相关的注释,避免产生误导。

以下就是一些奇葩注释反例,值得深思:

/*

*你可能觉得自己看懂下面的代码了,

*然而你并没有,相信我。

*糊弄过去算了,不然你会好多个晚上睡不着觉,

*嘴里骂着这段注释,觉得自己很聪明,

*真能“优化”下面的代码。

*现在关上文件,去玩点别的吧。

*/
//我也不确定我们到底需不需要这个,但是删了又特害怕。
//他们让我写的,非本人自愿。

实践技巧

在实际编码中,以下是一些有用的注释技巧:

  • 函数和方法注释:为每个函数和方法提供简短的描述,包括其参数、返回值和可能抛出的异常。
  • 复杂的逻辑块:对于复杂的逻辑,提供简短的解释,帮助理解其目的和工作原理。
  • TODO注释:使用TODO来标记需要进一步处理或改进的地方。
  • 假设和决策:对于基于特定假设或决策的代码,注释这些假设和决策的原因。

例如,现在有许多AI编码工具可以帮助我们编写代码,这些工具基本上能显著减少我们的打字时间。利用节省下来的时间,我们可以更专注于优化注释内容。这不仅有助于提升我们自己对代码的理解,也能极大地帮助其他人更快地掌握和维护代码。

image

总结

优雅的注释是一种平衡艺术,它要求我们在不牺牲代码清晰度的前提下,避免过度注释。通过遵循上述原则和技巧,我们可以写出既有助于自己,也有助于他人的注释,从而提升代码的整体质量和可维护性。

记住,注释的目的是为了沟通,无论是与未来的自己,还是与现在的团队成员。找到那个黄金平衡点,让你的代码因优雅的注释而更加生动。

From:https://www.cnblogs.com/guoxiaoyu/p/18313588
本文地址: http://www.shuzixingkong.net/article/314
0评论
提交 加载更多评论
其他文章 英伟达又向开源迈了一步「GitHub 热点速览」
大家是否还记得 2012 年,Linux 之父 Linus Torvalds 在一次活动中“愤怒”地表达了对英伟达闭源 Linux GPU 驱动的不满?这个场景曾是热门表情包,程序员人手一个。
英伟达又向开源迈了一步「GitHub 热点速览」 英伟达又向开源迈了一步「GitHub 热点速览」 英伟达又向开源迈了一步「GitHub 热点速览」
Known框架实战演练——进销存基础数据
本文介绍如何实现进销存管理系统的基础数据模块,基础数据模块包括商品信息、供应商管理和客户管理3个菜单页面。供应商和客户字段相同,因此可共用一个页面组件类。 项目代码:JxcLite 开源地址: https://gitee.com/known/JxcLite 1. 配置模块 运行项目,在【系统管理-模
解密prompt系列34. RLHF之训练另辟蹊径:循序渐进 & 青出于蓝
前几章我们讨论了RLHF的样本构建优化和训练策略优化,这一章我们讨论两种不同的RL训练方案,分别是基于过程训练,和使用弱Teacher来监督强Student 循序渐进:PRM & ORM 想要获得过程
解密prompt系列34. RLHF之训练另辟蹊径:循序渐进 & 青出于蓝 解密prompt系列34. RLHF之训练另辟蹊径:循序渐进 & 青出于蓝 解密prompt系列34. RLHF之训练另辟蹊径:循序渐进 & 青出于蓝
C#开源、简单易用的Dapper扩展类库 - Dommel
前言 今天大姚给大家分享一个C#开源(MIT License)、免费、简单易用的Dapper扩展类库,帮助.NET开发者使用Dapper的CRUD操作变得更简单:Dommel。 项目特性 Dommel 使用 IDbConnection 接口上的扩展方法为 CRUD 操作提供了便捷的 API。 Dom
C#开源、简单易用的Dapper扩展类库 - Dommel C#开源、简单易用的Dapper扩展类库 - Dommel
.NET跨平台UI框架Avalonia 11.1重磅发布
本篇为译文 原文地址 https://avaloniaui.net/blog/avalonia-11-1-a-quantum-leap-in-cross-platform-ui-development github地址 https://github.com/AvaloniaUI/
.NET跨平台UI框架Avalonia 11.1重磅发布
微软CrowdStrike驱动蓝屏以及内核签名
原因 当Windows操作系统遇到严重错误导致系统崩溃时,屏幕显示为蓝色,通常伴有错误代码和信息,这被称为“蓝屏死机”(Blue Screen of Death,简称BSOD) https://www.thepaper.cn/newsDetail_forward_28126297 这次蓝屏事件影响非
微软CrowdStrike驱动蓝屏以及内核签名 微软CrowdStrike驱动蓝屏以及内核签名
兼容sentry协议的轻量级监控,glitchtip
前言 上一篇文章说了重启 sentry 的事 因为过程太折腾了,一度想过放弃 sentry 换成其他比较轻量级的开源监控系统 这不就给我找到了另外俩个 https://glitchtip.com/ https://www.highlight.io/ 这次就来试试这个 glitchtip 用了之后才发
BTC 地址
比特币地址(Bitcoin Address)是用于接收和发送比特币的唯一标识符,类似于传统金融系统中的银行账号。一个比特币地址由一串字母和数字组成,通常以1、3或bc1开头,具体长度为26至35个字符。以下是比特币地址的主要类型及其特点: P2PKH地址(Pay-to-PubKey-Hash): 以
BTC 地址