從LabVIEW到C++

Paste_Image.png

前言

最近一段時(shí)間一直沒(méi)有更新袁铐,一方面是時(shí)間精力的問(wèn)題(PS:懶癌犯了),另一方面是小黑大部分的時(shí)間都在學(xué)習(xí)C++相關(guān)知識(shí)横浑,惡補(bǔ)了許多的知識(shí)(從大學(xué)C語(yǔ)言水平強(qiáng)制拔高了一段)剔桨。

本文談?wù)勛约航诘囊恍└惺芎透形颍闶菍?duì)一段時(shí)間的總結(jié)和記錄徙融。


為什么要去學(xué)習(xí)C++

用LabVIEW好多年洒缀,在利用LabVIEW做開發(fā),解決問(wèn)題方面欺冀,深感LabVIEW的強(qiáng)大树绩,但是為什么還去學(xué)習(xí)另外一門語(yǔ)言呢?

事實(shí)上隐轩,隨著項(xiàng)目越來(lái)越大饺饭,LabVIEW中的一些限制會(huì)慢慢暴露出來(lái)。一方面龙助,LabVIEW為我們做了很多封裝的工作砰奕,簡(jiǎn)化我們的工作,但需要去接觸底層時(shí)提鸟,LabVIEW的便捷性反而限制了軟件的設(shè)計(jì)军援。另一方面,LabVIEW編程讓我們很容易的上手称勋,卻也將軟件設(shè)計(jì)的很多核心概念屏蔽掉胸哥,讓我們?cè)谲浖O(shè)計(jì)思想上的深入變的非常困難

總結(jié)一下自己的問(wèn)題和客戶的問(wèn)題,發(fā)現(xiàn)LabVIEW在開發(fā)到不同的階段赡鲜,普遍會(huì)遇到下述的問(wèn)題空厌。

1. LabVIEW寫出來(lái)的程序效率比較低

效率問(wèn)題我見過(guò)N多次,從學(xué)校畢業(yè)的學(xué)生银酬,航天嘲更、汽車、電力等行業(yè)的客戶揩瞪,很多人都遇到了相關(guān)的問(wèn)題赋朦。羅列幾個(gè)常見的描述:

  • 信號(hào)量特別多,界面刷新特別慢
  • 功能全部都好使,但是控制周期不知道為什么特別長(zhǎng)
  • 程序越寫越大宠哄,也越寫越卡壹将,卡到編程開發(fā)者根本不知道原因在哪里
  • 算法的執(zhí)行時(shí)間比想象中的長(zhǎng)....

2.LabVIEW寫的程序拓展非常困難

遇見很多客戶來(lái)咨詢,大部分的問(wèn)題是程序添加一個(gè)功能非常困難毛嫉,有的甚至可以說(shuō)異常困難诽俯。

舉例兩個(gè)場(chǎng)景,我覺(jué)得肯定不陌生:

案例一:編程經(jīng)驗(yàn)不足導(dǎo)致程序拓展困難

公司招來(lái)幾個(gè)應(yīng)屆生承粤,開發(fā)一個(gè)新業(yè)務(wù)程序暴区,不長(zhǎng)時(shí)間開發(fā)的有模有樣,要界面有界面密任,要功能有功能颜启。領(lǐng)> 導(dǎo)很開心,發(fā)現(xiàn)原先只能想一想的項(xiàng)目也能實(shí)現(xiàn)浪讳,迅速推出產(chǎn)品計(jì)劃缰盏,需求也源源不斷。

LabVIEW工程師賣力維護(hù)淹遵,程序越來(lái)越大口猜,但添加一個(gè)功能的時(shí)間卻越來(lái)越長(zhǎng),添加到一段時(shí)間后透揣,整個(gè)程序就是意大利面條济炎,無(wú)論是單個(gè)的代碼框圖還是整個(gè)的軟件架構(gòu)全都混亂不堪.....

案例二:頻繁換人,團(tuán)隊(duì)風(fēng)格不一致導(dǎo)致拓展困難

公司讓一個(gè)老員工開發(fā)LabVIEW程序辐真,老員工用過(guò)很多的編程語(yǔ)言须尚,熟練也懂業(yè)務(wù)。開發(fā)程序一段時(shí)間后侍咱,程序迅速的跑起來(lái)了耐床。

一段時(shí)間后,老員工休假楔脯,讓另外做LabVIEW相關(guān)開發(fā)的去接手這個(gè)項(xiàng)目撩轰,再過(guò)一段時(shí)間這個(gè)員工由于其他原因沒(méi)時(shí)間維護(hù),再換一個(gè)人昧廷。

每次領(lǐng)導(dǎo)都認(rèn)為L(zhǎng)abVIEW開發(fā)程序比較簡(jiǎn)單堪嫂,一個(gè)人就可以搞定,當(dāng)換了2次之后木柬,程序已經(jīng)難以維護(hù)皆串,混亂的編程風(fēng)格讓維護(hù)者不堪代碼修改的重負(fù),整個(gè)項(xiàng)目處于半吊子狀態(tài)無(wú)法繼續(xù)眉枕。

