付費限定

業餘大叔程式心得筆記#8:寫程式的不確定性與多重人格/葉光釗

更新於 發佈於 閱讀時間約 4 分鐘

自己寫程式往往有兩個盲點:測試資源不夠,因而難以全盤瞭解用戶使用情形的全貌;另一個則是只有自己跟自己對話時,往往難以做出正確的判斷和決定。無論個人或團隊開發,都有各自的優缺點。

葉光釗
曾任台灣微軟研究開發部副總經理、公共事業群技術長,是 IT 業界經歷長達二十年的老兵。對微軟全球技術的開發實務有深入了解,並有獨到見解。tuna.toa

複雜程式的不確定性

懂得電腦運作原理的人都知道,它的運作是一種「決定性」(deterministic)的機制。簡單的說,程式碼一但寫成,就決定了運作的順序;原則上只要給定同樣的參數,不管重複運作幾次,順序和結果都會是一樣的。
那這裡為什麼會提到不確定性呢?
雖然運作的本質沒變,但是當外部環境的輸入有變化時,程式碼的運作途徑 (execution paths)就會大不相同;所以在全部的程式碼中,實際真正會運算到的比例(或從另一個角度來說,就是「可以被人為測試到的」),就稱為「覆蓋率」(code coverage)。
舉微軟的Word為例子,它的覆蓋率約略只有30%左右。問題的核心是我們開發者並不知道:
在終端使用者的環境當中,倒底是哪30%會被用到,這就是不確定的所在。
最近寫的程式也面臨了同一個問題:由於使用者操作介面的複雜度超高,有各種各樣的邊界條件要處裡,而我的測試資源非常有限(就是我一個人而已),那麼我應該把重兵放在哪裡?

