Soft_Job 板


LINE

※ 引述《idleidle (賺大錢=看對&下大注&抱住)》之銘言: : 如果沒加else一定是沒被搞過 : 我一定會在else裡面加例外回報的程式碼 聽起來有點怪.... 如果是"認為condition永遠不會跑到else" 那就不該用if 該用assert 或者用try&catch 如果if是用來branch, 程式原本邏輯是如下這種 if(condition) { xxx(); } yyy(); 那麼, 一定要加上else的話, 那到底是要 if(condition) { xxx(); yyy(); }else { yyy(); } 還是 if(condition) { xxx(); }else { } yyy(); 效果相同, 出題者到底想要哪個呢? 兩者都反而把程式的閱讀性變差, 行數也拉長了不是嗎? coding style 有些規定大家都會同意, 例如"不要濫用goto", 也有些規定只要在同一家公司或同一個平台裡面約定一致就好, 例如"如何縮排", "if或else之後的{要放在同一行或是隔行"等等. 我覺得"if後面要有else"就是屬於後面那種. 有必要在找人的時候就要求對方的coding style和自己完全相同嗎? : 然後再加上自訂的編號 : 加這幾行不花幾分鐘 : 但這幾行可能在未來 : 節省你幾小時的debug時間!! : 如果是寫過硬体語言的 : 應該會習慣加上else吧 : 不加else會有什麼產生? : 科科科 : ※ 引述《cheng1989 (cheng1989)》之銘言: : : 跟我不久前去應徵過的一家公司一樣, 不會是同家吧?(凱x智慧) : : 那家公司在禮拜五跟我約隔天面試(禮拜六還上班...頭皮發麻..) : : 隔天我如期赴約, 結果一進去, : : 老闆就拿了張試題要我填, 不多, 好像才四題 : : 第一題就是要我回答某支jsp的code有沒有問題? 能再加強什麼? : : 他接著就開了一個網頁, 按右鍵檢視原始檔給我看, : : 說就是這個web page : : 看看有沒有問題, 有什麼想法就把它寫下來~ : : 然後, 天兵的我過了五分鐘後: : : 「....小姐, 我有問題」沒錯, 現場還有一位員工在那裡加班 : : 正妹走過來問我有何問題? : : 我說經理要我看看這頁的code有什麼問題 : : ...可是它是html檔欵...Orz : : (目小的我撐大眼睛看了5分鐘後總算肯定地告訴正妹, 但其實我是以為經理會再 : : 走過來開code給我看啦~) : : 正妹說, 喔, 那我去幫妳問一下經理喔! : : 我跟在正妹後面走到經理位置上.... : : ZZZzzzzz : : 正妹:「經理睡著了....」我完全能理解, 這家公司真的很操呢! : : 後來正妹就找出jsp code讓我作答, 總算完成了我的第一道題目 : : 因為是問我個人看法, 所以沒有標準答案, : : 寫了幾個我認為的問題之後, 接著再填寫其它試題, 交卷. : : 那位經理人還不錯, 看了我的答案之後告訴我說, : : 其實那頁的code有兩個大問題, 但我沒有答出來, : : 一個是它只有if : : 很多個if來判斷條件成立時要執行的動作 : : 卻沒有else : : 這意味著, : : 寫程式的人很有自信一定會有其中一個條件會成立 : : 或都不成立就什麼都不用做 : : 所以沒有else : : 但他認為這是最大的問題, : : 萬一發生意料外的事 : : 很可能就會異常 : : 他還拿cobol舉例, 說cobol就是每個if都要搭else才比較保險比較穩定(me: ????) : : 另一個問題, 好像是這些code最開始沒有先做xx判斷 : : 那個xx是什麼? 對不起我忘了Orz : : 好像是類似要處理的資料, 是否為null, 或值為0嗎? : : 這個沒先判斷就開始處理資料了 : : 大概就這兩個問題是他認為最重要的 : : 不過後來有被錄取耶~ 但我沒興趣做稽核, 就沒去了 : : 倒是我認為, 無論出這種考題的用意何在, : : 都可以努力把自己的想法表達出來, : : 即使回答的不是對方想聽的答案, : : 至少也讓他知道我的程度到那裡, 懂哪些東西 : : 絕對比交白卷好 --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.136.226.5 ※ 編輯: neutrino 來自: 220.136.226.5 (12/27 20:23)
1F:推 luciferii:以這個例子來說,效果不同。 12/27 20:37
2F:→ luciferii:例如你覺得某結果應該會 mathc -> xxx() -> yyy() 12/27 20:38
3F:→ luciferii:但是卻只看到yyy(),就無法判定是沒match,還是xxx()出錯 12/27 20:39
4F:→ luciferii:加個 else { print something }等,會加快debug速度 12/27 20:40
5F:→ luciferii:回到原PO的主管例子,應該也是範例程式碼沒作防錯處理吧 12/27 20:41
6F:→ neutrino:那在if的{}裡面加一行print debug message就行了... 12/27 20:42
7F:→ neutrino:加在if裡的xxx(); 之前 12/27 20:42
8F:→ neutrino:這樣作決定點不在於if 有沒有 else 而在於 是否處理例外? 12/27 20:47
9F:→ neutrino:是否加上適當的除錯訊息? 是否有隱含視作理所當然成立的 12/27 20:48
10F:→ neutrino:條件卻沒有assertion? 12/27 20:48
11F:→ neutrino:不知道原po看的程式碼內容, 無法判斷,單看"if沒配else"我 12/27 20:49
12F:→ neutrino:認為沒有定論 12/27 20:50
13F:推 wa120:如果今天寫了八個條件判斷if...else if...else if... 12/27 23:25
14F:→ wa120:最後面加個else比較保險... 12/27 23:26
15F:推 hougzou:看情況!像if(a==null){return;}判斷是否繼續就不用else 12/27 23:52
16F:推 luciferii:樓上,如果程式裏有多處這種判斷,還是加一下好 12/28 00:10
17F:→ luciferii:才知道return發生在何時,或可能都不是,是發生例外時? 12/28 00:11
18F:推 lgd1008:聽起來還是很奇怪, 怎麼會有人程式這樣子寫? 12/28 00:17
19F:→ lgd1008:如果在一個檢查input的function裡, by case去執行程式跟 12/28 00:17
20F:→ lgd1008:秀出input錯誤的訊息那很正常, 但怎麼可能全部都檢查 12/28 00:18
21F:→ lgd1008:舉個例來說 A 呼叫 B 呼叫 C 呼叫 D 12/28 00:19
22F:→ lgd1008:在 A 裡檢查算正常,可是到了 B, C, D...還在檢查幹嘛? 12/28 00:19
23F:→ lgd1008:通常都是早在A在確定輸入正確, B, C, D完全不檢查 12/28 00:20
24F:→ lgd1008:就算寫了 else 也100% 執行不到 12/28 00:21
25F:→ lgd1008:那為何補上 else 會成為一種良好的習慣? 就令人十分費解.. 12/28 00:22
26F:推 joy830:都可以拉!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 12/28 00:29
27F:→ luciferii:樓樓上,要這樣寫的前提是, D只會被C呼叫,C只會被B呼叫 12/28 01:58
28F:→ luciferii:而B只會被A呼叫。而且要規定來B,C,D不可被其他人呼叫 12/28 01:59
29F:→ luciferii: ^未來 12/28 01:59
30F:推 a2975313:推coding style 12/28 02:31
31F:推 TonyQ:雖然不認為補上else 是「一定必要」,不過認同每個支線都要 12/28 02:44
32F:→ TonyQ:做處理的態度。身為Coder就要掌握這條路徑上的每一個可能性. 12/28 02:45
33F:→ TonyQ:不然費盡千辛萬苦把程式模組化就失去其意義了. 12/28 02:46
34F:→ minstrelsy:支線處理很重要 但並不是用了else就能天下太平 12/28 03:14
35F:→ minstrelsy:完全不用else不能算是很好的習慣 但凡事都非else不可 12/28 03:16
36F:→ minstrelsy:只是讓人覺得矯枉過正 12/28 03:16
37F:推 realmeat:討論到這個已經到了有點無聊的地步了 12/28 08:14







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:WOW站內搜尋

TOP