写程序经验总结 ----(本文献给天津理工大学计算机学院的学弟学妹们~~)

说来也正是工作3个月了,今天心比较散,来总结一下写程序上的问题吧~~  

 

 

1.  实时的进行备份。
    这是我感受最深的一件事。在大学时没有写过太多的程序,仅仅只是一些小的程序段,可能牵扯不到这个方面。但是刚进公司新人研修的时候让我们自己做一个小游戏,这个可能是我接触到的比较大一点的程序,要考虑到可玩性,界面等诸多因素,代码自然会多一些。有时去修改某个地方,修完之后的效果还不如原来得好,因为是覆盖代码修改的,好多原来的也找不回来了,再后来修改哪一段先注掉再考一份出来改。
    这是一个比较低级的错误,随着这3个来月的深入学习和工作越来越发现备份的重要性。
    写代码时,自己哪里写得好,测试也没有问题,就备份出来。对也整个工程也要时常备份,尤其是进行某些操作之前。(要是觉得手动备份麻烦的话,自己写工具吧!)
    这一点扩展到我们的生活中也很实用。一个人的脑子不可能面面俱到,所以准备个记事本有些重要的事,甚至小事都可以用笔记下来,好像是会受益匪浅的样子~ (我要记住)

 

2.  做好程序运行时的记录。
    新人研修结束之后,自己开始了D3D的研修,首先感觉到的一件事就是做好程序运行时的记录。当初在学C++时,会写很多控制台的输出,就是想知道程序现在该干什么。但是后来不是控制台程序怎么办,同理,在你的界面中任何能显示的地方,写出你想看见的实时东西。
    而另一方面在写Direct的程序时会有很多结构和很多创建指针的函数,这些结构或函数中有十几个属性或参数都不为怪,只要有一个不正确,都会失败,从而导致整个程序的失败。刚开始时找这些错误就浪费了很多的时间,从而写了一个log的类,每个函数都去判断是否执行成功了,使得有错误时迅速定位。虽然在某方面觉得会增加写的时间,但是一旦出错,它就会为你找错节省不少的时间。
    这只是为自己测试和调试时图方便,但是会增加资源的支出,所以等到程序成熟、发布的时候就可以去掉,或者更好用预处理,给预掉~

 

3.  做好自己的程序的"预处理"。
    原来想写个什么东西时,想好之后就开始敲键盘了,不好评价。但现在觉得还是现在纸上设计一下吧,会用到什么算法、会用到什么类、功能是什么、之间的结构关系是什么、要学什么、最后要完成什么目标。一个项目有可行性分析、需求分析,总体设计等等一系列的前期工作,我们的创意、想法、小程序完全也可以草写一下类似的东东,真的会节省你很多时间,而且会在思路乱的时候,帮你缕清思路。
    再次扩展到生活中,时常要做计划,更要完成计划~

 

4.  学会读自己的代码(review)。
    前两天看了一篇高人的文章,很受影响。很多初学者包括一些有经验的程序员,在敲完代码的最后一个字符后,马上开始编译和运行,迫不急待的想看到自己的工作成果。有错误期待着让编译器调试器帮着检查出来可以省些时间,但是编译器检查不出来的的那些诸如内存泄露等错误,才是最致命的。所以自己写过的代码review一下吧,写完一段程序之后我们来读上1遍甚至几遍,找出少分号、变量名少个字母等低级错误,然后再看看内存是否泄露、变量是否初始化、函数是否有返回值等习惯性问题,避免这些错误会为你省不少时间的。
    运行之前还可以看着自己的代码,把自己的脑子比作计算机模拟运行一遍,尤其是要模拟一些边界值,这才是最重要的。这样不仅能完善自己的思路,又能帮助我们想到一些没有处理的情况,让程序的逻辑更严谨。

 

5.  注意内存的问题。

    这个就先不多说了,了解的还不算是很深刻,说说大概吧;
    选用合适的数据类型:能用SHORT不用INT,数据量大了就能省内存了;
    内存泄露:new出来的指针和对象,一定要release和delete;
    内存越界:一般出现在循环数组时,这是最要命的,要注意自己的变成习惯;
    引用未初始化的指针:即定义了一个指针一定要做初始化;
    ......;
    总之大家自己要注意总结和归纳。
    这块以后会专门总结一下。

 

6.  多写东西。
    经常写写东东,项目总结,学习经验,最近的感悟,用笔记录下了,日后在看的时候会有不同的感悟。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值