如果看待程序员不写注释

程序员对代码注释可以说是又爱又恨又双标……你是怎么看待程序员不写注释这一事件的呢?

程序员们对于注释的态度就像是吃饭时的调味品选择,有人喜欢辣椒酱一抹到底,有人则喜欢清淡一点。有些人可能对别人写的代码不写注释感到恼火,就像吃到一盘美味佳肴时却发现没有调味料,让人有点失望。而有些人则觉得自己写代码要写注释真是麻烦,就像在烹饪时需要花时间准备各种香料一样,有点懒得动手。

但实际上,好的代码就像是一道美味的菜肴,它本身应该有足够的味道和鲜美的口感。注释就像是调味料,它们可以增添额外的风味和解释,让代码更易于理解和维护。所以,写代码不写注释就像是在耍流氓,就像是给别人一份美味佳肴,却没有告诉他们是用了哪些香料一样。

当然,注释也应该适度使用,就像调味料一样,过多或不恰当的注释可能会毁掉代码的口感。所以,作为一个程序员,我们应该努力找到一个平衡点,既能让代码自身清晰易懂,又能提供足够的注释来解释复杂的逻辑和重要的细节,让我们的代码成为一道令人赞叹的美食。

所以,无论是吃饭还是写代码,让我们都努力寻找最佳的味道和平衡,让每一行代码都成为令人愉悦的佳肴!

分享你的观点和故事

当谈到程序员不写注释这一现象时,我认为注释的重要性是不可否认的。注释可以提供关键的信息、解释代码的目的和逻辑、标识潜在的问题等,对于代码的可读性和可维护性起到至关重要的作用。

我在刚刚转行到后端开发岗位的时候,是一家做Cad二次开发的公司,感觉他们对注释和代码规范没有太多的要求,只要做出来功能就好了,代码里面只有很少的注释。那时候刚刚接触C#没多久也不太会查API文档,所以看起来他的代码还是非常难懂的。

没多久我就回了家那边找了一家做工控的公司(黑龙江几乎没有做Cad二开的),入职之后负责给公司唯一一个C#老哥打打下手,改改小bug。克隆下来项目直接傻眼了,太复杂了,好在注释什么的都很全,该改哪里虽然代码看不太懂,但是中文注释看得懂(滑稽)。感觉注释还是需要写的,偶尔想起来了我也会在自己代码上写一些小注释。

后来放假闲的在家,到咸鱼上接了一个Cad二次开发的小活,习惯性的没咋写注释。提了吐露干完了,干的突鲁反仗的。因为沟通的原因,前面理解错了,需要我从头(第一个功能)那里改。这时候我才深深的意识到代码注释的重要性。

然后,我开始给代码添加注释,解释每个函数的功能、参数的含义以及一些重要的决策。这样,不仅是为了方便他人阅读和维护代码,也是为了自己以后回顾代码时能够更快地理解。这个过程让我意识到,注释不仅仅是为了别人,也是为了自己,它可以成为一种记录和思考的工具。

你认为程序员不写注释的原因是什么

  1. 时间压力:在项目开发过程中,程序员可能会受到时间限制,需要尽快完成任务。在这种情况下,他们可能会把注释放在次要位置,以便更多地专注于代码的编写和功能的实现。

  2. 自信与假设:某些程序员可能对自己的代码非常自信,认为代码本身足够清晰易读,不需要额外的注释。他们可能假设其他人能够轻松理解他们的代码,而忽视了其他人可能面临的挑战。

  3. 忘记或懒惰:有时程序员可能会忘记或懒得写注释。他们可能觉得注释是一项繁琐的任务,会占用他们的时间和精力,因此选择跳过注释的编写。

  4. 缺乏意识或重视:有些程序员可能没有意识到注释的重要性,或者没有意识到注释对于团队协作和代码维护的积极影响。他们可能更关注代码的功能和性能,而忽视了注释的价值。

  5. 缺乏培训或指导:有些程序员可能缺乏良好的培训或指导,没有学习到编写注释的最佳实践和技巧。他们可能不知道如何写出清晰和有用的注释,或者认为注释只是一种形式主义的要求。

