良好编码

考察一段代码或者一个函数的好坏:
(1)编程风格
(2)出错处理
(3)算法复杂度分析,主要是做性能的分析

当然真正的高质量代码是需要不断琢磨,必须耐得住正确性、健壮性、可靠性、效率、易用性、可读性、可扩展性、可复用性、兼容性、可移植性考验。
也存在这样的两种人:
(1)编程老手可能会长期用隐含错误的方式编程(习惯成自然),发现毛病后都不愿相信那是真的!
(2)编程高手可以在某一领域写出极高水平的代码,但未必能把全局把握软件质量的方方面面。
编程老手:能够长期稳定地编写出高质量程序的程序员
编程高手:能长期稳定地编写出高难度、高质量程序的程序员

【修仙程序员】知错能改,经常温故而知新,坚持学习天天向上。

代码文件版权和版本声明

版权和版本的声明位于头文件和定义文件的开头,主要的内容有:
(1)版权信息
(2)文件名称,标识符,摘要
(3)当前版本号,作者/修改者,完成日期
(4)版本历史信息

这里写图片描述

头文件的结构:
头文件由三个部分组成:
(1)头文件开头处的版权和版本声明
(2)预处理块
(3)函数和类结构声明等
并且应该使用防重复包含语句,ifndef/define/endif。头文件建议:
(1)头文件建议只存放声明,而不存放定义。可能有些程序员为了实现内联,在头文件里面直接写实现,但是这样的做法是不可以取的,为了实现内联就牺牲了风格一致是不好的一件事。建议加上inline,实现还是放在实现文件中
(2)不提倡使用全局变量,尽量不要在头文件中出现象extern int value;这类申明
这里写图片描述

定义文件的结构
定义文件有三部分内容:
(1)定义文件开头处的版权和版本声明
(2)头文件引用
(3)程序的实现体(包括数据和代码)
这里写图片描述

头文件作用

(1)通过头文件来调用库功能,在很多场合,源代码不便或者不准向用户公布,只要向用户提供头文件和二进制的库即可。用户只需要按照头文件的接口声明来调用库功能,而不必关心接口怎么实现的,编译器会从库中提取相应的代码
(2)头文件能加强类型安全检查,如果某个接口被实现或者被使用,某方式与头文件中的声明不一致,编译器就会指出错误,这一简单的规则能大大减轻程序员调试,改错的负担

空行的使用
巧用空行也可以起着分隔程序段落的作用,空行得体将使程序的布局更加清晰,空行不会浪费内存,虽然打印含有空行的程序是会多消耗一些纸张,不要因此而舍不得用空行。
(1)每个类声明之后,每个函数定义结束之后都要加空行。
(2)在一个函数体内,逻辑上密切相关的语句之间不加空行,其他地方加空行分隔。
这里写图片描述

代码行
(1)一行代码只做一件事情,如只定义一个变量,或只写一条语句。这样的代码容易阅读,并且方便于写注释。
(2)if,for,while,do等语句自占一行,执行语句不得紧跟其后。不论执行语句有多少都要加{},这样可以防止书写错误。
(3)尽可能在定义变量的同时初始化该变量(就近原则),减少隐患
(4)关键字之后必留空格,const,virtual,inline,case等关键字
(5)‘,’之后要留空格,如Function(x, y, z)
(6)二元操作符的前后应当加空格,如“=”,“+=”,“>=”,“<=”…….
(7)一元操作符如“!”,“~”,“++”,“–”“&”等前后不加空格
(8)象“[]”“.”“->”也不加空格
(9)当然有时候也可以根据实际情况去掉一些空格,使得整个布局好看如下:
这里写图片描述

对齐
(1)程序的分界符‘{’和‘}’应独占一行并且位于同一列,同时与引用它们的语句左对齐。
(2){}之内的代码块在‘{’右边数格处左对齐。

长行拆分
(1)代码行最长长度宜控制70-80个字符以内,代码行不要过长,否则眼睛看不过来,也不便于打印
(2)长表达式要在低优先级操作符处拆分成新行,操作符放在新行之首,以便突出操作符,拆分出的新行要进行适当的缩进,使排版整齐,语句可读。
这里写图片描述

修饰符的位置
修饰符*和&应该靠近数据类型还是该靠近变量名,是个有争议的话题。
这里建议大家将和&写跟变量一起,可以减少一些误解。例如int * x,y;这里如果*靠近int会引起以为y也是指针变量!!!

注释
行注释用//,块注释用/ * ……..*/。
主要用在版本、版权申明,函数接口说明,重要代码行或段落提示。
(1)注释是对代码的提示,而不是文档。程序中的注释不可喧宾夺主,注释太多了会让人眼花缭乱,注释的花样要少。
(2)如果代码本来就是清楚的,则不必加注释,否则多此一举,令人厌烦。
(3)边写代码边注释,修改代码同时修改相应的注释,以保证注释与代码的一致性。
(4)防止注释有二义性,应当准确,易懂,杜绝错误的注释!
(5)尽量避免在注释中使用缩写,特别是不常用缩写。
(6)注释的位置应与被描述的代码相邻,可以放在代码的上方或右方,不可放在下方。
(7)代码比较长,特别是有多重嵌套时,应当在一些段落的结束处加注释,便于阅读。

类的板式

(1)private类型的数据写在前面,而将public类型的函数写在后面,这种方式成为“以数据为中心”
(2)public类型的函数写在前面,而将private类型的数据写在后面,这种称为“以行为中心”
这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值