Re: [閒聊] 各種神人的code

看板Soft_Job作者 (累人啊....)時間11年前 (2014/09/08 23:13), 編輯推噓30(30042)
留言72則, 31人參與, 最新討論串8/17 (看更多)
我也來分享一個,與資料庫連結的相關程式碼 if (!connected()) { if (!connected()) { if (!connected()) { goto Err; } } } 大概的意思是這樣吧,看到goto我就跑去喝飲料了(因為要降火氣XD) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.129.9.52 ※ 文章網址: http://www.ptt.cc/bbs/Soft_Job/M.1410189227.A.FC7.html

09/08 23:16, , 1F
goto 很好用阿
09/08 23:16, 1F

09/08 23:48, , 2F
因為很重要,所以要說三次
09/08 23:48, 2F

09/08 23:58, , 3F
retry兩次的意思
09/08 23:58, 3F

09/09 00:04, , 4F
程式可能有bug所以嘗試個三次臭了嗎
09/09 00:04, 4F

09/09 00:12, , 5F
每次看到goto都會想到Apple bug XD
09/09 00:12, 5F

09/09 00:22, , 6F
goto有什麼問題嗎? C很常用啊
09/09 00:22, 6F

09/09 00:23, , 7F
我寫C倒是不太會用GOTO~@@~
09/09 00:23, 7F

09/09 00:24, , 8F
但聽說setjump和longjump很常用?
09/09 00:24, 8F

09/09 00:26, , 9F
在某些相對單純的error handling上 用goto或許可以接受啦
09/09 00:26, 9F

09/09 00:28, , 10F
尤其是在try-catch並不傾向能夠被廣泛運用的場合
09/09 00:28, 10F

09/09 01:02, , 11F
因為課本有教,不要用 goto?
09/09 01:02, 11F

09/09 01:11, , 12F
有些driver也很多goto,通常是為了做error handle
09/09 01:11, 12F

09/09 01:13, , 13F
其實我覺得蠻淺顯易懂的呀...
09/09 01:13, 13F

09/09 01:28, , 14F
goto在linux世界裡很正常啊,不是不能用而是不要亂用
09/09 01:28, 14F

09/09 07:46, , 15F
linux kernel 一堆goto
09/09 07:46, 15F

09/09 08:20, , 16F
我這個例子有那麼底層嗎?只是在連資料庫耶...
09/09 08:20, 16F

09/09 08:46, , 17F
組合語言 機器語言用的也是goto 書上寫用GOTO不好 我看了也
09/09 08:46, 17F

09/09 08:47, , 18F
覺的很奇怪 你用一個for迴圈 裡面就是一個goto的命令
09/09 08:47, 18F

09/09 08:56, , 19F
即時是userspace的code,goto還是很常見
09/09 08:56, 19F

09/09 09:12, , 20F
連資料庫扯啥linux kernel和driver? 你們真的是工程師?
09/09 09:12, 20F

09/09 09:23, , 21F
你怎麼不先去搞懂為何Linux kernel要使用goto?
09/09 09:23, 21F

09/09 10:12, , 22F
組語當然一堆goto,但for都幫你包起來了為何還要用?
09/09 10:12, 22F

09/09 10:26, , 23F
跟底層沒關係,而是要清楚goto的使用時機以及人家是怎麼
09/09 10:26, 23F

09/09 10:27, , 24F
用的,而非看到goto就直覺不能用~
09/09 10:27, 24F

09/09 10:48, , 25F
邏輯清楚的話 goto是非常好用的
09/09 10:48, 25F

09/09 11:41, , 26F
我覺得這個CODE很棒。沒什麼好嫌的
09/09 11:41, 26F

09/09 11:55, , 27F
http://ppt.cc/vPuw 'goto fail' on ssl
09/09 11:55, 27F

09/09 12:44, , 28F
goto fail是bug,但難道for while有的沒的語法就不會有?
09/09 12:44, 28F

09/09 12:44, , 29F
語法本身不是問題,有問題的是使用的人~
09/09 12:44, 29F

09/09 12:48, , 30F
人非聖賢..本來各種建議,範式,模式,習慣,就是想儘量避免
09/09 12:48, 30F

09/09 12:49, , 31F
這些不小心所造成的錯誤. if(const == var)和 if(var ==
09/09 12:49, 31F

09/09 12:50, , 32F
const)兩種都一樣邏輯,為什麼建議用第一種?
09/09 12:50, 32F

09/09 12:51, , 33F
goto不是不可以用,但是用了就要自己皮繃緊一點, 也要叫後
09/09 12:51, 33F

09/09 12:51, , 34F
面維護的人注意一點.
09/09 12:51, 34F

09/09 13:00, , 35F
apple 的 ssl bug 問題出在人,根本不在 goto...(茶)
09/09 13:00, 35F