本文已獲作者授權並經本站重新編輯,未經書面許可禁止轉載。本站文章提供付費授權轉載或出版,請參閱授權說明、或來信 ask@tuna.to 洽詢。如果您喜歡這篇文章,請按「喜愛」圖像、也歡迎分享到社群網站上!
以行動支持創作者!付費即可解鎖
本篇內容共 1922 字、0 則留言,僅發佈於吐納商業評論你目前無法檢視以下內容,可能因為尚未登入,或沒有該房間的查看權限。
avatar-img
1.4K會員
2.0K內容數
為您送上頂尖作者的最新管理與科技產業思維。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
有一段時間,惠普(HP)曾經是全球個人電腦和行動運算技術的領導者,而筆者剛好就在50年前那個正要起飛、到處充滿著奇妙科技的年代成為HP的一員。
本文為「企業使命」系列文章的最終篇,講述德州儀器2008年新執行長Rich Templeton再次改變企業使命與經營方針,藉由透徹瞭解產業風向來改善企業體質與結構,讓該公司逐漸攀升,在2017年繳出
有一段時間,惠普(HP)曾經是全球個人電腦和行動運算技術的領導者,而筆者剛好就在50年前那個正要起飛、到處充滿著奇妙科技的年代成為HP的一員。
本文為「企業使命」系列文章的最終篇,講述德州儀器2008年新執行長Rich Templeton再次改變企業使命與經營方針,藉由透徹瞭解產業風向來改善企業體質與結構,讓該公司逐漸攀升,在2017年繳出
你可能也想看
Google News 追蹤
Thumbnail
在創作的路上真的很多人問我說 到底要怎麼做出符合自己期待 但又可以表現得很有美感的作品?🥹 這個問題真的應該是每個創作者都一直在學習的課題吧!
提問的內容越是清晰,強者、聰明人越能在短時間內做判斷、給出精準的建議,他們會對你產生「好印象」,認定你是「積極」的人,有機會、好人脈會不自覺地想引薦給你
“所有人寫的程式會變成指令 每一道指令是由CPU執行 而CPU所能理解的指令類型有限”
Thumbnail
《為什麼這樣工作會快、準、好》一書中說明:我們可以透過訓練自己用機率思考的方式,做出更好的選擇。機率思考即是設想未來的各種可能性,在腦中同時想著各種相互衝突的情境,並推估各種情形發生的比例,就可以比較準確無誤做出預測,並選擇較適當的方案。 除了機率思考之外,另外我們還需要學會「假設」,透過正確假設
上一篇主要在說如何做決定的,這篇就來寫寫面試前該做什麼準備。
Thumbnail
追求乾淨的程式碼是好的開始,但不要陷入過度設計的陷阱,導致程式難以維護。實際上,考慮團隊狀況和專注於解決真正的問題更為重要。了解公司的規模和現實情況,適時調整工作重心。技術不斷進步,使得寫程式變得更加容易,但這並不意味著工程師的角色會消失。在選擇技術時,也要考慮隱形成本有時簡單的解決方案反而更有效。
Thumbnail
資料的統合 在程式設計中,其他人通常關心是否注意到執行的細節。作為程式設計師,主要應該關心的是程式的表現,但往往忽略了很多細節,這些細節可以決定程式的好壞。程式的好壞很大程度上取決於資料的統合,也就是資料是否被正規化。 不同類型的資料在系統中呈現一致 正規化可能對一些人來說聽起來很抽象,有些人
Thumbnail
系統的分析與規劃 在談到程式設計時,首要的是進行系統的分析與規劃。程式設計的起點通常是系統分析與規劃,這涉及到如何分析和設計系統的大原則和方向。為了達到預期效果,重要的是擁有對產業的清晰邏輯認識和深入了解。 進行深入了解 若要進行系統分析,必須對企業的設計和程式設計的對象進行深入了解,以充分理
Thumbnail
對理工出身的我而言,「人的感受」真的很難處理,因為你控制不了對方的感覺。 你想嘛!工程師寫程式,寫錯了,改一改重新編譯,我們沒有必要去對程式碼噓寒問暖呀~
Thumbnail
在創作的路上真的很多人問我說 到底要怎麼做出符合自己期待 但又可以表現得很有美感的作品?🥹 這個問題真的應該是每個創作者都一直在學習的課題吧!
提問的內容越是清晰,強者、聰明人越能在短時間內做判斷、給出精準的建議,他們會對你產生「好印象」,認定你是「積極」的人,有機會、好人脈會不自覺地想引薦給你
“所有人寫的程式會變成指令 每一道指令是由CPU執行 而CPU所能理解的指令類型有限”
Thumbnail
《為什麼這樣工作會快、準、好》一書中說明:我們可以透過訓練自己用機率思考的方式,做出更好的選擇。機率思考即是設想未來的各種可能性,在腦中同時想著各種相互衝突的情境,並推估各種情形發生的比例,就可以比較準確無誤做出預測,並選擇較適當的方案。 除了機率思考之外,另外我們還需要學會「假設」,透過正確假設
上一篇主要在說如何做決定的,這篇就來寫寫面試前該做什麼準備。
Thumbnail
追求乾淨的程式碼是好的開始,但不要陷入過度設計的陷阱,導致程式難以維護。實際上,考慮團隊狀況和專注於解決真正的問題更為重要。了解公司的規模和現實情況,適時調整工作重心。技術不斷進步,使得寫程式變得更加容易,但這並不意味著工程師的角色會消失。在選擇技術時,也要考慮隱形成本有時簡單的解決方案反而更有效。
Thumbnail
資料的統合 在程式設計中,其他人通常關心是否注意到執行的細節。作為程式設計師,主要應該關心的是程式的表現,但往往忽略了很多細節,這些細節可以決定程式的好壞。程式的好壞很大程度上取決於資料的統合,也就是資料是否被正規化。 不同類型的資料在系統中呈現一致 正規化可能對一些人來說聽起來很抽象,有些人
Thumbnail
系統的分析與規劃 在談到程式設計時,首要的是進行系統的分析與規劃。程式設計的起點通常是系統分析與規劃,這涉及到如何分析和設計系統的大原則和方向。為了達到預期效果,重要的是擁有對產業的清晰邏輯認識和深入了解。 進行深入了解 若要進行系統分析,必須對企業的設計和程式設計的對象進行深入了解,以充分理
Thumbnail
對理工出身的我而言,「人的感受」真的很難處理,因為你控制不了對方的感覺。 你想嘛!工程師寫程式,寫錯了,改一改重新編譯,我們沒有必要去對程式碼噓寒問暖呀~