開發者請注意閏年問題

jopen 8年前發布 | 11K 次閱讀 程序員 C/C++

2016年 是閏年,C 或者 C++ 開發者可能會遇到一些問題,微軟 近期發表了一篇技術博客,提醒開發者為 2016年 閏年可能產生的問題做好準備。

高級軟件工程師 Matt Johnson 在文章中提及,開發人員需要注意以下三方面的問題:

  • 日期問題,特別是那些使用日期范圍查詢的數據篩選。

  • 在用戶界面中意外或者不希望出現的行為。

  • 潛在的異常、崩潰或者遇到邊緣情況下的掛起。

Johnson 強調,無論開發者的代碼是否運行在云端,單元測試在很多情況下可能都并不充分。他提醒開發人員,2012年Azure 就曾出現過和閏年相關的故障。

“閏年的問題可能會在任何地方、在任何語言中出現,但是在 C/C++ 代碼中是最危險的,因為它們可能會導致應用程序崩潰,或者緩沖區溢出(這是一個安全風險)。” 他表示,在 C/C++ 中涉及到增加或減少年數的代碼以及表示每年中的每一天的數列的代碼都容易出現閏年的問題。

此外,Johnson 還提醒開發人員,2月29日 并不是唯一受到閏年影響的日子。12月31日,也就是當年的第 366 天,也可能會受到影響。他建議,開發人員需要仔細檢查他們的代碼;了解如何在單元測試中 “欺騙時鐘”;并且不能局限于閏年之間的情況,還需要對全年進行測試。

本文編譯自: azure.microsoft.com ,如若轉載,請注明出處:http://36kr.com/p/5043846.html

“看完這篇還不夠?如果你也在創業,并且希望自己的項目被報道,請戳這里告訴我們!”

來自: http://36kr.com/p/5043846.html

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!