如何养成良好的编程习惯
增强代码的可读性
一个优秀的程序员编写的代码不仅体现在代码的质量上,而且体现在代码的可读性上。由于我们编写的代码是给计算机运行和提供别人阅读的,所以在编写代码时要兼顾这两个方面。
格式化代码
对于代码的格式是专业程序员必须要注意的,混乱的代码风格就像是看看屋毕加索的画一样,分不清那个是头,那个是尾。还是举例说明一下吧:
函数实现尽量简短,要在一个屏幕上看到一个完整函数的实现体,这样就避免了我们看函数时还要滑动鼠标的问题,对于函数整体把握有更直观的感受。
适当的注释
有很少的人对自己编写的代码进行注释,带我们要牢记,所编写的代码是给别人阅读的,这些人包括参与项目的其他编程人员和维护人员。要想让别人能够清楚地了解所编写代码的功能,注释是必不可少的。
有含义鲜明的标识符
在代码中会涉及到取变量名、函数名等,这时最好能够做到见名识意,通过名字就知道其所体现的功能。
良好的逻辑性
对于程序的逻辑性其实就对程序设计能力提出了要求,怎么样逻辑程序清晰明了,如果逻辑复杂了,就需要对逻辑进行分层。在程序中最好不使用“goto”语句,因为goto语句大大降低了代码的可读性,同时goto语句不容易控制,所以不要在代码中随便使用goto语句进行任意跳转。
附加文档
对于项目本身来说不仅有代码编写,前期的文档更是打开思路的最佳方法,同时对于编写代码的人来说,在很久之后再次接触该代码时,能够通过附加文档快速对代码有个整体认识。
防止内存错误
内存错误可以说是程序员最为头疼的问题,其实很多内存问题都是在编程的时候埋下的种子,往往是可以避免的。出现最多的一种内存错误就是对于指针的引用。要想尽可能地避免内存错误,我们就要养成一些良好的编程习惯。
指针的初始化
对于指针,我们在定义的时候要养成将其初始化为NULL的习惯。
释放申请的内存空间
在c语音中经常用到的malloc函数来进行堆内存空间的分配,但是经常会发生有始无终的情况,即申请的内存没有及时释放,会导致内存泄漏,最终出现内存错误。
文件指针的打开
和多时候,我们没有判断文件的打开操作是否成功就开始继续读写操作,这也是经常发生的内存错误之一。
文件指针的关闭
文件指针的关闭相对来说不是那么严格,但是需要留意的是,在向打开的文件中写数据的时候,如果在退出之前没有关闭文件,缓冲区中的数据就没有写入文件中,进而导致数据的丢失。
判断是否成功分配内存
堆内存的分配并不是每次都能成功,所以在分配堆空间时需要注意判断分配操作是否成功,以防止接下来的操作不能有效进行。
提高代码的运行速度
多数程序员在完成代码的编写后都会对代码进行多次优化,使代码的运行速度更快,提高代码的运行速度是每个程序员都追求的目标。提高代码的运行速度不仅仅体现在对算法的选择上,还有以下这些因素。
学会使用内联函数
如果只有短短几行代码的函数在运行过程中被多次调用到,并且该函数也符合内联函数的规则,那么可以将其定义为内联函数,这样可以减少函数调用的时间开销。
合理选用运算符
采用不同的方法可以实现相同的效果,但是需要记住,乘法和除法运算的执行时间比进行移位运算要多,所以可以将其定义为内联函数,这样可以减小函数调用的时间开销。
定义合适的变量
变量的类型对代码的执行时间也有很大的影响,典型的情况是图像的处理,采用单精度或者双精度时的处理时间比采用整型时的处理时间要长,若是对精度要求不高,对实时性要求较高的场合,如果可以采用short型来进行处理,可以大大节约处理时间。
学会使用volatile
对于volatile 的使用会使得运行时间大为减少,但是何时使用还需要斟酌一二。
高内聚低耦合
- “高内聚低耦合”对于每个程序员来说是耳熟能详的,它是软件工程中的概念,是设计好坏的标准,主要在面对对象的设计中用于判断类的内聚性是否高,耦合度是否低。但是这并不意味着在c语言这种面向过程的程序设计中,我们可以不用关注高内聚低耦合这一设计思想。那么到底什么是高内聚低耦合呢?所谓高内聚:指的是模块中元素之间的紧密程度。而低耦合则指不同模块间的互连程度。
- 那么高内聚低耦合的程序设计到底有什么优势呢?如果仅从开始的过程中来看,短期内,它并没有表现出什么优点,甚至会影响程序的开发进度,因为高内聚低耦合的程序对开发设计人员提出了更高的要求。高内聚低耦合的好处体现在程序持续发展的过程中,它具有更好的重用性、维护性、扩展性,可以更高效地完成维护开发,持续支持业务的发展,而不会成为业务发展的障碍。
- 鉴于高内聚低耦合的以上优点,我们该如何在编程中实现高内聚低耦合呢? 首先需要明白的一点就是高内聚低耦合本身就是矛盾的共存体,所以在编程的时候只能找到一个平衡点,使设计尽可能达到最佳。为了实现高内聚,就要在编程的时候尽可能地实现模块内各个元素彼此结合的紧密程度,高内聚也常被用来度量内部元素之间的紧密程度;而低耦合则要求尽可能减少模块之间的接口,使模块之间独立地工作,独立地完成其功能,模块之间接口的数量可用来衡量模块之间的依赖程度。
提高代码的复用率
如何提高代码的复用率,很多人的第一反应可能是采用泛型方法,遗憾的是,c语言并不支持该方法。提高代码的复用率一直是大多数程序员所热衷追求的,很多有经验的程序员在编程的过程中会将那些时常用到的函数模块提取出来,由于经过多次的编写,因此这些功能模块相对都比较稳定,在查错的时候也可以跳过复用的这部分代码,进而加快了对程序的调试。提高代码的复用率就是一个消除代码中那些重复出现的代码块,将其提炼出来作为一个单独的处理方法,这样在精简代码的同时,也使代码的复用率得以提高。
养成重构的习惯
重构指的是在不改变软件现有的功能的基础上,通过调整程序代码改善软件的质量和性能,使程序的设计模式和架构更趋合理,以提高软件的扩展性和维护性。