Re: [分享] C/C++語言工作上的心得
※ 引述《calais007 (淺水中)》之銘言:
: 6. goto很好很強大, 拿來error handler非常好, 但每的function都這樣用
: 讓我感受到大量使用goto只顯示你寫code malloc了太多大便, 導致
: 一定要goto來清大便, 不懂為什麼要到處拉屎, 能用array就array為什麼
: 要用pointer來顯示自己的高級?
我覺得,這是一種處理例外的機制. 本來沒做例外處理時,軟體的正確性是
內嵌在每一位寫程式的人工作中,像你所說,你要用linked list還是array,
要即時考慮具體的資料數量,於是,如果你選擇linked list,就要多花相當多時間
寫不會跑出奇怪狀況的碼.
但每個function都加上goto處理error,是在機制上把例外處理的份量,
從寫程式的人的主線思路中分出來,放在後續測試中. 所以當你在寫的時候不要
想很多,後來做測試的時候,就可以根據程式中的明文來定義許多種測試案例,
有一種案例是正常的案例,其他案例是分別去撞各種例外情況.
當然你可以說程式人要有自我修養是不到處放大便, 但是工作上可不是爭論自我修養
的場合. 如果你在一個工作環境中,寫的程式跑了之後,大錯小錯出來,不是用機制
的方式去除錯或容錯,而是把各種錯誤拿去回頭怪你們沒認真做,那就會有幾個問題:
1. 這個錯要怪誰? 選項有主管,使用者,工程師; 2. 可能一個錯的類型是因為定義
需求而未實作,但是在緊張兮兮的主管定義,卻會說成是做錯; 3. 浪費很多時間討論
錯誤的類型,拖延除錯的時間. 而當你用goto機制去抓住error時,意思就是
將保證程式不錯誤的壓力從第一線工作上移開,換得的是比較愉快的工作環境.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.112.224.243
※ 編輯: yauhh 來自: 59.112.224.243 (04/29 09:41)
→
04/29 23:41, , 1F
04/29 23:41, 1F
→
04/30 10:07, , 2F
04/30 10:07, 2F
→
04/30 10:07, , 3F
04/30 10:07, 3F
→
04/30 15:25, , 4F
04/30 15:25, 4F
→
04/30 20:32, , 5F
04/30 20:32, 5F
討論串 (同標題文章)