前言
近期使用C++有了一些心得很感悟,這里整理一下。
心得1
如果只會使用LabVIEW寫程序,還想要進一步深入程序設計,一定要學習一門文本語言。
什么是會用LabVIEW
會用是個比較籠統的概念。
- 只要能寫一個簡單運行的程序叫做會用
- 能寫稍微復雜的儀器控制程序叫會用
- 能寫大中型測控程序也叫會用
這里我認為至少能寫稍微復雜的多個儀器聯合控制程序,完成基本的測控系統應用叫做會用LabVIEW,用時間評估來說,使用LabVIEW作為主要編程語言至少工作2年以上。
什么是深入程序設計
寫LabVIEW程序本身比較簡單,大量的工作只是去學習現有的庫如何去使用,然后集成到自己的工作需求中來,只要了解了基本的問題解決方法,很多人都可以勝任常規的編程任務。
所以,隨着項目需求的演進,勢必程序會越來越復雜,如何有效的完成任務,如何讓程序穩定可靠,如何容易拓展,這些都是程序架構考慮的事情。
如果你已經掌握了基本的LabVIEW編程功底,工作中大部分工作內容已經開始接近重復的編碼,那么深入程序設計也許就是下一步考慮的事情。
為什么學一個文本語言
LabVIEW程序設計的架構從簡單的狀態機到稍微復雜的生產者消費者,從面向對象到ActorFrameWork。效率上講,更高級的架構會讓程序開發變得相對容易,也確實提高了可拓展性和維護性。
然而,無論如何變化,本質上還是沒有擺脫語法的限制,尤其是對面向對象的設計,圖形化的編程本身會限制思考效率,很多面向對象思想的設計僅僅在文本編程才會凸顯設計優勢。
我之前學習LabVIEW面向對象一直很慢,以為是自己比較笨,抽象思維很差,后來用文本學習后發現很多不理解的東西換個語言去理解很容易。編碼方法和思維體系不同,真的會影響學習效率。
設計模式是面向對象設計中最簡單的一環,所以GOF中也會提到設計模式是可復用程序設計基礎….基礎….真的只是基礎…
心得2
近期在做產線測試的時候,新產品導入會對原有測試程序產生沖擊。
而使用面向對象的程序接口設計+簡單工廠模式極大的加快了程序開發。雖然各種控制指令和操作方式均發生了變化,但適應新產品到秀跟的代碼完成測試只用了2個小時左右,真正體會到思想指導實踐帶來的效率提高。

心得3
在使用LabVIEW程序設計時,有一個設計思想是“一切皆可配置”,但是由於語法限制,這一想法一直實現的比較牽強。
- 使用數據結構直接存儲配置文件會遇到配置文件的拓展問題
- 使用Config Read來扯線也是比較惡心的事情,重復的編碼效率非常低
- 后來使用了AQ JSAON存儲好了很多,不過代碼就相對量比較大了
用C++后,讀寫配置文件只是一句話的事情,所以一些皆可配置變得簡單了許多,感覺還是很不錯。

心得4
有人說LabVIEW編程簡單,其他編程語言復雜,經歷過兩者之后,發現
- LabVIEW測控程序簡單,是因為有豐富的庫,如果公司有驗證過的文本庫,編碼效率不比LabVIEW低
- LabVIEW語法簡單,是因為動態語言,與其相近的Python,MATLAB等語言也一樣簡單
- LabVIEW編寫UI界面簡單,是因為UI庫相對豐富一些,C#里面有更多更專業的庫,一樣簡單
當然,LabVIEW作為一些優點的集合,必然在一些情境下更加具有優勢,也必然在另一些場合劣勢明顯。
文本編程與圖形化編程各有優劣
- 如果做科研探索,原型驗證,首推LabVIEW
- 如果做程序架構學習,換文本語言學習,效率和效果都會翻倍
總結
設計思想跟語言沒有關系,學習設計思想卻跟語言有很大關系
近期一直在充電學習,所以更新不是那么頻繁…講真的,學習的感覺蠻好的,工作后惰性越來越強,找點新東西學習來克服惰性是不錯的方法。


