推 mahoihei:文章的命題是OOP「骨子」裏有問題,應該是想說OOP不該存在 02/22 13:04
→ TonyQ:所以還是你覺得 OOP 對你有沒有幫助啊 02/22 13:13
→ TonyQ:如果他對你有幫助,那他為什麼不該存在? 02/22 13:13
→ TonyQ:我個人覺得 OOP 不是萬靈丹,但也不是一無可取。 02/22 13:13
→ TonyQ:如果他要那樣批評,背後一定有什麼 context 是他假設但沒說 02/22 13:13
→ TonyQ:的。像是在某些情境底下,OOP 的確賺不到好處又只是倒貼。 02/22 13:13
推 changyuheng:是想捧 FP 嗎? 02/22 13:26
→ changyuheng:抱歉推錯篇 02/22 13:26
→ mahoihei:我理解的OOP的缺點和優點 02/22 13:27
→ mahoihei:令我混亂的是為什麼,有人會說OOP是"不應該存在 02/22 13:28
→ TonyQ:因為在某些情境底下 OOP 的確討不到便宜 02/22 13:31
→ TonyQ:class vs mix-in 這兩種不同設計哲學,各有其優缺點與極限 02/22 13:32
→ TonyQ:如果有一個人剛好他在的世界只用 mix-in 或 fp 就夠了, 02/22 13:32
→ TonyQ:那他當然就會說 OOP 不應該存在。 02/22 13:33
→ TonyQ:就好像很多人會說排序演算法根本不用學,call 現成的就好。 02/22 13:33
→ TonyQ:因為對他們來講,他們是真的認為那沒有用卻浪費別人時間 02/22 13:34
→ TonyQ:but 重點還是在於他對你有沒有用。 02/22 13:34
→ TonyQ:Ruby 的作者松本行弘在其著作中, 02/22 13:36
→ TonyQ:松本行弘的程式世界:成為一流程式設計師的14種思考術 02/22 13:36
→ TonyQ:對於許多不同語言設計思維都有涉獵,我覺得算是就廣度跟概念 02/22 13:36
→ TonyQ:上都蠻值得推薦一讀的作品。 02/22 13:36
→ TonyQ:其中就有專章強調繼承 vs 多重繼承 vs mix-in 02/22 13:36
→ TonyQ:但我還是那句話,工具是用來選用的,不是用來論戰的。 02/22 13:37
推 belion:因為用的是人吧 02/22 13:43
推 LaPass:可以舉一下OOP佔不到便宜的例子嗎? 我想知道 02/22 13:54
→ TonyQ:不過真的要論述佔不到便宜,還得再多著墨些... 02/22 14:13
→ TonyQ:還有 context 的誤用導致環境很髒的情況 02/22 14:17
→ TonyQ:像拿 God Object 等級的設計去論述的話,OOP 顯然討不到便宜 02/22 14:17
→ TonyQ:但什麼是最佳解跟是不是能夠避免錯誤設計,有些人認為這是 02/22 14:18
→ TonyQ: OOP 的責任。(當然也有一票人在幹譙效率跟空間,只是那就 02/22 14:18
→ TonyQ:又是另一個話題了。 02/22 14:18
→ windlll:工具就是拿來用,你覺得不好用就不用,為了這個論戰真是.. 02/22 14:19
推 LaPass:也就是說,mix-in用include的先後順序去避免鑽石繼承的問題 02/22 15:13
→ LaPass:囉? 02/22 15:13
→ coolcomm:mix-in用太多的話會不知道方法從哪裡來XD 02/22 15:31
→ TonyQ:是啊 還有就是 naming conflict 的問題 02/22 15:31
→ TonyQ:在 JS 我們常在作 mix-in 啊,問題是還是有他的極限啊。 02/22 15:31
→ TonyQ:對我來講,不過就是在不同的環境裡面選用適合的東西 02/22 15:31
→ TonyQ:很多時候我會用 FP 的 concept 去寫 helper,用 OO 的概念去 02/22 15:32
推 wisehuang:推。我喜歡這個說法,工具好不好用應該看遇到的問題 02/22 15:34
→ TonyQ:作 core part ,就看怎麼玩... 02/22 15:48
→ jlhc:討論程式語言好壞算是老話題 XD 以激發出新想法會不錯 02/23 01:03
→ andymai:明明要OO到什麼程度是人決定~卻老是有人反過來說OO不好... 02/23 05:16
→ andymai:這不就像開車進小巷子嗎?明明有小車不開~偏偏要開貨車進去 02/23 05:17