注释
文件头
每个文件都应以其内容描述开头。
每个文件必须有一个顶层注释,包含其内容的简要概述。 版权声明和作者信息是可选的。
示例:
#!/bin/bash
#
# Perform hot backups of Oracle databases.函数注释
任何不是既明显又简短的函数都必须有函数头注释。库中的任何函数无论长度或复杂度 都必须有函数头注释。
其他人应该能够通过阅读注释(以及自助信息,如果提供的话)来学习如何使用你的程序 或使用你库中的函数,而无需阅读代码。
所有函数头注释应使用以下内容描述预期的 API 行为:
- 函数描述。
- 全局变量(Globals):列出使用和修改的全局变量。
- 参数(Arguments):接受的参数。
- 输出(Outputs):输出到 STDOUT 或 STDERR 的内容。
- 返回值(Returns):除最后一个运行命令的默认退出状态以外的返回值。
示例:
#######################################
# Cleanup files from the backup directory.
# Globals:
# BACKUP_DIR
# ORACLE_SID
# Arguments:
# None
#######################################
function cleanup() {
…
}
#######################################
# Get configuration directory.
# Globals:
# SOMEDIR
# Arguments:
# None
# Outputs:
# Writes location to stdout
#######################################
function get_dir() {
echo "${SOMEDIR}"
}
#######################################
# Delete a file in a sophisticated manner.
# Arguments:
# File to delete, a path.
# Returns:
# 0 if thing was deleted, non-zero on error.
#######################################
function del_thing() {
rm "$1"
}实现注释
对代码中复杂的、不明显的、有趣的或重要的部分添加注释。
遵循 Google 通用的编码注释实践。不要注释所有内容。如果有复杂的算法或你做了一些 不寻常的事情,请添加一个简短的注释。
TODO 注释
对临时的、短期解决方案的或足够好但不完美的代码使用 TODO 注释。
这与 C++ 指南 中的约定一致。
TODO 应包含全大写的字符串 TODO,后跟对相关问题拥有最佳上下文的人的姓名、
电子邮件地址或其他标识符。主要目的是提供一致的 TODO 格式,以便按需搜索以获取
更多详细信息。TODO 不是被引用人会修复该问题的承诺。因此,当你创建 TODO 时,
给出的几乎总是你自己的名字。
示例:
# TODO(mrmonkey): Handle the unlikely edge cases (bug ####)Last updated on