1. 文件起始位置的注释
%%%%%%%%%%%%%%%%%程序头部注释%%%%%%%%%%%%%%%%%%%%%%
%Description:
% 详细说明程序的主要功能、程序的原理、流程,并对程序的运行结果进行解释说明(程
% 序的目标结果、结果说明)
%Function List:
% 函数列表,列出程序中调用的函数及功能的简要说明,例:
% preprocess:数据预处理程序
% ECGdetection:ECG信号R波检测程序
%DataFile:
% 说明程序的输入数据信息
%Outputs:
% 对程序的输出内容进行解释
%V1.0:时间
%V1.1:时间、修改说明
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%函数头部注释%%%%%%%%%%%%%%%%%%%%%%
%Description:
% 详细说明函数的主要功能、基本原理、实现流程
%Inputs:
% 函数输入参数列表及说明,例:
% data:输入数据
% len:数据长度
%Outputs:
% 输出参数列表及说明
%Calls:
% 被本函数调用的函数清单
% preprocess:数据预处理程序
% ECGdetection:ECG信号R波检测程序
%Called By:
% 调用本函数的清单,包括程序或函数名称及功能的简要说明
%V1.0:时间
%V1.1:时间、修改说明
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2. 文件内部的注释及规范
a) 不同功能的代码块,在代码块之前加注释,说明代码块的主要功能
b) 对重要的单条语句在句末进行注释
c) 对于常量、变量等,如果其命名不能充分自注释,则声明时必须加以注释,行末注释
d) 对于条件分支、switch case等实现某一特定功能的语句,要加以注释
e) 对于重要的循环语句,如有必要,在循环开始前单行注释说明循环的功能
f) 在较长代码块的结束行右方加以注释标记,表明某程序快结束,尤其是在多重嵌套时,可使代码更清晰
if (condition1)
if(condition2)
%codeblock
end %end of condition1
end %end of condition 2,指明是哪条if语句的结束
g) 注释与所描述的内容进行同样的缩进
3. 程序规范及命名规范
A. 相对独立的代码块之间加空行
B.每一行只能写一条语句,较长的语句或表达式分多行书写
C.函数、循环语句、条件语句等要注意缩进
D. 变量和常量的命名要简洁,尽量能够通过变量名看出变量的大概意思(如用英文名缩写等,尽量不要用拼音,命名不能太随意),增加可读性
E.声明变量的时候要进行初始化,对重要的变量要加以注释
F.变量名使用小写英文字母,常量使用大写英文字母
G. 具有关联意义的变量尽量使用一致的命名结构,如peak_ecg、peak_ppg
H. 避免使用过于复杂、技巧性很高、难以理解的语句
4. 注意事项
a) 通过对函数或过程、变量、结构等正确的命名,合理的组织代码的结构,使代码成为自注释
b) 保证注释的规范化,避免过度注释,下例为没有必要的注释:
var=1 %给变量var赋值为1
c) 注释要及时进行维护:如同一函数用到不同的环境中时,各参数表示的具体含义等可能不一样,要及时修改维护注释
d) 对注释掉的大段代码,确定无用后及时删除,使程序简洁,增强可读性
e) 项目代码上传至Github进行版本管理
f) 可根据实际情况适当修改注释形式,但要保证注释条理清晰