良好的编程习惯

我们在编码的时候总是希望能写出风格良好,清晰、健壮的程序,把代码当成一件艺术品来看待、来雕琢,让coding成为一种艺术。 看了很多大牛关于编程风格与修养方面的文章,很受启发,结合自己体会,简录几条,提醒自己时刻注意。

1.
参数检查
对于有参数的函数,首先要对参数的合法性进行检查。可以利用assert断言或其他方式进行判断。.对于文件、动态分配内存等需要进行系统调用的操作应该对返回值进行检查。

2.
动态内存操作
申请和释放动态内存应一一对应,并且尽可能在同一层次上使用,不要在一个函数内进行内存申请,将得到的指向动态内存的指针返回到外部去使用。避免内存泄漏。

3.
子函数
把具有相同或相近功能的,并且经常调用的代码抽取出来,写成一个函数。设计好函数接口非常重要。不要一个函数动辄几百行甚至更多,按照功能划分,都写成子函数,让函数去构成主函数,清晰、明了,往往看完代码,算法流程也就基本了解了。

4.
良好的注释
好的注释便于记忆和理解程序的细节,对文件和重要的函数都应该写好注释。不仅仅是由于工作交接等原因才来写,为了给别人看。其实,更是给自己来看。一个程 序时间久了,细节自然就记不清楚,如果没有好的注释,需要很久才能回忆起来。这是你就会发现,此时花的时间比当初认为写注释费的时间不知要多多少。

5.
书写Debug版和Release版的程序
程序在开发过程中必然有许多程序员加的调试信息,非常宝贵,
在日后的维护过程中也是很宝贵的东西。可以像VC++那样建立两个版本的目标代码:一个是debug版本的,一个是Release版的。
利用预编译技术吧,如下所示声明调试函数:
    #ifdef DEBUG
        void TRACE(char* fmt, ...)
        {
            ......
        }
    #else
        #define TRACE(char* fmt, ...)
    #endif
于是,让所有的程序都用TRACE输出调试信息,只需要在在编译时加上一个参数“-DDEBUG”,如:
    cc -DDEBUG -o target target.c

于是,预编译器发现DEBUG变量被定义了,就会使用TRACE函数。而如果要发布给用户了,那么只需要把取消“-DDEBUG”的参数,于是所有用到TRACE宏,这个宏什么都没有,所以源程序中的所有TRACE语言全部被替换成了空。一举两得,一箭双雕,何乐而不为呢?
顺便提一下,两个很有用的系统宏,一个是“__FILE__”,一个是“__LINE__”,分别表示,所在的源文件和行号,当你调试信息或是输出错误时,可以使用这两个宏,让你一眼就能看出你的错误,出现在哪个文件的第几行中。这对于用C/C++做的大工程非常的管用。

6.
学习使用版本控制
我们在写一些option比较多的程序,例如实验参数调整等等,往往要写几个版本的程序。如此多的版本维护极其困难,起文件名都是一个难题。如果一个函数 进行了改动需要在几个版本里更改,极易导致程序的不一致性。因此,学习使用版本控制工具,每次下载最新版本的代码,可以在一定程度上解决这个问题。


7.自己写工具
好的程序员都很“懒”。我们很聪明,计算机很傻;我们怕累,计算机不怕。所以,对一些琐碎的但有规律的手工劳动,自己写工具,让计算机替我们去做吧!

待续,再补充

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值