09/09 14:44, , 36F
你踩到程設萬年戰點了... goto能用否?
09/09 14:44, 36F

09/09 15:01, , 37F
"理論上是不需要goto的,一定有另一個方法可以取代goto敘
09/09 15:01, 37F

09/09 15:02, , 38F
述...(略),我只建議當它優於其它可用的方法時才使用之"
09/09 15:02, 38F

09/09 15:02, , 39F
以上是書上說法,我想不到連個資料庫有一定要用goto的必要
09/09 15:02, 39F

09/09 15:03, , 40F
拜托哪個高手來開釋一下,還有沒人覺得那三層if很礙眼嗎XD
09/09 15:03, 40F

09/09 15:13, , 41F
理論上是不需要用到recurrsive的,所有的recurrsive都可以
09/09 15:13, 41F

09/09 15:13, , 42F
改寫成 non-recurrsive function... 但這不能拿來當不準
09/09 15:13, 42F

09/09 15:13, , 43F
用 recurrsive function 的理由啊 XDDDD
09/09 15:13, 43F

09/09 15:15, , 44F
goto有時很好用啊.
09/09 15:15, 44F

09/09 15:17, , 45F
不過這樣寫,看久會頭暈.
09/09 15:17, 45F

09/09 15:18, , 46F
因為else 有時要考量.
09/09 15:18, 46F

09/09 16:57, , 47F
我還是搞不懂連資料庫跟用goto有什麼關係?
09/09 16:57, 47F

09/09 16:58, , 48F
沒有規定一定要用反之也沒說不行,問題是有些人看到goto
09/09 16:58, 48F

09/09 16:58, , 49F
就嫌礙眼,可能大學老師都是這樣教就一輩子這樣覺得了吧
09/09 16:58, 49F

09/09 16:59, , 50F
或是眼界不夠開,不知道這世界上有一堆優秀的開源大量使
09/09 16:59, 50F

09/09 16:59, , 51F
用goto在正確的地方上,那麼吾人也愛莫能助了~~
09/09 16:59, 51F

09/09 17:01, , 52F
不只Linux kernel &driver用goto,一狗票的userspace
09/09 17:01, 52F

09/09 17:02, , 53F
開源專案也都用goto,到底連個資料庫有多偉大到看到goto
09/09 17:02, 53F

09/09 17:02, , 54F
就嫌礙眼wwww
09/09 17:02, 54F

09/09 17:16, , 55F
跟上層還是底層也沒啥關係吧,對 C 來說,做錯誤處理跟
09/09 17:16, 55F

09/09 17:17, , 56F
資源釋放,恰當地使用 goto 可以讓程式有良好的可讀性跟
09/09 17:17, 56F

09/09 17:17, , 57F
可維護性。
09/09 17:17, 57F

09/09 21:37, , 58F
盡信書不如無書 書上寫不要用 goto 的理由讓人噴飯
09/09 21:37, 58F

09/09 21:42, , 59F
重要的東西就是要千錘百鍊一下
09/09 21:42, 59F

09/09 21:44, , 60F
因為有其他用法可以替代 goto,所以千萬不要用 goto
09/09 21:44, 60F

09/09 21:44, , 61F
這什麼邏輯?? 有人能幫我解釋一下嗎??
09/09 21:44, 61F

09/09 21:47, , 62F
有程式美感的人就會寫出漂亮的 code,與 goto 無關
09/09 21:47, 62F

09/09 21:59, , 63F
09/09 21:59, 63F

09/10 00:53, , 64F
如果10個人裡面8~9個會濫用,那就當作鐵則吧
09/10 00:53, 64F

09/10 00:57, , 65F
不是人人都高手,另串神人code剛好對比,讓他們滿滿goto?
09/10 00:57, 65F

09/10 07:18, , 66F
goto在程式界已經是萬年戰題了
09/10 07:18, 66F

09/11 09:56, , 67F
goto很好用,但也是爭議很大的東西呀~
09/11 09:56, 67F

09/11 09:57, , 68F
教科書會說不要用,但去看CodeComplete2,它說的很清楚。
09/11 09:57, 68F

09/12 22:14, , 69F
我覺得很直覺啊~就像作者在說懷一樣
09/12 22:14, 69F

09/22 18:39, , 70F
用goto模擬try..catch 超好用耶
09/22 18:39, 70F

09/23 22:33, , 71F
1. 用loop pooling data三次就好 2. 有說明就算組語也
09/23 22:33, 71F

09/23 22:33, , 72F
沒差吧
09/23 22:33, 72F
文章代碼(AID): #1K3SUh_7 (Soft_Job)
討論串 (同標題文章)
文章代碼(AID): #1K3SUh_7 (Soft_Job)