Clean Code 笔记 之 第四章 如何应用注释
继上一篇笔记之后,今天我们讨论一下 代码中是存在注释是否是一件好的事情。
在我们开发的过程中讲究“名副其实,见名识意”,这也往往是很多公司的要求,但是有了这些要求是不是我们的代码中如果存在注释是不是意味着我们的 函数,变量,以及类 的命名就不符合了“名副其实,见名识意”。
我们先区分一下注释的类别,注释一般分为以下几种:
- 1, 单行注释
- 2, 多行注释
- 3, 文档注释
- 4, #region 折叠注释,可以将 代码折叠
注释的类别
1, 单行注释:
在以 “//” 开头,用以说明一行代码的作用放置位置 看习惯或者公司要求合理就行。常用于函数内部,在很多的开源代码中文件的头部我同样见到很多人使用单行注释进行说明,灵活就好。
体现形式如下:
public List<string> getVipUserNameByUserType()
{
// Vip user name list
var vipUserNames = new List<string>();
foreach (var user in Users)
{
if (user.Type = "VIP")
vipUserNames.Add(user.Name);
}
return vipUserNames;
}
2, 多行注释:
以“/*”开头 “*/” 结尾 常用于描述说明一段代码以及类注释或者说代码块常用于文件的顶部。说明作者信息,时间如果是开源的这包含开源的更多说明。
通常使用如下:
/*
* 作者:〈版权〉
* 描述:〈描述〉
* 创建时间:YYYY-MM-DD
* 作用:
*/
3, 文档注释:
也就是常用的XML 注释:它的说明性更加的强烈,多用于类以及函数上,当然属性上同样可以使用:
如下所示:
/// <summary>
/// MyClass
/// </summary>
public class MyClass
{
/// <summary>
/// MyProperty
/// </summary>
public int MyProperty { get; set; }
/// <summary>
/// MyMethod
/// </summary>
public void MyMethod(){ }
}
以下是官方建议的文档标记 点击标签会制动跳转

