4 注释

别给糟糕的代码加注释——重新写吧
若编程语言足够有表达力 或者长于用这些语言来表达意图 就不那么需要注释
注释的恰当用法是弥补我们在用代码表达意图时遭遇的失败
程序员并不能坚持维护注解 代码在变化 在演化 注释并不总是随之变动
只有代码能忠实地告诉你它做的事 那是唯一真正准确的信息来源 该多花心思尽量减少注释

注释不能美化糟糕的代码

写注释的常见动机之一是糟糕代码的存在
与其花时间编写解释你搞出的糟糕的代码的注释 不如花时间清洁那堆糟糕的代码

让代码来阐述

只需要创建一个描述与注释所言同一事物的函数即可用代码解释你大部分的意图

// Check to see if the employee is eligible for full benefits
if ((empoloyee.flags & HOURLY_FLAG) && (employee.age > 65))

=>

if (empoloyee.isEligibleForFullBenefits())

复杂的 if 语句应该用函数来表达 不要让后来者去研究代码看你是想过滤什么信息 可读性和可执行性一样重要

好注释

唯一真正好的注释是你想办法不去写的注释

法律信息

只要有可能 就指向一份标准许可或其他外部文档 而不是要把所有条款放到注释中

提供信息注释
// Returns an instance of the Responder being tested
protected abstract Responder responderInstance();

函数名称传达信息

protected abstract Responder responderBeingTested;
// format matched kk:mm:ss EEE, MMM, dd, yyyy
Pattern timeMatcher = Pattern.compile("\\d*:\\d*:\\d* \\w*, \\w* \\d*, \\d*");

移到某个转换日期和时间格式的类中 辅以一个恰当的函数名 就不需要注释了

意图声明注释

涉及不太容易理解的代码设计时 需要辅以简短关键的解释

阐释

除非是不能改动的标准库的一部分 否则尽量用恰当的名称代替要标记的注释语义

警示

@Ignore 关闭测试用例

@Ignore("Takes too long to run")
public static SimpleDateFormat makeStandardHttpDateFormat() {
	// SimpleDateFormat is not thread safe, so we need to create each instance independently
	SimpleDateFormat df = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z");
	df.setTimeZone(TimeZone.getTimeZone("GMT));
	return df;
}

线程安全警示 阻止以效率之名使用静态初始器

todo注释

需要定期检查 删除不再需要的

放大

放大看来不合理写法的重要性

// the trim is real important. It removes the starting spaces that could cause the item to be recognized as another list.
String listItemContent = match.group(3).trim();
...
公共 API 中的 JavaDoc

要注意的是 JavaDoc 也可能误导 不适用 或者提供错误信息

复杂算法

如果晦涩难懂的算法还是建议可以在前面用注释解释的 省去读者去读具体算法的精力

坏注释

大多数注释都属此类 坏注释都是糟糕代码的支撑或接口 或者对错误决策的修正 基本上等于程序员自说自话

多余注释

简单函数头部位置的注释全属多余 读这段注释花的时间没准比读代码花的时间还要长

误导注释
循规式注释

所谓每个函数都要有 JavaDoc 或每个变量都要有注释的规矩全然是愚蠢可笑的 这类注释徒然让代码变得散乱

日志式注释

全部删除 因为源代码控制系统的存在

废话注释

JavaDoc 可能也是废话

能用函数或变量就别用注释

去掉注释 换成语义化变量和函数

位置标记

// Actions /
实属无理 鸡零狗碎 理当删除 只在特别有价值的时候用

括号后面的注释
			} // while
		} // try
	} // catch

如果你发现自己想标记右括号 其实应该做的是缩短函数

归属与署名

/* Added by Rick */
全部删除 因为源代码控制系统的存在

注释掉的代码

注释掉的代码堆积在一起 就像破酒瓶底的渣滓一般
全部删除 因为源代码控制系统的存在

非公共代码中的 JavaDoc

