看板 Soft_Job 關於我們 聯絡資訊
※ 引述《mahoihei (Alvar)》之銘言: : 早上看到一篇對個人來說很衝擊性的文章 : http://goo.gl/z4Fa3 : 為什麼說是很衝擊性,因為我自己的編程基礎由oop開始的 : 而在oop design更是我在這個領域最喜愛的地方 : 想問大家對這篇文章有什麼見解?? 鉛筆、鋼筆、原子筆,大致上都是用來寫字的, 字寫不寫得順手、好不好用,取決於他做什麼工作、作什麼事。 今天別人說鉛筆很爛不好用, 偏偏你或許剛好是習慣個用鉛筆打草稿的作家,你會理他嗎? 重點在有沒有對你來講更好的東西,跟他有沒有解決你的問題, 不是別人怎麼批評這東西,你要看的是他的道理跟你的配合度, 如果你真的這樣想過了,你自然就會知道這東西適不適合你。 另外 OOP 並不是一種 design ,他是一種思維, Design 的部份比較多得是在你真的去實做他的那部份。 一樣是 OOP 也可以有 good design 跟 bad design , 而且根據領域的不同,你的 good design 也可能是我的 bad design 。 -- 與其在語言世界找真理,倒不如在概念上求道。 -- 網頁上拉近距離的幫手 實現 GMail豐富應用的功臣 數也數不清的友善使用者體驗 這就是javascript 歡迎同好到 AJAX 板一同討論。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 175.182.230.46 ※ 編輯: TonyQ 來自: 175.182.230.46 (02/22 12:38)
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
TonyQ:博客來介紹 http://goo.gl/EMUL 02/22 13:39
belion:因為用的是人吧 02/22 13:43
LaPass:可以舉一下OOP佔不到便宜的例子嗎? 我想知道 02/22 13:54
TonyQ:http://goo.gl/bEmRE 大概可以勉強參考一下 02/22 14:12
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