2013年5月19日 星期日

[專訪] 解開人氣程式碼得主,不為人知的一面

文章來源 http://www.labviewpro.net/forum_post_detail.php?post=3603&fid=2

大家是否好奇過,寫出風靡全球《哈利波特》的作者J.K.羅琳,在寫作時有什麼特殊的嗜號(或怪癖?!),或面對那麼龐大的小說架構是如何構思其靈感來源呢?同樣的,習慣與程式語言溝通的LabVIEW programer,是如何以程式邏輯撰寫出程式的?這一次專訪了,5 月份人氣程式碼得主:Polung,他將現身說法,分享在撰寫「記憶大考驗」這組程式碼的心得。


下載「記憶大考驗」程式碼

24 歲的 Polung,今年畢業於國立成功大學碩士班,努力向學的他,接下來將續讀博士班!如此孜孜不惓,真是令小編佩服,除了 LabVIEW 之外, Polung 還鑽研了 Fortran, C, Matlab,等多種程式語言,並活耀於 LabVIEW Pro 論壇,說到LabVIEW 小程式的撰寫, Polung早在 2011 年 5 月的「週年慶程式分享」投票賽中,以「打地鼠小遊戲程式」,獲得壓倒性的勝利,成為週年慶程式活動的人氣王! 2012 年5月,他再次構思了全新的「記憶大考驗」參賽,在強敵環伺,各家程式碼不分軒輊的情況下,他以黑馬之姿再次拿下氣人王寶座!正所謂英雄出少年啊~以下即 是小編與人氣王得主 Polung 的對談:

小編:請問本次程式碼撰寫的靈感是怎麼來的?
Polung:
之前就有過在 LabVIEW 裡面實現洗牌,然後用滑鼠點一下就翻牌的想法。這讓我想起了小時候看的神奇寶貝卡通,每次都很期待主角小智丟出來的寶貝球中會跑出什麼?於是就結合了翻牌的動作以及神奇寶貝的圖案,寫出了這個翻牌記憶遊戲。

小編:那大概花了多久時寫好?
Polung:
兩天。
(謎之音:當時適逢母親節,Polung 是一邊慶祝一邊寫程式的哦~)

小編:撰寫這個程式時遇到過什麼困難嗎?
Polung:
程式邏輯還好,通常腦海中有想法都可以在 LabVIEW 裡面實現。寫 LabVIEW 寫到最後,需要花比較多時間的是在思考整體的架構要怎麼寫,這就跟疊積木一樣,底層沒疊好,想疊的高就不容易了。再來就是人機介面的設計,自己要用的程式 只要符合自己的使用習慣就可以了,但如果像這次程式碼投稿是要分享給大家來玩的,就要思考如何符合大多數使用者的習慣,所以這次的介面我就捨棄了 LabVIEW 裡面的 Button ,改用大部分人用的比較習慣的菜單選項。

小編:至今遇過最難的 LabVIEW 難題為何?
Polung:可能是我還在學校裡面吧!到現在還沒遇到 LabVIEW 寫不出來的程式(笑)。而目前學到的 LabVIEW 知識在學校裡面已經非常夠用了,在研究上也很少有機會開發到大型專案,之後到了業界挑戰會多一些,所以目前還是要多累積一點實力。
(謎之音:有道是,小程式和大專案都需要實力累積啊~ Polung 我相信你沒問題的!)

小編:用 LabVIEW 寫程式有什麼好處?
Polung:
除了可以直接與硬體做連結的優點之 外,LabVIEW 有非常多的 Toolkit 以及範例程式,許多應用領域需要用的程式功能, LabVIEW 的 R&D 已經寫好 vi 可以直接套用,而不需要自己再花時間寫一堆 SubVI 來用,可以省下不少寫程式的時間。

小編:其他程式語言跟 LabVIEW 不同的地方是?
Polung:
LabVIEW 資料流的概念是個非常重要的發明,其他文字敘述式的程式語言在寫程式時, Debug 是非常麻煩的一件事,而在 LabVIEW 裡面只要依循著資料流的順序,就可以很快地找到問題。此外, LabVIEW 圖形化語言的概念,也非常容易和腦中的想法做結合,而不需要將想法再轉換成文字,程式寫起來也就快多了。

小編:程式碼的個人技巧(請分享您的小撇步)
Polung:
看過許多人寫程式都是一氣呵成寫完,然後 在執行的時候才發現程式有許多問題,卻找不出來是哪個部分出錯。其實就像小時候組裝機器人模型一樣,先把手、腳、身體和頭部先組裝好,確定各個部分沒問題 了之後再組合在一起。寫程式也是一樣,先把程式功能模組化,每個功能都個別寫完且測試沒問題了之後,再把一個個模組結合起來。最後會發現主程式看不到任何 程式碼,只有幾個 Loop 和 Wire 把每個模組給串起來,程式碼都藏在模組裡面了。
(謎之音:這一題是幫大家問的)

小編:寫程式碼時有什麼特殊習慣或怪癖?(像是一定要盤腿坐...之類的)
Polung:
以前都是寫好程式定稿之後,再把程式碼整 理一下。現在則是已經被制約了,每放一個 Function 或 VI,我就一定要一邊把程式碼整理的非常簡潔之後,才能繼續往下寫。雖然這樣感覺起來多花了許多時間,但這樣的習慣卻有助於我釐清思緒,在整理程式碼的過 程中,一邊思考下一步該怎麼寫。就算幫別人看程式碼,我也會不自覺的先幫他把程式碼整理一下,再開始看哪裡有問題(笑)。
(謎之音:這麼良好的習慣,也太難養成了吧~!)

小編:平日使用LabVIEW 的機會多嗎?論文專題會用到嗎?
Polung:
LabVIEW 已經變成我非常重要的工具了,平時作業需要寫程式的,我一定是用 LabVIEW 來完成。即使老師規定要用 C 語言,我也是先在 LabVIEW 裡面驗證,然後再把程式邏輯寫成 C 語言。論文就更不用說了,從系統模擬、寫演算法,一直到植入 NI CompactRIO 做實驗驗證,整套都是在 LabVIEW 底下完成的。

小編:本次的得獎心得?
Polung
:agody 前輩承讓了,打地鼠用動畫的方式呈現,這是我沒寫過的,也學到了很多。投稿也只是在於分享的心情,可以學到別人程式的想法和技巧,也可以看到自己還不足的地方。
(謎之音:正所謂,英雄惜英雄)

小編:連續二屆得獎的心得為何?
Polung:
很高興自己分享的程式碼,大家會喜歡。希望下次還有新的東西可以擠出來分享給大家。

小編:若有下一屆還會想參加嗎?三連霸?
Polung:
這種 LabVIEW 愛好者交流的活動是一定要支持的呀!此外也是檢視自己有沒有新的東西可以拿出來分享,代表自己這一年在 LabVIEW 上面又學到了些什麼技巧,功力有沒有長進?三連霸就不敢想了, LabVIEW Pro 破萬人之後,代表台灣的LabVIEW User 越來越多,高手也越來越多了,後生可畏啊!
(謎之音:站務群們都起立鼓掌了,活動可大可小,都需要大家的支持啊~~)

經過了這次的訪問,相信大家和小編一樣,更瞭解一個程式撰寫者的心路歷程,甚至是一組擁有良好程式邏輯及技巧的程式碼撰寫過程。小編專訪初試啼聲,期待下次再相見,最後,附上 Polung 的帥照,讓大家更瞭解這位,樂於分享並追求突破的 LabVIEW 的愛好者。

沒有留言:

張貼留言