蝦米爸爸 wrote:
我同事是PM,不碰程式這一塊
你知道這狀況下程式很難查嗎?
檢查程式碼及測試反覆做了很多遍,邏輯看來都是對的
我們公司用的設備和客戶用的不一樣
在我們公司內追查時,並未"重現"客戶那邊的狀況
但客戶已經上線營業要用,無法讓我們在那邊做大量測試
且客戶認為我們應該就要在我們公司查出來,不應該打擾他們
所以我們只好運用了一些方法
例如在程式中設定多個記錄點,把相關資訊都記錄下來
然後根據這些記錄下來又多又雜的資料進行分析
發現是網路連線中斷所造成的
追查網路連線中斷的原因是客戶所用的高階家用型AP...(恕刪)
雖然這樣說不禮貌,但貴公司程式設計師,功力有待加強啊
寫程式的都知道,有一種東西叫做:例外處理
例外處理,就是事先設想當程式做一些行為時,可能會發生的意外狀況,導致程式無法順利運行時,該如何處理。
尤其是高機率發生的意外狀況,一定要做例外處理。
比方:去讀取一個檔案拿資料,接下去就要檢查讀入的值是否為空值,或數值有否異常,如果有異常就跳到例外處理子程序段。
舉個例子,有些安卓軟體,當網路異常,遠端無法讀入資料時,就會顯示:網路不給力。而不是在那邊圈圈轉不停,或者直接整片白螢幕當在那裡。
任何網路應用軟體,都必須考慮到網路不穩定的異常狀況,而事先預想如何例外處理,比方每次要和遠端收發信息前,就先紀錄時間點,當超過一定時間無法取得正確回傳值,即進行例外處理。
雖然這會增加很多程式碼,讓程式變得很複雜,整體運行速度下降,或軟體稍微肥大,但卻是必要的,不這麼做,只要一個網路異常,軟體運行就GG了。
也可以寫成一個子程序函式,或者物件,每次要處理網路收發時,去呼叫子程序或實體化物件就好,就不必重複撰寫。寫好的子程序或物件,還可以重複利用,給別的軟體專案也用。寫的好,只須設計一遍就行了。
嚴格說起來,這並不是硬體的問題,而是軟體的問題。
一個需透過網路才能運行的應用軟體,如果沒有對網路異常進行例外處理,說實在是有點扯。
網路異常的狀況太多了,也不是只有 client端 網通設備的問題而已,還有 ISP爛、線路老舊、伺服器無回應......等等的問題。
像有些國家網路落後的,可能網路斷斷續續,PING值高,時好時壞什麼的。但軟體作者,哪可能去負責那些。網路異常,就直接告知使用者,網路有問題。至於啥問題,怎麼處理,使用者他家的事情。撇清關係,和軟體沒關係。






























































