不打算作公共用途的 JavaDoc 完全是无用的 其形式与八股文无异

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
### 回答1: Keil4是一款被广泛应用于嵌入式系统开发的集成开发环境(IDE),它提供了丰富的工具和功能来帮助开发人员编写和调试嵌入式软件。在Keil4中,注释是开发人员用来解释代码功能、提醒自己或其他开发人员代码的用途和注意事项的重要工具。 然而,在Keil4中,注释显示问号可能意味着一些问题。这可能是由于以下几个原因导致的: 1. 编码问题:Keil4是一个Windows环境下的开发工具,如果代码文件不是以UTF-8或其他兼容的编码格式保存,就可能会导致注释显示问号。建议检查代码文件的编码格式,并确保其与Keil4兼容。 2. 符集问题:Keil4支持多种符集,但如果注释中包含非ASCII符(如中文、日文等),并且符集设置不正确,就会显示问号。您可以尝试更改符集设置,以正确显示注释中的特殊符。 3. Keil4版本问题:某些版本的Keil4可能存在与注释显示相关的问题。在这种情况下,建议升级到最新版本,以获得更好的兼容性和稳定性。 为了解决注释显示问号的问题,您可以尝试以下几个步骤: 1. 检查代码文件的编码格式,并确保与Keil4兼容。 2. 更改符集设置,以适应注释中的特殊符。 3. 升级至最新版本的Keil4,以获得更好的兼容性和稳定性。 4. 如果问题仍然存在,可以尝试使用其他开发工具或编辑器来查看代码文件,以确认是否是Keil4特定的问题。 综上所述,注释显示问号可能由于编码问题、符集问题或Keil4版本问题导致。通过检查编码格式、更改符集设置或升级Keil4版本,您可以尝试解决这个问题。 ### 回答2: Keil4是一款嵌入式开发工具,用于编写和调试C语言程序。在Keil4中,我们可以使用注释来向程序中添加说明和解释。通常情况下,注释是以//或者/*...*/的形式出现在代码中,不会对程序的编译和执行产生任何影响。 然而,在有些情况下,我们可能会遇到Keil4注释显示问号的问题。这通常是由于以下几种原因导致的: 1. 编码格式不正确:Keil4只支持特定的编码格式,如果我们使用了其他编码格式,可能会导致注释无法正确显示,进而出现问号。建议在Keil4中使用UTF-8编码格式编写代码注释。 2. 注释内容包含特殊符:有时候,注释内容中可能包含一些特殊符,例如不支持的符号或者不可见的控制符。这些特殊符可能会导致Keil4无法正确解析注释,从而显示问号。 3. Keil4版本不兼容:Keil4有多个版本,如果我们的代码在一个较新的版本中编写,而在一个较旧的版本中打开,可能会出现兼容性问题,导致注释无法正常显示。 为了解决这个问题,我们可以尝试以下方法: 1. 检查编码格式:确保代码注释以UTF-8编码格式保存。可以在Keil4的设置中进行相关配置。 2. 删除特殊符:检查注释内容,尽量避免使用特殊符,例如不支持的符号或者不可见的控制符。 3. 更新Keil4版本:如果我们的Keil4版本较旧,可以尝试升级到最新版本,以确保兼容性。 总之,Keil4注释显示问号通常是由于编码格式、特殊符或版本兼容性等问题引起的。通过检查编码格式、删除特殊符和更新软件版本,我们可以解决这个问题,确保注释在Keil4中正确显示。 ### 回答3: Keil4注释显示问号可能是由于以下几个原因造成的: 1. 编码问题:在Keil4中,注释是以ASCII编码存储的,如果你使用的是一种非ASCII编码,比如UTF-8,那么当Keil4尝试读取注释时,可能会出现乱码或显示问号的情况。 解决方法:将注释的编码格式转换为ASCII编码,然后重新保存。 2. 特殊符:有些特殊符在Keil4中可能无法正确显示,会被替换为问号。 解决方法:检查注释中是否含有特殊符,如乱码符号、全角符等,将其替换为合适的ASCII符。 3. Keil4设置问题:Keil4有一些设置选项可以影响注释的显示。例如,如果你的Keil4设置为不支持某种注释形式(如多行注释),那么当你使用该形式进行注释时,可能会出现显示问号的情况。 解决方法:检查Keil4的设置选项,确保已启用支持你所使用的注释形式。 需要注意的是,以上只是一些可能导致Keil4注释显示问号的常见原因,具体情况可能因环境和代码而有所不同。在解决问题时,建议仔细检查代码、编码设置和Keil4配置,以找出并解决导致注释显示问号的具体原因。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

帅气呢杰哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值