Re: [討論] 因為空格~我離開了一間公司

看板Soft_Job作者 (子不語)時間9年前 (2014/09/07 16:17), 編輯推噓11(11019)
留言30則, 12人參與, 最新討論串11/21 (看更多)
※ 引述《twoseven (Tse)》之銘言: : 當然這還是要看愈到的情況 : 除非真的是個別的條件又有個別的支線要處理 我才會想包起來 : 我曾經看過一個vb6用包起來只是判斷條件就包了10層..還好很整齊 : 不過要是哪天突然碰到要維護光是要決定改第幾層就很頭大 : 新手上路..請盡量鞭策:) 就我個人三種風格都碰過的經驗來說,用Nested if有個很明顯的問題,就是 維護性。 軟體有種自我繁殖的惰性,所以當一個程式碼用了三層的if來做validation, 很難不保證未來接手的人會讓他長出第四五六層。 這時候guard condition或者short circuit evaluation在維護性上就有其優勢。 所以在我們公司裡面做code review時我反而會要求相反的趨勢,把Nested if改 成guard condition或者short circuit evaluation...... 維護過慢慢長出十層if+else的程式後,我一直覺得Nested if是趕專案加上懶惰 造成的產物,懶惰會付出代價的...... -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 50.156.87.148 ※ 文章網址: http://www.ptt.cc/bbs/Soft_Job/M.1410077823.A.0D7.html

09/07 17:12, , 1F
其實怎麼包都是無法改變他是10層if-else的複雜度
09/07 17:12, 1F

09/07 17:15, , 2F
只要是最簡潔的邏輯10層if-else沒有錯。
09/07 17:15, 2F

09/07 17:16, , 3F
反而是包一大堆function沒幾行,trace code跳來跳去很煩
09/07 17:16, 3F

09/07 17:17, , 4F
10層if-else只要註解加的好,比包一堆用一次的function好
09/07 17:17, 4F

09/07 17:20, , 5F
再來就是一個function裏面一堆return,維護性也很糟~
09/07 17:20, 5F

09/07 17:52, , 6F
我如果看到程式碼有10層if else 我一定心裡默默問侯他
09/07 17:52, 6F

09/07 17:57, , 7F
一堆funtion call和十層if-else好像都不好..
09/07 17:57, 7F

09/07 18:04, , 8F
其實包成function後 根本不用trace進去 除非output 怪
09/07 18:04, 8F

09/07 18:05, , 9F
怪的 才需要追進去看 畢竟流程只需要邏輯
09/07 18:05, 9F

09/07 18:06, , 10F
只要他吐出來的結果是正確的 也不需要追進去
09/07 18:06, 10F

09/07 18:07, , 11F
我上次遇到只有兩層的if結構,但是if和else中間的程式碼
09/07 18:07, 11F

09/07 18:08, , 12F
居然要按三次Page Down,看起來好累。
09/07 18:08, 12F

09/07 19:07, , 13F
才三次別緊張 我前工作的資深前輩一個function 6000行
09/07 19:07, 13F

09/07 19:43, , 14F
我以前公司有人整份code只有一個function...
09/07 19:43, 14F

09/07 19:44, , 15F
聽說那份後來沒人知道在寫什麼..後來的人重寫了
09/07 19:44, 15F

09/07 20:23, , 16F
一個func?願聞其詳
09/07 20:23, 16F

09/07 20:24, , 17F
main啊XD
09/07 20:24, 17F

09/07 20:31, , 18F
clarkman前公司該不會我待過??
09/07 20:31, 18F

09/07 20:32, , 19F
如果是初階全寫成一個func可以原諒(除錯方便)
09/07 20:32, 19F

09/07 20:32, , 20F
我遇過java一個function有5千行CODE的
09/07 20:32, 20F

09/07 20:33, , 21F
但這個情況....拋接都全在同一func. ....
09/07 20:33, 21F

09/07 20:34, , 22F
話說clark前輩您的帳號似乎很眼熟?
09/07 20:34, 22F

09/07 20:47, , 23F
XD不是你待過的~~~
09/07 20:47, 23F

09/07 20:56, , 24F
應該不熟吧~~我是個小小咖
09/07 20:56, 24F

09/08 00:00, , 25F
我的極限是兩層 專案篇小公司無限制開發模式
09/08 00:00, 25F

09/08 00:01, , 26F
十層if應該考慮重構
09/08 00:01, 26F

09/08 00:03, , 27F
Delphi前輩維護過50層以上…我太年輕看不到
09/08 00:03, 27F

09/08 22:14, , 28F
java一個function5000行!!java不是物件導向嗎?
09/08 22:14, 28F

09/09 00:24, , 29F
是啊....java不是OOP嗎?
09/09 00:24, 29F

09/09 13:27, , 30F
太多個if就直接把每個情況宣告成class了
09/09 13:27, 30F
文章代碼(AID): #1K31H_3N (Soft_Job)
討論串 (同標題文章)
文章代碼(AID): #1K31H_3N (Soft_Job)