“注释: 爱恨交织的双重标准?解析注释在代码开发中的作用。”
文章目录
- 每日一句正能量
- 前言
- 观点和故事
- 程序员不写注释的原因是什么
- 如何才能写出漂亮的注释
- 后记
每日一句正能量
水与水之间有距离,但地心下直相牵,人与人之间有距离,但心里时刻挂念,发条短信道声晚安,梦里我们相见。
前言
代码注释是程序员在开发过程中经常会遇到的问题之一。有些程序员认为注释非常必要,因为它们可以解释代码中的意图和功能。但是也有一些程序员不喜欢写注释,因为他们认为代码应该是自描述的,不应该需要注释来阐明自己的意图。不管是哪种立场,都有它的道理。在这篇文章中,我将探讨程序员对注释的看法,并分享我对于不写注释的程序员的看法。
观点和故事
关于写注释这个事吧,身边的人确实有说好的,也有说不好的。对于初学者来说,我个人还是觉得写注释和有注释会友好一点。再一个,随着时间的推移,有些代码可能自己本人都会忘记,这个是很正常的现象,这个时候就体现出了注释的重要性了。这个在公司的项目本人也确实是经历过这样的事情。对于不想写注释的人来说,理由是写了之后看着会很乱,也有说代码写好了就是最好的注释,对于这两种来说,就需要个人能力的提高了。
还有一个,有些公司是有注释模板以及开发模板的。我自己也写了一篇注释模板,没看过的可以先看一下:
- 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…...
基于Python的线上学习资源智能推荐系统毕设
博主介绍:✌ 专注于Java,python,✌关注✌私信我✌具体的问题,我会尽力帮助你。一、研究目的本研究旨在构建一个基于Python的线上学习资源智能推荐系统,以实现个性化学习资源的精准推送。具体而言,研究目的可概括为以下几个方面&am…...
ASCII码表深度解析:从基础到扩展的全面指南
1. ASCII码的前世今生:计算机世界的通用语言 第一次接触ASCII码是在大学计算机基础课上,教授用"65A"这个简单公式瞬间点燃了我的好奇心。这个看似简单的编码系统,实际上是现代数字通信的基石。ASCII(American Standard …...
银河麒麟V4.0.2-sp4系统初始化实战:网络、DNS与软件源一站式配置指南
1. 银河麒麟V4.0.2-sp4网络配置实战 刚装完系统的银河麒麟服务器就像刚交房的新家,水电网络都没通。作为系统管理员,配置网络就是给服务器"通水电"的第一步。我遇到过不少新手直接照着网上教程操作,结果把网卡配置搞乱导致服务器失…...
opencv利用freetype写中文
1、ubuntu需要安装环境 sudo apt install libfreetype6-dev libharfbuzz-dev 2、opencv和opencv_contril编译,勾选下面按钮 3、下载字体库 https://github.com/StellarCN/scp_zh/tree/master/fonts 下载SimHei.ttf 4、代码 #include <opencv2/freetype.hpp…...
云手机 流畅稳定 操作简单
云手机依托云端服务器集群,配备企业级 GPU和高性能 CPU,通过资源池化技术,将物理算力切割成多个独立安卓实例,每个云手机实例可独占或动态共享强大资源,算力远超本地旗舰手机,能轻松运行大型 3D 游戏等高性…...
Qwen2.5-VL-7B-Instruct部署案例:律所合同图像关键条款高亮+法律依据自动关联
Qwen2.5-VL-7B-Instruct部署案例:律所合同图像关键条款高亮法律依据自动关联 1. 这不是普通OCR,是懂法的视觉助手 你有没有遇到过这样的场景:律所助理收到客户发来的扫描版PDF合同,需要在30分钟内标出违约责任、管辖法院、保密义…...
自动驾驶模拟平台模型配置全指南:从技术选型到场景验证
自动驾驶模拟平台模型配置全指南:从技术选型到场景验证 【免费下载链接】alpasim 项目地址: https://gitcode.com/GitHub_Trending/al/alpasim 一、AlpaSim核心价值:构建自动驾驶研发闭环 AlpaSim作为开源自动驾驶模拟平台,通过模块…...
Vite - vite.config.js 的一些配置(base、resolve、server)
一、base 1、基本介绍 base 用于设置开发或生产环境服务的公共基础路径 类型:string默认值:/2、演示 部署在根路径 base: /// 例如,https://example.com/<!-- 此时生成的 HTML 中的资源引用会变为如下 --><script src"/assets/…...
如何快速实现Obsidian插件本地化:obsidian-i18n完整实践指南
如何快速实现Obsidian插件本地化:obsidian-i18n完整实践指南 【免费下载链接】obsidian-i18n 项目地址: https://gitcode.com/gh_mirrors/ob/obsidian-i18n 你是否曾因Obsidian插件全是英文界面而苦恼?作为中文用户,面对"Backli…...
【数字信号调制】GMSK调制解调系统【含Matlab源码 15239期】
💥💥💥💥💥💥💥💥💞💞💞💞💞💞💞💞💞Matlab武动乾坤博客之家💞…...
