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

作者: tyc5116 (累人啊....)   2014-09-08 23:13:44
我也來分享一個,與資料庫連結的相關程式碼
if (!connected())
{
if (!connected())
{
if (!connected())
{
goto Err;
}
}
}
大概的意思是這樣吧,看到goto我就跑去喝飲料了(因為要降火氣XD)
作者: YahooTaiwan (超可愛南西我老婆)   2014-09-08 23:16:00
goto 很好用阿
作者: keieykdx (YOz桑)   2014-09-08 23:48:00
因為很重要,所以要說三次
作者: zkw (古惑仔)   2014-09-08 23:58:00
retry兩次的意思
作者: DWR (羅傑)   2014-09-09 00:04:00
程式可能有bug所以嘗試個三次臭了嗎
作者: lNishan (紫小霓)   2014-09-09 00:12:00
每次看到goto都會想到Apple bug XD
作者: zelda123 (丸子)   2014-09-09 00:22:00
goto有什麼問題嗎? C很常用啊
作者: workworkwork (workworkwork)   2014-09-09 00:23:00
我寫C倒是不太會用GOTO~@@~但聽說setjump和longjump很常用?
作者: rodion (r-kan/reminder)   2014-09-09 00:26:00
在某些相對單純的error handling上 用goto或許可以接受啦尤其是在try-catch並不傾向能夠被廣泛運用的場合
作者: YahooTaiwan (超可愛南西我老婆)   2014-09-09 01:02:00
因為課本有教,不要用 goto?
作者: clarkman (涼雨)   2014-09-09 01:11:00
有些driver也很多goto,通常是為了做error handle
作者: yyc1217 (somo)   2014-09-09 01:13:00
其實我覺得蠻淺顯易懂的呀...
作者: askacis (ASKA)   2014-09-09 01:28:00
goto在linux世界裡很正常啊,不是不能用而是不要亂用
作者: manlike ( )   2014-09-09 07:46:00
linux kernel 一堆goto
作者: tyc5116 (累人啊....)   2014-09-09 08:20:00
我這個例子有那麼底層嗎?只是在連資料庫耶...
作者: su27 (su27)   2014-09-09 08:46:00
組合語言 機器語言用的也是goto 書上寫用GOTO不好 我看了也覺的很奇怪 你用一個for迴圈 裡面就是一個goto的命令
作者: askacis (ASKA)   2014-09-09 08:56:00
即時是userspace的code,goto還是很常見
作者: arenda (phantom in my heart)   2014-09-09 09:12:00
連資料庫扯啥linux kernel和driver? 你們真的是工程師?
作者: manlike ( )   2014-09-09 09:23:00
你怎麼不先去搞懂為何Linux kernel要使用goto?
作者: azureblaze (AzureBlaze)   2014-09-09 10:12:00
組語當然一堆goto,但for都幫你包起來了為何還要用?
作者: askacis (ASKA)   2014-09-09 10:26:00
跟底層沒關係,而是要清楚goto的使用時機以及人家是怎麼用的,而非看到goto就直覺不能用~
作者: v7q4 ((.)(.)乳劍雙修 -|=>)   2014-09-09 10:48:00
邏輯清楚的話 goto是非常好用的
作者: Ting1024 (無)   2014-09-09 11:41:00
我覺得這個CODE很棒。沒什麼好嫌的
作者: atst2 (atst2)   2014-09-09 11:55:00
http://ppt.cc/vPuw 'goto fail' on ssl
作者: askacis (ASKA)   2014-09-09 12:44:00
goto fail是bug,但難道for while有的沒的語法就不會有?語法本身不是問題,有問題的是使用的人~
作者: atst2 (atst2)   2014-09-09 12:48:00
人非聖賢..本來各種建議,範式,模式,習慣,就是想儘量避免這些不小心所造成的錯誤. if(const == var)和 if(var ==const)兩種都一樣邏輯,為什麼建議用第一種?goto不是不可以用,但是用了就要自己皮繃緊一點, 也要叫後面維護的人注意一點.
作者: saxontai (黑暗,點綴孤零零的星)   2014-09-09 13:00:00
apple 的 ssl bug 問題出在人,根本不在 goto...(茶)
作者: xsion (Xsion)   2014-09-09 14:44:00
你踩到程設萬年戰點了... goto能用否?
作者: tyc5116 (累人啊....)   2014-09-09 15:01:00
"理論上是不需要goto的,一定有另一個方法可以取代goto敘述...(略),我只建議當它優於其它可用的方法時才使用之"以上是書上說法,我想不到連個資料庫有一定要用goto的必要拜托哪個高手來開釋一下,還有沒人覺得那三層if很礙眼嗎XD
作者: meowyih (meowyih)   2014-09-09 15:13:00
理論上是不需要用到recurrsive的,所有的recurrsive都可以改寫成 non-recurrsive function... 但這不能拿來當不準用 recurrsive function 的理由啊 XDDDD
作者: b6byc (oopp)   2014-09-09 15:15:00
goto有時很好用啊.不過這樣寫,看久會頭暈.因為else 有時要考量.
作者: askacis (ASKA)   2014-09-09 16:57:00
我還是搞不懂連資料庫跟用goto有什麼關係?沒有規定一定要用反之也沒說不行,問題是有些人看到goto就嫌礙眼,可能大學老師都是這樣教就一輩子這樣覺得了吧或是眼界不夠開,不知道這世界上有一堆優秀的開源大量使用goto在正確的地方上,那麼吾人也愛莫能助了~~不只Linux kernel &driver用goto,一狗票的userspace開源專案也都用goto,到底連個資料庫有多偉大到看到goto就嫌礙眼wwww
作者: saxontai (黑暗,點綴孤零零的星)   2014-09-09 17:16:00
跟上層還是底層也沒啥關係吧,對 C 來說,做錯誤處理跟資源釋放,恰當地使用 goto 可以讓程式有良好的可讀性跟可維護性。
作者: YahooTaiwan (超可愛南西我老婆)   2014-09-09 21:37:00
盡信書不如無書 書上寫不要用 goto 的理由讓人噴飯
作者: y3k (激流を制するは静水)   2014-09-09 21:42:00
重要的東西就是要千錘百鍊一下
作者: YahooTaiwan (超可愛南西我老婆)   2014-09-09 21:44:00
因為有其他用法可以替代 goto,所以千萬不要用 goto這什麼邏輯?? 有人能幫我解釋一下嗎??有程式美感的人就會寫出漂亮的 code,與 goto 無關
作者: wotupset (wotupset)   2014-09-09 21:59:00
作者: alan3100 (BOSS)   2014-09-10 00:53:00
如果10個人裡面8~9個會濫用,那就當作鐵則吧不是人人都高手,另串神人code剛好對比,讓他們滿滿goto?
作者: eva19452002 (^^)   2014-09-10 07:18:00
goto在程式界已經是萬年戰題了
作者: aecho (@..@")   2014-09-11 09:56:00
goto很好用,但也是爭議很大的東西呀~教科書會說不要用,但去看CodeComplete2,它說的很清楚。
作者: jessichiou (JC)   2014-09-12 22:14:00
我覺得很直覺啊~就像作者在說懷一樣

Links booklink

Contact Us: admin [ a t ] ucptt.com