代码规范的重要性:2015年-4月-29日调试教训 即 经验

来源:互联网 发布:矩阵 方阵 编辑:程序博客网 时间:2024/06/03 23:40

规范:

         1、每个局部变量都必须进行初始化赋值,否则会给代码留下不可预估的风险:

              ------因为局部变量里面值是系统随机分配的值,所以可能会在运行N次后的不经意间程序出现了问题,而当你需要去重现这个问题、现象时,却又遇不到,让人不得不为自

                     己的软件稳定性捏一把冷汗。

         

          2、每一次内存的申请,必须对应一次内存的释放:

              -----因为如果是小的内存泄漏,可能在项目紧急时,没能经过能使软件跑崩溃的时间,导致软件测试正常的假象;当软件进入重要环节 或 到客户手里使用时,被发现了这个问题,那么这个问题会给解决问题,如期交付、和客户满意度都会带来不可小视的影响。


           3、申请一个套接字 就要对应关闭一个套接字:

               ----因为套接字的可用数量是够大的,但是对于多链接软件,在短时间的测试内可能无法发现这个问题,但是如果软件长时间内使用后,就可能达到套接字有限数量的瓶

颈,进而导致软件使用异常,这个问题同样发现有时间域的问题,很容易在最关键的时候被发现,进而导致项目无法验收,所以必须谨慎。



经验:

          软件在Debug版本运行正常,而在Release版本下运行一段时间后就报错的问题 及 原因:

          VS在Debug条件下,会自动将局部变量进行初始化,所以在调试的时候,上面的第一点,可能在Debug环境下就无法被发现,但是一旦切换到Release环境下,编译器不会给局部变量赋初始值,所以导致软件在Debug板不报错而在Release版本下运行时就会报错。

            对一个无效的套接字多次重复使用 closesocket()会导致软件崩溃:

           我就是在使用记录视频通道数的局部变量时没有进行赋初始值,导致在循环关闭通道的网络接口时,异常的多次closesocket,导致软件运行一段时间后就报错,并且用Debug版本测试一直发现不了,用Release测试就始终出现,让我苦苦查找很久很久,才解决。


       希望对朋友们有用^_^ ^_^ ^_^......

0 0