4, #region : 折叠注释,常用于描述多个函数的基本作用
书中最喜欢的话
好的注释不能美化糟糕的代码,真正好的注释是你想尽办法不去谢的注释。怀注释都是糟糕代码的支撑或借口,或者是对错误决策的修正。
下面看一个例子
//Check to see if the employee is eligible for full benefits ()If((employee.flags & HOURLY_FLAG)&& (employee.age>)) ()If(employee.isEligibleForFullBenefits())) 这两个你更喜欢哪个
好的注释的特征:
1:表示法律信息(这样的注释一般出现在文档顶部说明作用以及协议)
// Copyright (c) .NET Foundation. All rights reserved // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
2:提供信息的注释(指无法通过命名提供信息如要 注释辅助的)
public void ConfigureServices(IServiceCollection services)
{
// These two middleware are registered via an IStartupFilter in UseIISIntegration but you can configure them here.
services.Configure<IISOptions>(options =>
{});
}
3:对意图的解释
4: 警示:告知其他人会出现某种后果的注释
5: TODO注释: 主要描述应该做的目前还没有做的事情。
6: 放大:提示不合理之物的重要性。
应避免的注释
应该避免以下几点:
1: 误导性注释
2: 日志式注释
3: 废话注释
4: 标记位置的注释
5: 括号后的注释
6: 归属与签名
7: 注释掉的代码
8: Html 注释
以上没有一一举例的原因是我的PPT是一份演示的PPT,里面很多公司的代码不便贴出,抱歉。
不足之处还请指出
Clean Code 笔记 之 第四章 如何应用注释的更多相关文章
- 【NPDP笔记】第四章 文化组织与团队
此为临时链接,仅用于预览,将在短期内失效.关闭 [NPDP笔记]第四章 文化组织与团队 小康 小康哥的产品之路 9月6日 4.1 文化和氛围对创新的重要性 文化:信念,价值观,假设,与期望 氛围:直接 ...
- Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第四章:Direct 3D初始化
原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第四章:Direct 3D初始化 学习目标 对Direct 3D编程在 ...
- Clean Code 笔记 之 第二章
你是否真正的会命名 前言 这是我第二次看这本书了(Clean Code)的时候,第一次看的时候是,看到某世界五百强在他们的代码中我竟然看不到一句注释,现在我还记得当时的情景,当我Download 下第 ...
- 代码整洁之道Clean Code笔记
@ 目录 第 1 章 Clean Code 整洁代码(3星) ?为什么要整洁的代码 ?什么叫做整洁代码 第 2 章 Meaningful Names 有意义的命名(3星) 第 3 章 Function ...
- win32多线程程序设计笔记(第四章下)
上一笔记讲了同步机制中的临界区域(Critical Sections).互斥器(Mutexes),下面介绍同步机制中的另外两种. 信号量(Semaphores) 举个例子: 现在有人要租车,接待他的代 ...
- 05 技术内幕 T-SQL 查询读书笔记(第四章)
第四章 子查询:在外部查询内嵌套的内部查询(按照期望值的数量分为,标量子查询 scalar subqueries,多值子查询multivalued subqueries)(按照子查询对外部查询的依赖性 ...
- Linux内核分析 读书笔记 (第四章)
第四章 进程调度 调度程序负责决定将哪个进程投入运行,何时运行以及运行多长时间.进程调度程序可看做在可运行态进程之间分配有限的处理器时间资源的内核子系统.只有通过调度程序的合理调度,系统资源才能最大限 ...
- 《深入理解java虚拟机》读书笔记三——第四章
第四章 虚拟机性能监控与故障处理工具 1.JDK命令行工具 jps命令: 作用:列出正在运行的虚拟机进程. 格式:jps [option] [hostid] 选项:-q 只输出LVMID(Local ...
- 《机器学习实战》学习笔记第十四章 —— 利用SVD简化数据
相关博客: 吴恩达机器学习笔记(八) —— 降维与主成分分析法(PCA) <机器学习实战>学习笔记第十三章 —— 利用PCA来简化数据 奇异值分解(SVD)原理与在降维中的应用 机器学习( ...
随机推荐
- Arduino学习笔记⑥ 硬件串口通信
1.前言 Ardunio与计算机通信最常用的方式就是串口通信.在Arduino控制器上,串口都是位于Rx和Tx两个引脚,Arduino的USB口通过一个转换芯片与这两个串口引脚连接.该转换芯片 ...
- 后缀数组(SA)
学习了LRJ神犇的代码.orz. 首先真心建议了解下基数排序!!且要有一定的c++程序经验,否则程序很难看懂. 然后对着下面的程序调试(假装你已经会了算法思想) 弄个一个礼拜一下午就能学会了. 该算法 ...
- PAT-1022 Digital Library (30 分) 字符串处理
A Digital Library contains millions of books, stored according to their titles, authors, key words o ...
- 百万年薪python之路 -- 内置函数
内置对象(68个)第一部分 内置函数一共68个 一些可以重要性不高的内置函数,只需了解即可 all() any() bytes() callable() chr() ord() complex() d ...
- unity 初始化数据存储问题
在用unity进行开发的时初始化的数据和中间实时生成的数据存储不同,初始化文件数据建议安放在asset-StreamingAssets文件下,需要时读取取来.运行时所需的实时文件或数据持久化的xml文 ...
- jquery链式原理.html
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- .NET如何写正确的“抽奖”——打乱数组算法
.NET如何写正确的"抽奖"--数组乱序算法 数组乱序算法常用于抽奖等生成临时数据操作.就拿年会抽奖来说,如果你的算法有任何瑕疵,造成了任何不公平,在年会现场code review ...
- 第一篇:版本控制git之仓库管理
---恢复内容开始--- 再开始这个话题之前,让我想起了一件很痛苦的事情,在我大学写毕业论文的时候,我当时的文件是这样保存的 毕业论文_初稿.doc 毕业论文_修改1.doc 毕业论文_修改2.doc ...
- PowerBI开发 第十六篇:PowerBI Service基本概念
从总体上来看,PowerBI Service 有4个主要的构建模块,分别是dashboards.reports.workbooks 和 datasets,这四个模块都是目录,位于workspaces目 ...
- tomcat无法启动的原因
一.排查思路 最直接也是最有效的办法:看console控制台 这是我看到的原因,我先想到是不是web.xml里的url-pattern里的命名是不是冲突 因为我在这个项目之前写了一个项目,用的是同一个 ...