看板 Soft_Job 關於我們 聯絡資訊
※ 引述《iincho (..)》之銘言: : 搞軟工最討厭的就是這種只看皮相不看內涵的東西...<o> : 以這個例子來說,如果程式錯誤處理做的好,那我比較傾向是分析比較完善, : 而不是每個if後面都有加else這種鬼扯淡的說法... 倒也不算是鬼扯淡啦。 很多寫程式的人有的時候會對自己的邏輯跟分析太有自信, 其實邏輯或分析能力可能沒有自己以為的那麼好, 在一定程度上養成好習慣可以快速找到問題所在。 有的時候實作的問題就剛好出在自己或一群人沒有考慮分析到的地方。 加上個 else 補個 debug message 順手一下又不一定有什麼損失。 例如在下搞一個很冷門的 Embedded System (為了省空間幾乎只有基本的簡單kernel.. ), 而搞 Embedded System ,其實常常發生 overflow 的問題, 畢竟常常有東西是 8 bits 或 16 bits 的, 於是我就漸漸養成一定會去檢查溢位的習慣。 常常被溢位搞到於是自然很重視這個檢查, 要不然以前覺得只是個加減還加什麼溢位檢查,根本是嗤之以鼻^-(oo)-^。 當然這是在我這家公司我才會重視這種問題啦, 因為不小心不是道個歉就算了,而是有可能出一個到很多個人命,賠不起的… 不過在大部分的場合,這種事情通常不用這麼吹毛求疵啦。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.124.152.16
lgd1008:怎麼到現在, 加else還在跟嚴謹綁在一起? 12/28 09:56
lgd1008:else又跟debug message 綁在一起 ... 12/28 09:58
lgd1008:基本上嚴謹有很多方法可做 12/28 09:59
lgd1008:design by contract, guard condition, mock object .... 12/28 10:03
lgd1008:exception handling .. 等等 12/28 10:04
lgd1008:加個 else 算哪門子的嚴謹? 老實說只感覺是對程式的掌握力 12/28 10:05
lgd1008:不夠,才會在程式中的每個地方都有不確定的事 12/28 10:06
luciferii:樓上,以之前的例子來看,建議可以偶爾試試加點垃圾else 12/28 10:12
luciferii:或許會發現PG對「程式的掌握力」倒底有多不足 12/28 10:13
lgd1008:加垃圾else是好事? 以我來看掌握度不足才危險...舉個例子 12/28 10:14
lgd1008:程式新鮮人寫的糟糕code常會有的特點, 像 12/28 10:15
lgd1008:到處充滿註解的程式, 滿是 //XXX 只為了隨時要 debug 12/28 10:16
lgd1008:程式中重覆的function一堆, 重覆的檢查也一堆 12/28 10:18
lgd1008:或者程式中充滿debug message, 比正常的程式還多 12/28 10:19
lgd1008:這些特徵都是"危險"的指標, 代表新人對程式的掌握度不好 12/28 10:20
lgd1008:我覺得應該做的,是鼓勵他們去思考與掌握自己的程式 12/28 10:21
lgd1008:而不是教他們去使用一些, 沒效率但一定能解決的方法 12/28 10:22
lgd1008:回到那些垃圾else, 你不覺得那是"不好"程式的特徵? 12/28 10:23
lgd1008:因為"垃圾"code,不管是重覆的什麼,都是好程式所要避免的 12/28 10:25
kerickuo:lol, I said it's a VERY SIMPLE KERNEL. lol 12/28 10:59
kerickuo:簡單來說,你說的這些東西完全不支援,那個 kernel 根本 12/28 11:00
kerickuo:是垃圾,是該丟棄的廢物,可是不巧在我這領域用很多 lol 12/28 11:00
kerickuo:因為要把這麼多東西塞在 2mb 的空間太痛苦了, lol。 12/28 11:01
kerickuo:連個 TLB 都沒有的 os, contract 又根本不合實際開發 lol 12/28 11:03
kerickuo:算了,大家開心就好,況且我也沒說這樣叫嚴謹,只是要避 12/28 11:03
kerickuo:免錯誤在我的工作中我必須要這樣處理,本來就跟嚴謹無關 12/28 11:04
kerickuo:我的開發環境中沒有這些東西,所以有支援的人要惜福喔:P 12/28 11:05
kerickuo:我只能努力讓我的工作不要誤作動免得出人命,其他跟我無 12/28 11:07
kerickuo:關 lol 我的產品賣到醫療跟航空管制,我不想出人命,就 12/28 11:09
kerickuo:這樣,大家開心就好。 lol 12/28 11:09
xam:keric 你提的只是一些開發的除錯技巧,並不是什麼良好的模範 12/28 11:28
kerickuo:我並沒有說我的是良好的模範啊,只是逼得不得不這樣做 12/28 11:29
kerickuo:所以我說了,大家開心就好。 lol 12/28 11:30
luciferii:不管是註解、debug message、else和所有垃圾除錯碼 12/28 12:11
luciferii:出發重點就是在於不要相信「人」的能力 12/28 12:12
luciferii:不一定會派上用場,只是種保險作法。我不認為這是「好程 12/28 12:13
luciferii:式所要避免」的,再熟練的人類高手,也有恍神的時候。 12/28 12:14
lgd1008:加個debug message就可以讓你的程式不會出人命? 12/28 12:31
lgd1008:你都不覺得你這些經驗,跟你的結論沒什麼關連? 12/28 12:32
kerickuo:是啊,你開心就好。 :) 12/28 12:34
kerickuo:我什麼都沒說,大家開心就好。 :D 12/28 12:35
kerickuo:我並不想在這種地方作員工教育訓練以及洩漏公司機密 XD 12/28 12:36
kerickuo:況且這只代表我們工作的性質不一樣,其實沒有什麼意義。 12/28 12:38
kerickuo:而且我只是說順手作個 debug ,並沒有說我不去作 correct 12/28 12:38
kerickuo:反正人命是我在背負的,其他人開心就好。 :) 12/28 12:39
lgd1008:所以結論是加else可以舒解你對於人命的壓力? 12/28 12:45
lgd1008:但其實對於程式可靠度,嚴謹等...並沒有任何幫助? 12/28 12:46
kerickuo:你的推論非常奇怪,恕我不回應。 :) 12/28 12:46
neutrino:keric是對溢位的發生很小心 加else的市cheng那篇裡面的 12/28 12:46
kerickuo:希望你以後不要進來這種吹毛求疵的領域。 :) 很累的 :) 12/28 12:47
neutrino:主管啦. 我完全認同嚴謹, 我只是真的不懂cheng那篇的主管 12/28 12:47
neutrino:把嚴謹對應到if必加else 是如何成立的 12/28 12:48