“注释: 爱恨交织的双重标准?解析注释在代码开发中的作用。”
文章目录
- 每日一句正能量
- 前言
- 观点和故事
- 程序员不写注释的原因是什么
- 如何才能写出漂亮的注释
- 后记
每日一句正能量
水与水之间有距离,但地心下直相牵,人与人之间有距离,但心里时刻挂念,发条短信道声晚安,梦里我们相见。
前言
代码注释是程序员在开发过程中经常会遇到的问题之一。有些程序员认为注释非常必要,因为它们可以解释代码中的意图和功能。但是也有一些程序员不喜欢写注释,因为他们认为代码应该是自描述的,不应该需要注释来阐明自己的意图。不管是哪种立场,都有它的道理。在这篇文章中,我将探讨程序员对注释的看法,并分享我对于不写注释的程序员的看法。
观点和故事
关于写注释这个事吧,身边的人确实有说好的,也有说不好的。对于初学者来说,我个人还是觉得写注释和有注释会友好一点。再一个,随着时间的推移,有些代码可能自己本人都会忘记,这个是很正常的现象,这个时候就体现出了注释的重要性了。这个在公司的项目本人也确实是经历过这样的事情。对于不想写注释的人来说,理由是写了之后看着会很乱,也有说代码写好了就是最好的注释,对于这两种来说,就需要个人能力的提高了。
还有一个,有些公司是有注释模板以及开发模板的。我自己也写了一篇注释模板,没看过的可以先看一下:
- Java、Android 新建类自动添加头部注释以及如何添加函数注释模板和快捷键
然而,我认为程序员不写注释的行为是需要引起重视的,因为注释是基于文档的编程的一部份,可以帮助团队中其他成员更好地了解代码的运行逻辑和设计意图,也方便后续的维护和升级。
在我的观察中,一些程序员可能会觉得写注释会浪费时间和精力,尤其是当他们写的代码比较短小简洁时,认为代码本身就足够清晰易懂,没有必要再添加注释。其实,这个观点并不准确。编写注释并不一定需要太多的时间和精力,只要能够简洁明了地表达代码的意图即可。同时,在团队合作的过程中,写注释能够帮助其他成员更好地理解代码,减少沟通成本和时间。
我也听说过一些程序员写的代码很难理解,即使是经验较丰富的程序员也很难从中得到需要的信息。这时候,注释能够帮助其他成员更好地理解代码并提高团队效率。在我的经验中,注释可以包括以下信息:
- 代码的功能和作用
- 变量的含义和用途
- 方法的参数和返回值
- 非常规或复杂的算法实现细节
- 这段代码的背景,为什么这段代码需要存在
- 代码的相关限制和注意事项
总的来说,我认为程序员应该养成写注释的好习惯。在进行团队协作开发时,写注释能够帮助代码更好地理解和维护。同时,注释也能够激励程序员更好地组织代码,使代码更易读和易维护。
程序员不写注释的原因是什么
在我的看来,程序员不写注释的原因主要是以下几点:
- 缺乏意识:有些程序员可能没有意识到注释的重要性,或者没有养成良好的注释习惯。
- 时间紧迫:在开发周期紧张的情况下,程序员可能会觉得写注释会浪费时间和精力,因此忽略了对代码的注释。
- 个人编程习惯:有些程序员喜欢自己一个人写代码,习惯于从自己的代码中去理解和解决问题,不太注重写注释。
- 技术水平:一些程序员可能在技术水平比较低的情况下写代码,不了解写注释的重要性和方法,或者不知道如何写好的注释。
- 态度问题:有些程序员可能对写注释抱有消极态度,认为写注释是“烦琐的工作”,并不能直接带来效益,或者认为代码质量足够好,不需要注释。
根据我的经验,如果程序员不写注释,将会导致代码难以理解,团队协作效率降低,并且在维护和更新代码时容易出现问题。因此,我认为程序员应该尽可能地写好注释,并且将其视为代码本身的一部分。同时,团队管理人员也应该引导和鼓励程序员写注释,为项目的顺利进行提供保障。
如何才能写出漂亮的注释
我认为程序员应该养成良好的注释习惯,因为注释对代码的可读性和可维护性都有很大的帮助,特别是在代码需要交接或者长期维护的情况下。如果是时间压力导致不写注释,可以尝试在编写代码的同时逐步添加注释,这样也不会耽误太多时间。
关于写出漂亮的注释,我认为以下几点是很重要的:
-
语言要简洁明了:注释应该用简单明了的语言来表达,而不是使用过于专业的术语和缩写,这样可以让更多人理解。
-
注释要准确:注释应该准确地描述代码的功能和意图,并避免与代码产生歧义。
-
注释要规范:遵循约定俗成的注释规范,例如注释前需要加上符号“//”或“/**/”,注释应排版整齐等。
-
注释要有层次感:代码注释应该有分层次的结构,便于读者阅读和理解,例如可以用标题、段落、列表等形式来组织注释。
总之,写出漂亮的注释需要良好的语言表达能力和规范意识,同时要注重注释的准确性和整体结构。
后记
注释可以让代码更易于理解和维护。当你写代码时,可能很清楚自己的思路,但过了一段时间后,很容易就忘记了当初为什么要写这段代码。这时候,代码注释就非常有用了,能够帮助你记住当时的思考过程和意图,也能够让其他人更加容易读懂你的代码。
另一方面,程序员不写注释可能也有一些原因。有时候,程序员可能觉得代码足够清晰,不需要注释;有时候,程序员可能觉得写注释浪费时间,不如继续写代码;还有些情况下,程序员可能是懒惰或者不重视注释这项工作。
总之,代码注释是非常重要的一项工作,能够提高代码的可读性和可维护性。但是,如何权衡注释与代码编写的效率,需要具体情况具体分析。
转载自:https://blog.csdn.net/u014727709/article/details/133749808
欢迎start,欢迎评论,欢迎指正
相关文章:
“注释: 爱恨交织的双重标准?解析注释在代码开发中的作用。”
文章目录 每日一句正能量前言观点和故事程序员不写注释的原因是什么如何才能写出漂亮的注释后记 每日一句正能量 水与水之间有距离,但地心下直相牵,人与人之间有距离,但心里时刻挂念,发条短信道声晚安,梦里我们相见。 …...
一种基于局部适应度景观的进化规划的混合策略
文章目录 标题摘要结论研究背景研究内容、成果常用基础理论知识潜在研究点文献链接标题 A Mixed Strategy for Evolutionary Programming Based on Local Fitness Landscape 摘要 进化规划(EP)的性能受到许多因素的影响(如突变操作符和选择策略)。虽然传统的高斯突变算子…...
Python数据攻略-Mongodb数仓无法写入方法汇总
Mongodb作为一个非结构化的NoSQL数据库,能存储各种复杂和多变的数据格式,如JSON。这使得Mongodb在实时数据分析和高性能查询中具有优势。 在使用Mongodb的过程中,可能会遇到写入失败的问题。常见的几种情况包括无法建立连接、认证失败和存储限制。 文章目录 诊断问题日志分…...
用什么工具来画UML?
2023年10月9日,周一晚上 目录 我的决定 关于rational rose UML工具有哪些 相关资料 我的决定 我决定用plantUML、draw.io或starUML就可以了 其实没必要在意工具, 重要的是能把图画出来、把图画好画规范, 重要的是知道怎么去画图、把意…...
SQLite3数据类型
存储类与数据类型 NULLINTEGER 有符号整数类型,存储为0,1,2,3,4,6或8个字节,取决于值的大小。REAL 浮点类型,存储为8字节的IEEE浮点数。TEXT 文本类型,将使用数据库指定的编码格式存储(UTF-8,UTF-16BE,UTF-16LE)BLOB …...
K8S:K8S对外服务之Ingress
文章目录 一.Ingress基础介绍1.Ingress概念2.K8S对外暴露服务(service)主要方式(1)NodePort(2)LoadBalancer(3)externalIPs(4)Ingress 3.Ingress 组成&#x…...
flask入门
第一个Flask项目 创建后项目如下图 static存放静态文件,templates存放Jinja2模板,app.py是整个项目的入口文件 我们略微理解下app.py这里的代码 # 从flask这个包中导入Flask类 from flask import Flask#使用Flask类创建一个app对象 #__name__:代表当前…...
掌动智能:性能测试工具优势有哪些
由于应用程序的性能直接影响用户体验和满意度。而性能问题可能会导致应用响应缓慢、崩溃或无法处理大量用户请求。为了确保应用程序的高性能和可靠性,开发团队需要对应用程序进行性能测试。性能测试工具能够模拟真实场景下的负载并监测应用程序的性能表现࿰…...
实现一个简单的线性回归和多项式回归(2)
对于多项式回归,可以同样使用前面线性回归中定义的LinearRegression算子、训练函数train、均方误差函数mean_squared_error,生成数据集create_toy_data,这里就不多做赘述咯~ 拟合的函数为 def sin(x):y torch.sin(2 * math.pi * x)return y1.数据集的建…...
云原生Kubernetes:K8S集群kubectl命令汇总
目录 一、理论 1.概念 2. kubectl 帮助方法 3.kubectl 子命令使用分类 4.使用kubectl 命令的必要环境 5.kubectl 详细命令 一、理论 1.概念 kubectl是一个命令行工具,通过跟 K8S 集群的 API Server 通信,来执行集群的管理工作。 kubectl命令是操…...
Java使用模板导出word、pdf
使用deepoove根据模板导出word文档,包括文本、表格、图表、图片,使用WordConvertPdf可将word文档转换为pdf导出 模板样例: 导出结果: 一、引入相关依赖 <!-- 工具类--><dependency><groupId>cn.hutool&…...
速通Redis基础(二):掌握Redis的哈希类型和命令
目录 Redis 哈希类型简介 Redis 哈希命令 HSET HGET HEXISTS HDEL HKEYS HVALS HGETALL HMGET HLEN HSETNX 编辑 HINCRBY HINCRBYFLOAT Redis的哈希类型命令小结 Redis 是一种高性能的键值存储数据库,支持多种数据类型,其中之…...
WebDAV之π-Disk派盘 + 书藏家
书藏家是一款书籍收藏的软件,对于喜欢阅读书籍的用户来说非常友好,记录你所阅读的书籍内容,对你所阅读的书籍内容进行全方位的管理,并且支持多种录入的方式,不管是实体书籍还是网络书籍都能够进行更为有效的管理;内置WebDAV 模块,更加便利的整理自己的文件资源;书藏家的…...
香港Web3.0生态现状
目前香港Web3.0生态正在快速发展。香港政府和金融机构正在积极推动Web3.0生态的建设,以推动数字经济和智慧城市的发展。香港政府已经发布了有关虚拟资产发展的政策宣言,鼓励和监管并重,加大力度推动虚拟资产产业向前发展。同时,香…...
LLMs之BELLE:源码解读(sft_train.py文件)
LLMs之BELLE:源码解读(sft_train.py文件) 目录 源码解读(sft_train.py文件) # 1、解析命令行参数,包括模型参数、数据参数和训练参数。...
【UE5 Cesium】17-Cesium for Unreal 建立飞行跟踪器(2)
目录 效果 步骤 一、飞机沿航线飞行 二、通过切换相机实现在不同角度观察飞机飞行 效果 步骤 一、飞机沿航线飞行 先去模型网站下载一个波音737飞机模型 然后将下载好的模型导入到UE项目中,导入时需要勾选“合并网格体”(导入前最好在建模软件中将…...
【ElasticSearch】基于 Java 客户端 RestClient 实现对 ElasticSearch 索引库、文档的增删改查操作,以及文档的批量导入
文章目录 前言一、对 Java RestClient 的认识1.1 什么是 RestClient1.2 RestClient 核心类:RestHighLevelClient 二、使用 Java RestClient 操作索引库2.1 根据数据库表编写创建 ES 索引的 DSL 语句2.2 初始化 Java RestClient2.2.1 在 Spring Boot 项目中引入 Rest…...
【Node.js】stream 流模块
流是一种抽象的数据结构。从键盘输入到应用程序就是标准输入流(stdin)。应用程序把字符一个一个输出到显示器上叫做:标准输出流(stdout)。 流的特点是数据是有序的,而且必须依次读取,或者依次写…...
【LeetCode】——链式二叉树经典OJ题详解
主页点击直达:个人主页 我的小仓库:代码仓库 C语言偷着笑:C语言专栏 数据结构挨打小记:初阶数据结构专栏 Linux被操作记:Linux专栏 LeetCode刷题掉发记:LeetCode刷题 算法头疼记:算法专栏…...
代码注释对于程序员重要吗?
程序员对代码注释可以说是又爱又恨又双标……你是怎么看待程序员不写注释这一事件的呢? 代码注释的重要性 代码注释是指在程序代码中添加的解释性说明,用于描述代码的功能、目的、使用方法等。代码注释对于程序的重要性主要体现在以下几个方面&#x…...
TDengine 快速体验(Docker 镜像方式)
简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...
调用支付宝接口响应40004 SYSTEM_ERROR问题排查
在对接支付宝API的时候,遇到了一些问题,记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...
STM32F4基本定时器使用和原理详解
STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...
在WSL2的Ubuntu镜像中安装Docker
Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包: for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...
OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 在 GPU 上对图像执行 均值漂移滤波(Mean Shift Filtering),用于图像分割或平滑处理。 该函数将输入图像中的…...
C/C++ 中附加包含目录、附加库目录与附加依赖项详解
在 C/C 编程的编译和链接过程中,附加包含目录、附加库目录和附加依赖项是三个至关重要的设置,它们相互配合,确保程序能够正确引用外部资源并顺利构建。虽然在学习过程中,这些概念容易让人混淆,但深入理解它们的作用和联…...
GitHub 趋势日报 (2025年06月06日)
📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 590 cognee 551 onlook 399 project-based-learning 348 build-your-own-x 320 ne…...
前端开发者常用网站
Can I use网站:一个查询网页技术兼容性的网站 一个查询网页技术兼容性的网站Can I use:Can I use... Support tables for HTML5, CSS3, etc (查询浏览器对HTML5的支持情况) 权威网站:MDN JavaScript权威网站:JavaScript | MDN...
在golang中如何将已安装的依赖降级处理,比如:将 go-ansible/v2@v2.2.0 更换为 go-ansible/@v1.1.7
在 Go 项目中降级 go-ansible 从 v2.2.0 到 v1.1.7 具体步骤: 第一步: 修改 go.mod 文件 // 原 v2 版本声明 require github.com/apenella/go-ansible/v2 v2.2.0 替换为: // 改为 v…...
