如何接手別人的LabVIEW代碼/可執行程序?
02-01
在工作中我們常常有很多情況要給別人擦屁股,如何能讓這種工作更有效率一些呢?今天這篇文章就想討論一下這個問題:
- 完全沒有代碼,只有硬體和可執行程序,文檔也少的可憐,甚至和實物脫節。
- 有源代碼,但是關鍵代碼加密了,看不到細節。
- 有源代碼,但是寫的一塌糊塗。
- 接手EXE
對於第一種情況,其實和其他語言一樣,通用方法是觀察程序的運行流程,觀察程序和硬體、網路、文件、資料庫、串口等等的交互,還原程序的執行流程和交互。
對照文檔還原系統需求。
對於特別老的LabVIEW程序,有一個偏方可以嘗試:
- 可以將EXE或者DLL的後綴名修改為Zip
- 使用Windows自帶的解壓工具或者WinRAR解壓(注意不要使用7zip,會把EXE解壓成資源文件)
- 觀察解壓縮的程序文件名以及層次關係
- 有對應版本的LabVIEW開發環境可以觀察VI的連線版和介面,如果可以接受,不升級LabVIEW版本可以直接在程序中調用對應VI。
- 接手加密代碼
- 對於加密代碼,最好是能找到密碼,目前來看複雜密碼不太好嘗試出來。
- 如果不能,則判斷加密代碼是否是關鍵代碼,是否需要改動,非關鍵代碼可以保持不動。
- 需要改動的情況下則在不改變功能的前提下進行替換式重構。
- 對於主VI加密的情況下,先還原硬體操作流程以及其他的操作模塊,最後組織主程序。
- 接手雞窩式代碼
- 搞明白程序的需求,還原關鍵流程。
- 將獨佔式資源(硬體、文件、資料庫等等)封裝成功能性全局變數。
- 將程序模塊化,原子操作封裝成VI。
- 不要過早優化,整理流程優先,善用注釋。
原文:
如何接手別人的LabVIEW代碼/可執行程序?
推薦閱讀:
※軟體工程專業前景怎麼樣?
※什麼是社會資源?為什麼有人會鄙視程序員沒有社會資源?
※如何評價中國大學軟體課程中對於流行技術(如Git)的忽視?
※效率比擬RapidXml的XML解析庫Textcat::XML即將完工