網路城邦
上一篇 回創作列表 下一篇  字體:
電腦程式教我不能因小失大
2017/10/06 04:51:45瀏覽1224|回應0|推薦11

前兩天有位客戶來電,他們正在用我的車牌辨識軟體作線上測試,說很奇怪的!我的軟體在十幾天的測試中,有兩個時段完全沒有輸出資料!但是預計不可能那麼長時間都完全沒車經過?詭異的是:程式並沒有當掉,過程中也沒有人去動軟硬體,稍後它又會恢復正常運作!難道我的軟體會自己決定何時一例一休嗎?哈哈!

我先努力檢視程式,但想不出可能發生這種異常的原因,之前的客戶也從來沒發生過類似狀況?雖然有可能只是硬體的問題,未必是我的程式出錯,昨天還是到現場(還好是在台南)看看,將程式與現場設定的參數帶回研究。今天一早在辦公室拿一樣的參數測試,一開始程式就很卡,卡到類似當機!我恍然大悟原來是網路的問題。

我的軟體除了自己辨識完會在本機儲存辨識結果,當然也要即時通報客戶的管理軟體有車來了!我的預設通訊方式是使用射後不理的UDP模式,即使對方軟體未開機,甚至網路根本不通也沒關係,我只是廣播電台,發完訊息不必等回應確認就會繼續專心作我的辨識工作。

辨識不能遺漏與中斷當然是最重要的事情!後方的管理軟體若暫時沒有拿到資料,事後還可以來找我的本機資料補救嘛!如果我忙著其他事,連辨識都沒作那就真的GG了!這一次客戶希望我將辨識結果寫到某個網路分享磁碟的目錄,這是我以前的版本沒用過的資料後送方式,看起來就是磁碟存檔而已,但事實上磁碟是在另一台電腦,資料還是要靠網路傳送的!碰到網路偶爾中斷或不穩,資料卡住無法順利存檔,我就中招了!

我將參數帶回測試時,我的網路是好的,但因為輸出目錄不存在(只在測試現場的區域網路內可見),我的程式找不到應該輸出的位置,就會花太多時間搜尋這個其實不存在的目錄,要等好久才會確認無法輸出而放棄,這段時間主程式就會變得很卡,好像當機了,很多車子經過攝影機時就會視而不見了!這好像店員對等待結帳的客人說:「我正在找存錢筒,沒空收你的錢啦!」客人不耐久後就走掉了,你也錯過這筆生意了!

知道原因就好辦了!我將網路輸出動作丟到背景執行緒執行,好像老闆開會中該吃飯了,就交代秘書買便當,自己繼續談生意一樣。如果找不到目標目錄,超過幾秒鐘還是存不成功就刪掉執行緒,這樣就不會影響主程式最重要的辨識工作,即使網路中斷,我的辨識還是會正常的繼續執行。剛剛改好程式也測試正常,鬆了一口氣!這個案子比較大的,每個小問題都會讓我好緊張。

這個案例讓我聯想到很多時候我們自己處理事情也會這樣,因為對枝節的小事太在意,甚至生氣抓狂,情緒上來了非要把它搞定不可!但即使你真的把那件小事解決了,一回頭才發現更重要的大事被耽誤了!這就是因小失大得不償失的意思。

譬如我每次去坐高鐵,都會試著找距離車站較遠的免費停車位,我幾乎從來沒在高鐵站付過停車費!但是有次花了太多時間找免費車位,差一點就錯過了車班。如果為了省一百多元,讓客戶或連繫好的合作夥伴枯等很久,甚至延宕整個工作,那真的是因小失大。如果被人問起遲到的原因,又要被酸客家人一毛錢打24個結了!哈哈!

( 心情隨筆工作職場 )
回應 推薦文章 列印 加入我的文摘
上一篇 回創作列表 下一篇

引用
引用網址:https://classic-blog.udn.com/article/trackback.jsp?uid=yccsonar&aid=108737105