如何才能写出漂亮的注释

  1. 简洁明了:注释应该简洁明了,用清晰的语言表达,避免冗长和复杂的句子。使用简洁的语法和术语,使注释易于阅读和理解。

  2. 解释目的和意图:注释应该解释代码的目的和意图,帮助读者理解代码的背后逻辑。描述代码所要解决的问题,以及为什么采用特定的方法或算法。

  3. 注释重要决策:如果代码中包含了一些重要的决策,例如性能权衡、算法选择等,注释中应该解释这些决策的原因和影响,以便其他人了解代码的设计思路。

  4. 提供示例和用法:如果代码是为特定用途编写的,注释可以提供示例和用法说明,帮助其他人正确使用和调用代码。

  5. 避免废话和显而易见的注释:注释应该提供有价值的信息,避免废话和显而易见的描述。不要将注释用于解释显而易见的代码,而是专注于解释那些不容易理解的部分。

  6. 注释代码的边界和关键点:标识和注释代码的边界,例如函数、类或模块的开始和结束。对于复杂的代码块或算法,注释关键点和步骤,帮助读者跟踪代码的执行流程。

  7. 考虑多语言支持:如果您的代码可能需要翻译成其他语言,确保注释是易于翻译和理解的。避免使用特定于某种语言或文化的术语和隐喻。

  8. 更新和维护注释:随着代码的演变和改进,及时更新和维护注释。确保注释与代码保持同步,否则过时的注释可能会产生误导。

重要的是,要记住注释是为了帮助他人理解和维护代码。在编写注释时,尽量站在读者的角度思考,想象自己是一个不熟悉代码的人,注重注释的可读性和可理解性。

总的来说,注释的使用与具体情况和团队的偏好有关。在开发过程中,重要的是程序员能够编写易于理解、清晰且自说明的代码。在需要解释复杂逻辑或提供重要上下文的情况下,注释可以是有价值的补充。团队中的合作和沟通也是至关重要的,注释可以帮助其他人理解和维护代码。

最重要的是,无论是否编写注释,代码的质量和可读性都应该是首要目标。无论是否写注释,程序员都应该努力编写易于理解和维护的代码,以促进团队的协作和代码的可持续性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/103963.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

react-antd-admin 后台管理系统,就这样应运而生

react-admin 🎉 A magical react admin 目前就是从零开始使用 webpack 搭建环境,用到是 webpack5 来搭建 react 环境,使用到了以下这些插件 babel-loader 用来转义 es6 -> es5copy-webpack-plugin 用来拷贝一些文件css-loader 加载 cssless-loader 将 less 转成 cssst…

HelloKitty 代码 Python

话不多说直接上代码,绘制速度慢,录屏之后调倍速 import math import turtle as t# 计算长度、角度 t1:画笔对象 r:半径 angle:扇形(圆形)的角度 def myarc(t1, r, angle):arc_length = 2 * math.pi * r * angle

asp.net会议预约管理系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio

一、源码特点 asp.net 会议预约管理系统 是一套完善的web设计管理系统,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为vs2010,数据库为sqlserver2008,使用c#语 言开发 asp.net 会议预约管理系统 二、…

settings.xml的文件配置大全

settings.xml 文件中最常配置的还是这几个标签 localRepository和mirrors settings.xml文件官方文档地址 <settings xmlns"http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"ht…

vue学习(1)——基本指令

Vue指令—通过vue实现常见的网页效果 1、内容绑定&#xff0c;事件绑定 &#xff08;1&#xff09;v-text设置标签的文本值/内容&#xff08;textContent&#xff09; 默认写法会替换全部内容&#xff0c;使用差值表达式可以替换指定内容&#xff0c;内部支持表达式。可简写为{…

windows下cmd的删除命令

在Windows的命令提示符&#xff08;Command Prompt&#xff09;中&#xff0c;删除文件或目录的命令是del&#xff08;删除文件&#xff09;和rmdir&#xff08;删除目录&#xff09;。以下是这两个命令的使用方式&#xff1a; 删除文件&#xff08;del&#xff09;: 使用del命…

【Java学习之道】日期与时间处理类

引言 在前面的章节中&#xff0c;我们介绍了Java语言的基础知识和核心技能&#xff0c;现在我们将进一步探讨Java中的常用类库和工具。这些工具和类库将帮助我们更高效地进行Java程序开发。在本节中&#xff0c;我们将一起学习日期与时间处理类的使用。 一、为什么需要日期和…

uniapp中input的disabled属性

uniapp中input的disabled属性&#xff1a; 小程序中兼容性好&#xff1b; 在H5中兼容性差&#xff1b; 在H5中使用uniapp的input的disabled属性&#xff0c;属性值只能是true或false&#xff0c;如果为0&#xff0c; "都会为true&#xff1b; <input class"in…

Java从resources文件下载文档,文档没有后缀名

