代客除錯 程式debug

代客除錯 程式debug


開發程式是一場耐力賽,可能寫程式碼過程很順利,但跑起來卻不順利。不順利的成分可能包含閃退、當機、功能異常或效率不彰。舉例來說,有時候功能全都做對了,但操作起來就像睡著一般;或者跑起來很快「就」閃退當機。


最近遇到兩件事後有感而發:一是某公司app上架Google play store被退件(拒絕);二是家人(小孩)在新公司接手一個flutter開發專案的程式碼。


app上架被退件是常有的事!因為上架有一大堆審核規定,很少人會真的去研究全部的規定。以我自己來說,也是等到被退件才根據退件原因做調整。最近遇到的某公司被Google 退件的理由,是程式無法測試,Google很好心的的給了截圖,確實出現白畫面。也就是說,程式一開始執行就出現白畫面,所以Google無法測試,當然退件。這家公司經歷幾個月的時間都無法解決此問題。朋友找我協助時,我說,出現白畫面是很容易解決的問題,怎麼會拖這麼久?朋友說,他們找了很多人測試都沒有遇到白畫面,也嘗試修改了很多次重新申請上架,結果都相同,懷疑是DexGuard導致白畫面。我問,能給我source code嗎?朋友請對方跟我聯絡。我拿到source code後花了幾分鐘時間看了一下程式碼,找到兩個問題後給對方建議。但對方說「不可能」是那兩個問題。經過三天的溝通,對方仍然堅持不是我說的問題。我有點不高興的告訴朋友說,這件事我幫不了。我說,他們遇到白畫面而不明原因,我已經告知:1.如何讓測試過程出現白畫面,2.並且提供解決方法。但對方堅持不是我說的問題,所以這件事我幫不了。朋友聽了我抱怨,就說她去溝通。朋友建議對方,根據我的建議修改程式再送審,就能知道是不是我說的問題。果然這次送審就出現不同的退件理由,後來修正就順利通過審核上架了。


第二件事,是小孩接受新的工作任務,維護並且繼續開發一個flutter專案。因為接手時已經是一個很龐大的flutter專案,bug很多,要在有bug的大型專案上增加程式碼,無疑是個爛主意。但公司交代的任務也只能照辦。小孩壓力很大,我告訴他,反正活越久領越多,撐下去就是。為了給小孩信心,我也偶爾協助看看程式碼。我看了程式碼後說,寫這個程式碼的人對 c/c++ 應該很熟但對flutter不熟,所以他想要把flutter當 c/c++使用,導致一發不可收拾,應該是承受不了自己的傑作。小孩說,那個程式員離職了。中肯的說,這家公司給的待遇還算不錯,一個有經驗的程式員突然離職,如果不是待遇問題,那就是遇到瓶頸了。我看了程式碼就感覺那個程式員「很會寫」但「不會debug」,所以棄甲而逃!


寫程式真的很簡單,要不出錯卻很難。很多程式設計師,都不喜歡維護程式,只想寫新的程式。不維護別人的程式還算有理,不維護自己的程式這就很耐人尋味了!據說程式人員離職的很大原因,是不想維護自己的程式,也就是所謂的debug。開過程都很愉快,但到了測試階段就一個一個離職。我小孩接受的新任務,其實是一個新的工作機會。到職沒多久就遇到公司預定的「測試展示」行程。果然跟我預料一樣,預定的測試展示日期快到之前,就走了八個程式設計師。奇怪的是,預定展示之前的所有工作報告,都是正常完成進度!為何測試展示之前會全部離職?原因很簡單,就是這些程設人員只想寫程式,不想抓蟲。一個大型專案,每個人都說自己的程式沒錯,都是別人的錯,就無法整合成功,開會就像一場躲避球賽,先閃人再說。


再回來說第一個事件,app上架問題。朋友說我可以報價。因為對方也是一個大型專案,拖延幾個月的成本非常可觀。我本來想這是舉手之勞!幾分鐘的事情如何報價?沒想到朋友說,這是解決問題的技術能力,不是用幾分鐘來評估,如果那麼簡單,對方為何花了幾個月都解決不了。後來我就報了五萬元稅外加。對方公司的副總親自來收發票,還直說謝謝我的幫忙。一下之間又讓我想起多年前的一段往事,話又多了起來想要炫耀一下。


話說很久以前,當時macOS是很尊貴的身分象徵,市場也相對封閉。有一家廠商找我開發mouse USB driver for macOS。合約過程談了三個月。合約簽下來的第二天我就把driver 測試版寄給對方。沒想到對方收到driver 測試版後,竟然打電話來把我臭罵一頓,說我簡直是土匪!兩天的工作收他六十萬台幣!我聽了自然不高興,就說不滿意可以解約。對方也同意解約,於是就解約了。沒想到過了幾天,對方又來電說希望我算便宜一點。很奇怪的一件事,談合約三個月過程他自己表示,因為公司內部開發兩年多,做不出來,又發包多次也失敗,這才找到我。這次好不容易才簽了合約,拿到的測試版driver也是可以正常工作的,產品都已經ready了,不能解約。我想他大概在公司被鬥爭了才來跟我懺悔,我當然不想理他。後來我把driver 用一百萬台幣賣給不同公司。也就是說,六十萬他嫌貴,一百萬還有人買。他們自己開發與發包歷經幾年的失敗都不需要成本嗎?


又說到遠傳的全音樂,以前是Omusic,後來改名為 friDay 音樂播放器,也是很多年以前的故事了。我接觸到這個專案的時候,遠傳已經箭在弦上。此話怎講?因為遠傳的全面廣告活動都是一年多以前就預定好的。也就是說,音樂播放器這個app是遠傳的大事件,為了這個app才成立全音樂這家子公司,外包與行銷活動全都是預定好的行程。我接觸到的時候已經接近廣告曝光之前,而軟體竟然沒有開發出來。果然時間一到,廣告全面曝光,但沒有人知道是什麼廣告,因為沒有app。後來我承包了遠傳 macOS/iPAD/Android三個app。歷經九個月,一人完成程式碼任務,收費650萬台幣。我特別強調程式碼任務,因為這個專案動員很多人,包含規劃、測試、UI/UX的很多人員,都是全音樂的人員。


故事很多,說不完的。但只要說到寫程式,專家一大堆!每個人都很厲害。但要說到程式debug,能閃則閃,程式閃人也跟著閃。當時遠傳的外包失敗,並非沒有開發出來,而是外包商無法解決閃退問題。一個會閃退的程式...很多大型專案經常如此!


所以說,如果有人遇到程式開發的問題,可以跟我聯絡,代客debug,代客除錯,程式抓蟲,這是我的專長。我想,在網路上很少人有敢這樣誇口!但我很有經驗,所以我敢誇口!不信可以試試,跟我聯絡: chengansun@gmail.com


2022/11/17



分享此篇文章: