代碼規範的重要性:2015年-4月-29日調試教訓 即 經驗

規範:

         1、每個局部變量都必須進行初始化賦值,否則會給代碼留下不可預估的風險:

              ------因爲局部變量裏面值是系統隨機分配的值,所以可能會在運行N次後的不經意間程序出現了問題,而當你需要去重現這個問題、現象時,卻又遇不到,讓人不得不爲自

                     己的軟件穩定性捏一把冷汗。

         

          2、每一次內存的申請,必須對應一次內存的釋放:

              -----因爲如果是小的內存泄漏,可能在項目緊急時,沒能經過能使軟件跑崩潰的時間,導致軟件測試正常的假象;當軟件進入重要環節 或 到客戶手裏使用時,被發現了這個問題,那麼這個問題會給解決問題,如期交付、和客戶滿意度都會帶來不可小視的影響。


           3、申請一個套接字 就要對應關閉一個套接字:

               ----因爲套接字的可用數量是夠大的,但是對於多鏈接軟件,在短時間的測試內可能無法發現這個問題,但是如果軟件長時間內使用後,就可能達到套接字有限數量的瓶

頸,進而導致軟件使用異常,這個問題同樣發現有時間域的問題,很容易在最關鍵的時候被發現,進而導致項目無法驗收,所以必須謹慎。



經驗:

          軟件在Debug版本運行正常,而在Release版本下運行一段時間後就報錯的問題 及 原因:

          VS在Debug條件下,會自動將局部變量進行初始化,所以在調試的時候,上面的第一點,可能在Debug環境下就無法被發現,但是一旦切換到Release環境下,編譯器不會給局部變量賦初始值,所以導致軟件在Debug板不報錯而在Release版本下運行時就會報錯。

            對一個無效的套接字多次重複使用 closesocket()會導致軟件崩潰:

           我就是在使用記錄視頻通道數的局部變量時沒有進行賦初始值,導致在循環關閉通道的網絡接口時,異常的多次closesocket,導致軟件運行一段時間後就報錯,並且用Debug版本測試一直髮現不了,用Release測試就始終出現,讓我苦苦查找很久很久,才解決。


       希望對朋友們有用^_^ ^_^ ^_^......

發佈了35 篇原創文章 · 獲贊 7 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章