业务场景&#xff1a;因为公司会对excel文档加密&#xff0c;通过svn或者git上传代码也会对文档进行加密&#xff0c;所以这里将文档后缀去了&#xff0c;这样避免文档加密。 实现思路&#xff1a;将文档去掉后缀&#xff0c;放入resources下&#xff0c;获取输入流&#xff0…

启动Java应用的黑魔法:初始化性能解密@PostConstrut,InitialzingBean,init-method,BeanPostProcessor

我们在项目中经常会遇到启动时做一些逻辑的处理&#xff0c;比如配置信息的预加载&#xff0c;缓存信息的预加载等等&#xff0c;那都有哪些方法了&#xff0c;我们一起来探讨一下&#xff1a; 1. 方式 1. 构造方法初始化&#xff1a; 使用构造方法进行对象的基本属性初始化。…

【Leetcode】207.课程表

一、题目 1、题目描述 你这个学期必须选修 numCourses 门课程,记为 0 到 numCourses - 1 。 在选修某些课程之前需要一些先修课程。 先修课程按数组 prerequisites 给出,其中 p r e r e q u i s i t e s [ i ] = [ a i , b

深度学习验证码项目

项目代码&#xff1a; GitHub - kerlomz/captcha_trainer: [验证码识别-训练] This project is based on CNN/ResNet/DenseNetGRU/LSTMCTC/CrossEntropy to realize verification code identification. This project is only for training the model. GitHub - Python3WebSpi…

OpenCV项目开发实战--详细介绍如何进行图像平移和旋转含原理讲解+实现源码

如今,图像编辑变得越来越流行,因为手机具有这种内置功能,可以让您对图像进行裁剪、旋转和执行更多操作。在这篇博文中,我们将使用 OpenCV 探索图像转换和图像旋转。 基本图像转换操作 图像平移和旋转是图像编辑中最基本的操作之一。两者都属于更广泛的仿射变换类别。因此…

win10搭建gtest测试环境+vs2019

首先是下载gtest&#xff0c;这个我已经放在了博客上方资源绑定处&#xff0c;这个适用于win10vs版本&#xff0c;关于liunx版本的不能用这个。 或者百度网盘链接&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/15m62KAJ29vNe1mrmAcmehA 提取码&#xff1a;vfxz 下…

ATF(TF-A)之UBSAN动态代码分析

安全之安全(security)博客目录导读 目录 一、UBSAN简介 二、TF-A中UBSAN配置选项 一、UBSAN简介 未定义行为消毒器(Undefined Behavior Sanitizer&#xff0c;UBSAN)是Linux内核的未定义行为动态检测器。 详细信息可参考&#xff1a;https://github.com/google/kernel-sanit…

js实现日历 完整版

<template><div id"calendar"><!-- 年份 月份 --><div class"title"><div class"label">活动日历</div><div class"total">当前活动 {{ list.length }} 场</div></div><div…

基于Qt C++的工具箱项目源码,含命令行工具、桌面宠物、文献翻译、文件处理工具、医学图像浏览器、插件市场、设置扩展等工具

一、介绍 1. 基本信息 完整代码下载地址&#xff1a;基于Qt C的工具箱项目源码 TBox是一款基于Qt C的工具箱。用户可以自行选择安装所需的工具&#xff08;以插件的形式&#xff09;&#xff0c;将TBox打造成专属于自己的效率软件。TBox基本界面展示如下&#xff1a; 2. 使用…

小程序首页如何进行装修设置

小程序首页是展示给用户的第一屏&#xff0c;它的装修直接影响到用户对小程序的第一印象。小程序首页的设置在小程序管理员后台->页面设置->首页&#xff0c;下图是小程序首页默认的设置。 下图&#xff0c;是小程序首页的具体表现形式。下面具体解释小程序首页各个设置项…

【PCIE720】基于PCIe总线架构的高性能计算(HPC)硬件加速卡

PCIE720是一款基于PCI Express总线架构的高性能计算&#xff08;HPC&#xff09;硬件加速卡&#xff0c;板卡采用Xilinx的高性能28nm 7系列FPGA作为运算节点&#xff0c;在资源、接口以及时钟的优化&#xff0c;为高性能计算提供卓越的硬件加速性能。板卡一共具有5个FPGA处理节…

用 python popen 后台 启动 appium 之后,出现自动结束进程的情况

appium_port get_free_appium_port() cmd f"appium -p {appium_port} &" print(cmd)subprocess.Popen(cmd,shellTrue,# 这里修改stdoutopen(f"./{appium_port}.log", "a"),stderrsubprocess.STDOUT, )python&#xff08;父进程&#xff09…