聯系我們

博客

工程師博客

注意全局變量

軟件初學者容易中招的陷阱

這是在我初出茅廬,軟件開發經驗尚淺的時候,負責某個產品固件開發時經歷的“搞砸”的失敗教訓。

該產品的規格中通過外部的輸入輸出切換進行遠程控制的規定,配置該功能需要編寫對輸入輸出進行定期監控并根據狀態進行處理的程序。

處理本身比較簡單,是將作為判斷標準的輸入輸出狀態直接保存在“全局變量”中,制作進行處理的函數。而且是在一定程度上可以預測的條件下進行運行驗證,(自己認為)沒有問題,于是就發布了。由于輸入輸出狀態只有ON/OFF兩種模式,因此,當時的驗證是只通過上述模式的組合完成的。

在發布的幾年之后,收到了無法正確處理外部輸入輸出狀態的咨詢,于是趕緊進行調查。

實際的使用條件是外部輸入輸出狀態的切換周期非???,而在開發時沒有在這種苛刻的條件下進行驗證,因此,找借口都無從找起。

進一步調查后發現,原因很簡單,輸入輸出狀態保存在全局變量中,所以想當然地認為定義后無論從哪里調用,數值都不會發生變化,沒有考慮到輸入輸出狀態通過其他函數內的處理而被置換的情況。因此,最終未能正確處理。

這個時候我才深切地認識到,無論在什么情況下,都不應使用全局變量進行處理,而是要充分理解設想功能的算法,并用自己的方式掌握數據流以及加工的整體概念,這一點是非常重要的。作為重要的基礎知識,應該掌握全局變量會被哪里訪問,會在什么時間被更新。

此外,在驗證方法方面,我也深刻地認識到,除了ON/OFF這種單純的模式之外,更重要的是將多個條件組合起來考慮(制定驗證標準)。不過,將所有的組合都考慮進去也不現實…。

只要清楚這一點,就不會發生問題,但是,在第一次開發等的情況下,往往會出現哪怕是簡單的問題也想不到的情況。遇到難題的時候可以去查網站,查書本,當然最快的方法是請教身邊的同事。也許你不知道,其實很多人都會告訴你答案,也有很多人會給你提示以啟發你的靈感。

TEXT BY
渡邊 聰
解決方案開發部 解決方案推進課 課長代理

[主要產品開發業績]
直流穩定電源PAT-T系列,電子負載裝置PLZ-4W系列
系統模擬試驗用軟件(電網模擬器)
航空電子設備試驗用軟件
程序編寫,控制軟件 Wavy系列

聯系我們
亚洲高清aⅴ日本爆乳},国产 日产 欧美最新,中文字幕不卡在线视频乱码,国产免费无码一区二区