当前位置: 首页 > news >正文

写好注释的方法小结

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

关于如何写好代码注释:

  注释的恰当用法是弥补我们在用代码表达意图时遭遇的失败。

  程序中,真实只存在一处地方:代码。应该尽量使用代码表达,而尽量减少注释。

 什么样的注释才是好的注释:

1.法律信息。

2.提供信息的注释。

3.对意图的解释。提供了某个决定背后的意图(比如在程序中写入了某些“匪夷所思”的代码,提供注释来告诉阅读者这些代码的用途)。

4. 阐释。注释把某些晦涩难明的参数或者返回值的意义翻译成某种可读形式。

5.警示,用于警告其他程序员会出现某种后果的注释。

6. TODO注释 。TODO是一种程序员认为应该做但出于某些原因还没做的工作。记得定期查看TODO注释,并且完成该工作后,删除不再需要的。(我在当前的andriod团队开发中深有感触,大有益处,IDE一般也提供了寻找TODO注释的快捷途径)。

7.放大。某些注释可以用来放大某种看起来不合理之物的重要性。(通常此种注释的篇幅有多行以上,容易吸引眼球)。

8. 公共API中的Javadoc。

对一些“坏”注释的补救方案:

1.右括号注释。即有一个巨大的代码块,包含了多个if,for,while语句,出于方便在对应的右括号后加注释标识是哪个语句的结束。 —— 解决办法:缩短函数

2. 注释掉的代码。 千万别这么做,因为其他人不敢删除注释掉的代码,他们会猜测那些注释掉的代码放在那里一定有原因。

总结:

尽量少写注释,努力强化代码表达能力。


转载于:https://my.oschina.net/Bruce370/blog/536806

相关文章:

  • 如何把Access中数据导入Mysql中 (转)
  • 隐藏windows7/8“卸载或更改程序”里的软件
  • C# 5.0中新增特性
  • nw.js桌面软件开发系列 第0.1节 HTML5和桌面软件开发的碰撞
  • android 介绍
  • 前端性能--指标分析
  • 参加2012 OpenStack亚太技术大会
  • LVS笔记,(一)
  • Table doesn't have a primary key
  • linux 免密登录常见问题
  • JAVA数据结构的个人见解之绪论
  • UIScrollView 加载多个view view还可以交换顺序(2)
  • 迷宫最短路径(DFS)
  • SegmentFault for Android 3.0 发布
  • C++ 重写重载重定义区别
  • 分享的文章《人生如棋》
  • [nginx文档翻译系列] 控制nginx
  • “Material Design”设计规范在 ComponentOne For WinForm 的全新尝试!
  • 【347天】每日项目总结系列085(2018.01.18)
  • ESLint简单操作
  • IndexedDB
  • LeetCode算法系列_0891_子序列宽度之和
  • Object.assign方法不能实现深复制
  • overflow: hidden IE7无效
  • PHP的类修饰符与访问修饰符
  • windows-nginx-https-本地配置
  • 海量大数据大屏分析展示一步到位:DataWorks数据服务+MaxCompute Lightning对接DataV最佳实践...
  • 今年的LC3大会没了?
  • 应用生命周期终极 DevOps 工具包
  • nb
  • 阿里云ACE认证学习知识点梳理
  • 资深实践篇 | 基于Kubernetes 1.61的Kubernetes Scheduler 调度详解 ...
  • #etcd#安装时出错
  • #HarmonyOS:基础语法
  • (06)金属布线——为半导体注入生命的连接
  • (2)Java 简介
  • (bean配置类的注解开发)学习Spring的第十三天
  • (Java数据结构)ArrayList
  • (二)pulsar安装在独立的docker中,python测试
  • (二)丶RabbitMQ的六大核心
  • (附源码)计算机毕业设计ssm基于B_S的汽车售后服务管理系统
  • (一)UDP基本编程步骤
  • (译) 理解 Elixir 中的宏 Macro, 第四部分:深入化
  • (原創) 如何使用ISO C++讀寫BMP圖檔? (C/C++) (Image Processing)
  • .NET 编写一个可以异步等待循环中任何一个部分的 Awaiter
  • .NET 的程序集加载上下文
  • .NET/C# 检测电脑上安装的 .NET Framework 的版本
  • .NET开源的一个小而快并且功能强大的 Windows 动态桌面软件 - DreamScene2
  • @拔赤:Web前端开发十日谈
  • [ 数据结构 - C++]红黑树RBTree
  • [ 云计算 | AWS ] 对比分析:Amazon SNS 与 SQS 消息服务的异同与选择
  • [bzoj1324]Exca王者之剑_最小割
  • [C#]C# OpenVINO部署yolov8图像分类模型
  • [C/C++]数据结构 堆的详解
  • [echarts] y轴不显示0