资源描述
1.引言优秀的代码如同作家的文章一般引人入胜,糟糕的代码犹如迷宫一般让人找不到头脑。在我们的编码过程中,其实有80%甚至90%的时间是在读代码,因为软件需求设计完成后,编码工作其实很快就完成了,但是后期通常会有很大的软件调试和改动的工作,调试的时间往往都不会少于编码的时间,而调试过程中往往有很大量的时间是在反复阅读代码,查看代码,良好的编码习惯,能够大大缩减代码阅读的时间,提升调试效率。2.2024/5/7 周二培训目的及意义:1、讲解代码规范的具体内容。2、阐述代码规范的重要性。3、了解代码规范带来的好处。4、分享代码编写的经验,在未来的软件开发过程中,尽量避免编写可读性较低的代码,降低代码的逻辑复杂度。3.2024/5/7 周二主要内容:一、文件排版二、注释方面三、命名规则四、代码风格五、函数六、类七、附录4.2024/5/7 周二一、文件排版1.1工程文件的排布1.2代码排版要求5.2024/5/7 周二1.1工程文件的排布6.2024/5/7 周二1.1工程文件的排布7.2024/5/7 周二1.2代码排版要求1.2.1 程序块之间采用缩进风格编写,缩进空格数为4个。1.2.2 相对独立的程序块之间、变量说明之后加空行。1.2.3 长语句和长表达式规范。1.2.4 循环、判断等长表达式语句。1.2.5 短语句。1.2.6 条件、循环语句。1.2.7 程序块分界符。8.2024/5/7 周二1.2.7 程序块分界符程序块的分解符应各独占一行并且位于同一列,同时与引用它们的语句左对齐。错误范例:正确范例:9.2024/5/7 周二二、注释方面2.1 有效注释量2.2 公司标识2.3 说明性文件2.4 源文件头2.5 函数头部说明2.6 注释的位置10.2024/5/7 周二2.1 有效注释量 一般情况下,源程序有效注释量必须在25%以上。说明:注释的原则是有助于对程序的阅读理解,在该加的地方都加了,注释也不宜太多,注释语言必须准确、易懂、简洁。11.2024/5/7 周二2.2 公司标识12.2024/5/7 周二2.3 说明性文件13.2024/5/7 周二2.4 源文件头14.2024/5/7 周二2.5 函数头部说明15.2024/5/7 周二2.6 注释的位置16.2024/5/7 周二三、命名规则3.1 命名清晰,命名最好就有含义方便记忆3.2 特殊命名需注释3.3 命名风格保持一致3.4 变量命名3.5 其他17.2024/5/7 周二3.5 其他1、除非必要,不要用数字或较奇怪的字符来定义标识符。18.2024/5/7 周二3.5 其他2、在同一款软件产品内,应规划好接口部分标识符(变量、结构、函数及常量)。3、用正确的反义词组命名具有互斥意义的变量或相反动作的函数等。19.2024/5/7 周二四、代码风格4.1 TAB和空格4.2 类型定义和 4.3 函数4.4 代码块4.5 代码行注:个人认为,代码风格这一块,在养成良好的编码习惯后,编码规则一致性可以大大提升可读性。20.2024/5/7 周二4.1 TAB和空格每一行开始处的缩进只能用Tab,不能用空格,输入内容之后统一用空格。除了最开始的缩进控制用Tab,其他部分为了对齐,需要使用空格进行缩进。这样可以避免在不同的编辑器下显示不对齐的情况。在代码行的结尾部分不能出现多余的空格。不要在:,-,.前后加空格。不要在,,;之前加空格。21.2024/5/7 周二4.2 类型定义和 类,结构,枚举,联合,大括号另起一行。22.2024/5/7 周二4.3 函数函数体的需要新起一行,在之前不能有缩进。除了特别情况,函数体内不能出现两个空行。除了特别情况,函数体内不能宏定义指令。在一个函数体内,逻揖上密切相关的语句之间不加空行,其它地方应加空行分隔。23.2024/5/7 周二4.4 代码块if、for、while、do、try、catch 等语句自占一行,执行语句不得紧跟其后。不论执行语句有多少都要加“”。这样可以防止书写和修改代码时出现失误。if、for、while、do、try、catch 的括号和表达式,括号可紧挨关键字,这样强调的是表达式。24.2024/5/7 周二4.5 代码行一行代码只做一件事情,如只定义一个变量,或只写一条语句。这样的代码容易阅读,并且方便于写注释。多行变量定义,为了追求代码排版美观,可将变量竖向对齐。代码行最大长度宜控制在一定个数字符以内,能在当前屏幕内全部可见为宜。25.2024/5/7 周二五、函数5.1 引用5.2 常量成员函数5.3 返回值5.4 函数参数26.2024/5/7 周二5.1 引用引用类型作为返回值:函数必须返回一个存在的对象。引用类型作为参数:调用者必须传递一个存在的对象。27.2024/5/7 周二5.2 常量成员函数表示该函数只读取对象的内容,不会对对象进行修改。28.2024/5/7 周二5.3 返回值除开void函数,构造函数,析构函数,其它函数必须要有返回值。29.2024/5/7 周二5.4 函数参数只读取该参数的内容,不对其内容做修改,用常量引用。修改参数内容,或需要通过参数返回,用非常量引用。简单数据类型用传值方式。复杂数据类型用引用或指针方式。30.2024/5/7 周二六、类6.1 类名和文件名一致6.2 命令空间类型名称使用相同的编码风格。6.3 在一个类中,各个方法需用一空行。6.4 不要不要“捕捉了异常却什么也不做捕捉了异常却什么也不做“。如果隐藏了一。如果隐藏了一个异常,你将永远不知道异常到底发生了没有。个异常,你将永远不知道异常到底发生了没有。6.5 返回返回bool类型的方法、属性的命名。类型的方法、属性的命名。31.2024/5/7 周二七、附录7.1推荐书籍:https:/ 周二7.2 VS2013编程技巧之代码注释在VS的函数头部输入/VS会自动生成对应的注释内容,我们只需在里面填空即可,但是注意,不是所有的函数都需要注释,如果命名规则足以让人明确理解函数功能及其参数含义,无需增加多余的注释。33.2024/5/7 周二7.3 VS2013编程技巧之代码自动排版7.3.1 在需要进行代码自动排版的行,输入CTRL+K+F可以对单行进行代码自动排版。7.3.2 在代码页面输入CTRL+K+D可以对当前代码页面所有代码进行代码自动排版。7.3.3 当复制代码粘贴时,VS会自动对代码进行排版。7.3.4 代码自动排版有一定的适用性,代码的简洁和排版最终还是要依赖编写代码的人来管控,优秀的IDE只是更好地辅助代码编写人员进行代码排版。34.2024/5/7 周二35.2024/5/7 周二
展开阅读全文