這兩個(gè)案例不說(shuō)人人都會(huì)遇到愚战,但大部分LabVIEW工程師中都會(huì)存在這些問(wèn)題娇唯,而且越是遇到問(wèn)題的工程師,越認(rèn)為L(zhǎng)abVIEW編程非常簡(jiǎn)單...這也是很多研究所寂玲,甚至好多小企業(yè)的通病。在項(xiàng)目中梗摇,如果沒(méi)有很好的開發(fā)風(fēng)格和團(tuán)隊(duì)管理拓哟,單槍匹馬不注重軟件質(zhì)量的開發(fā),只能讓軟件始終停留在勉強(qiáng)能用的階段伶授。

3. LabVIEW有天花板断序,有需求實(shí)現(xiàn)不了

LabVIEW寫程序的問(wèn)遇到的最多題是軟件能力的問(wèn)題,這些問(wèn)題是由LabVIEW高度封裝的特性導(dǎo)致糜烹,為了方便工程師使用违诗,做出了很多反軟件工程的一些設(shè)計(jì)。

LabVIEW初衷為工程師降低語(yǔ)言依賴疮蹦,關(guān)注核心業(yè)務(wù)诸迟,在快速原型和解決研發(fā)性質(zhì)項(xiàng)目的時(shí)候,它可以讓我們加速項(xiàng)目進(jìn)度愕乎,是研發(fā)的利器阵苇。

但隨著軟件功能的強(qiáng)大臨,測(cè)控軟件也面著所有軟件開發(fā)通用的問(wèn)題感论,原型驗(yàn)證與產(chǎn)品研發(fā)在需求和最終效果上都有很多的差別绅项。

那C++比LabVIEW好用嗎?

既然你說(shuō)這么多LabVIEW的壞話比肄,那C++好用嗎快耿?

答案非常遺憾,C++還不如LabVIEW好用芳绩,在解決問(wèn)題方面掀亥,C++是LabVIEW萬(wàn)分之一都不到。C++學(xué)習(xí)初期示括,大量的時(shí)間都在解決指針問(wèn)題铺浇,語(yǔ)法問(wèn)題,學(xué)習(xí)曲線很陡峭垛膝。即使你懂了一些基本語(yǔ)法鳍侣,在解決問(wèn)題上也很困難,還需要學(xué)習(xí)面向?qū)ο笏枷牒鹩担盒途幊痰纫幌盗械母拍钜芯郏人袃?nèi)容學(xué)完出師,LabVIEW工程師都做完好多個(gè)項(xiàng)目了凿可。

以我親身經(jīng)歷而言惑折,用慣LabVIEW再去學(xué)習(xí)C++反而更難入手授账,有一次,讀寫配置文件讀取的程序都花費(fèi)了我1天的時(shí)間惨驶,而LabVIEW只要幾分鐘白热。

以前寫LabVIEW程序大家都努力做成Windows風(fēng)格,而使用C++之后發(fā)現(xiàn)不是Windows風(fēng)格好粗卜,而是VC++只能做成這樣子...做其他界面的代價(jià)太大...

以前寫LabVIEW多線程沒(méi)覺(jué)得有什么難屋确,而用C++去做,感覺(jué)就是難于上青天续扔,線程之間的概念理解不清楚攻臀,還不如不用多線程。

很多優(yōu)秀的軟件概念已經(jīng)封裝到LabVIEW的基本語(yǔ)法纱昧,使用C++需要我們重新把理所當(dāng)然的東西深入的學(xué)習(xí)一遍刨啸。

那你學(xué)C++干嘛

雖然C++各種不便于工程。但识脆,正所謂设联,尺有所短,寸有所長(zhǎng)存璃,不同的軟件工具在不同的地方各有優(yōu)劣仑荐。C++雖然學(xué)習(xí)曲線陡升,但是在效率和設(shè)計(jì)思想上的書籍纵东,非常豐富粘招。長(zhǎng)期的軟件工程思想都能在這里找到影子。

我們能找到大量的資料探討偎球,如何去使用指針洒扎,如何節(jié)約內(nèi)存,如何避免復(fù)制衰絮。

我們可以通過(guò)C++可以擺脫很多低效的編程操作袍冷,如LabVIEW中大量的圖標(biāo)設(shè)計(jì)和右鍵操作

我們可以實(shí)現(xiàn)相同的功能,開發(fā)的程序都在K級(jí)別猫牡,而LabVIEW至少要上M

當(dāng)然胡诗,世界總是公平的,上帝為你關(guān)了一扇門淌友,就會(huì)開一扇窗煌恢,仔細(xì)尋找不同工具之間帶給你的便利性,你會(huì)找到最適合自己的解決問(wèn)題的方案震庭。


后記

后續(xù)小黑還會(huì)繼續(xù)充電C++瑰抵,在陡峭學(xué)習(xí)曲線上攀爬,寫文章可能會(huì)偏向于C++和一些碎片化的心得器联,共勉之二汛。

記得很有意思的兩個(gè)段子對(duì)我感觸很深婿崭,分享給大家:
1. LabVIEW

硬件領(lǐng)域(硬件開發(fā)&測(cè)試)的工程師們,一般不懂軟件肴颊。
所以氓栈,本來(lái)在硬件工程師眼中“寫程序這么反人類的事情”。
突然間婿着,硬件工程師們發(fā)現(xiàn)颤绕,自己用LabVIEW居然可以編寫程序了。
“哎祟身,居然特么實(shí)現(xiàn)了”
“哎,程序跑起來(lái)了”
“哎物独,我擦袜硫,出結(jié)果了”這種感覺(jué)真是太酷了,奏這樣挡篓!

2.C++

C++跟其他語(yǔ)言有一點(diǎn)區(qū)別婉陷,就是早期你才剛學(xué)習(xí)一點(diǎn)點(diǎn)的時(shí)候,什么靠譜的程序都寫不出來(lái)官研,等到你學(xué)的差不多了秽澳,突然就變的牛逼了

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市戏羽,隨后出現(xiàn)的幾起案子担神,更是在濱河造成了極大的恐慌,老刑警劉巖始花,帶你破解...
    沈念sama閱讀 207,248評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件妄讯,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡酷宵,警方通過(guò)查閱死者的電腦和手機(jī)亥贸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)浇垦,“玉大人炕置,你說(shuō)我怎么就攤上這事∧腥停” “怎么了朴摊?”我有些...
    開封第一講書人閱讀 153,443評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)煌抒。 經(jīng)常有香客問(wèn)我仍劈,道長(zhǎng),這世上最難降的妖魔是什么寡壮? 我笑而不...
    開封第一講書人閱讀 55,475評(píng)論 1 279
  • 正文 為了忘掉前任贩疙,我火速辦了婚禮讹弯,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘这溅。我一直安慰自己组民,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,458評(píng)論 5 374
  • 文/花漫 我一把揭開白布悲靴。 她就那樣靜靜地躺著臭胜,像睡著了一般。 火紅的嫁衣襯著肌膚如雪癞尚。 梳的紋絲不亂的頭發(fā)上耸三,一...
    開封第一講書人閱讀 49,185評(píng)論 1 284
  • 那天,我揣著相機(jī)與錄音浇揩,去河邊找鬼仪壮。 笑死,一個(gè)胖子當(dāng)著我的面吹牛胳徽,可吹牛的內(nèi)容都是我干的积锅。 我是一名探鬼主播,決...
    沈念sama閱讀 38,451評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼养盗,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼缚陷!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起往核,我...
    開封第一講書人閱讀 37,112評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤箫爷,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后铆铆,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蝶缀,經(jīng)...
    沈念sama閱讀 43,609評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,083評(píng)論 2 325
  • 正文 我和宋清朗相戀三年薄货,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了翁都。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,163評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡谅猾,死狀恐怖柄慰,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情税娜,我是刑警寧澤坐搔,帶...
    沈念sama閱讀 33,803評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站敬矩,受9級(jí)特大地震影響概行,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜弧岳,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,357評(píng)論 3 307
  • 文/蒙蒙 一凳忙、第九天 我趴在偏房一處隱蔽的房頂上張望业踏。 院中可真熱鬧,春花似錦涧卵、人聲如沸勤家。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)伐脖。三九已至,卻和暖如春乐设,著一層夾襖步出監(jiān)牢的瞬間讼庇,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工近尚, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留巫俺,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,636評(píng)論 2 355
  • 正文 我出身青樓肿男,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親却嗡。 傳聞我的和親對(duì)象是個(gè)殘疾皇子舶沛,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,925評(píng)論 2 344

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,527評(píng)論 25 707
  • 想從事游戲開發(fā)如庭,1 年內(nèi)能精通 C++ 嗎,還需要學(xué)習(xí)什么撼港? 【MiloYip的回答(383票)】: 本人大約從2...
    踩在浪花上00閱讀 23,358評(píng)論 18 204
  • 本文把程序員所需掌握的關(guān)鍵知識(shí)總結(jié)為三大類19個(gè)關(guān)鍵概念坪它,然后給出了掌握每個(gè)關(guān)鍵概念所需的入門書籍,必讀書籍帝牡,以及...
    dle_oxio閱讀 11,083評(píng)論 6 244
  • 最近我在今日頭條問(wèn)答里看到一個(gè)問(wèn)題我覺(jué)得很讓我哭笑不得,題目是:為什么喪偶式育兒現(xiàn)在越來(lái)越多罩息?喪偶式育兒...
    阿璇璇閱讀 1,350評(píng)論 0 2