Re: [閒聊] OOP小評

看板Soft_Job (軟體人)作者 (小y寶貝)時間11年前 (2015/03/05 11:27), 編輯推噓4(4023)
留言27則, 10人參與, 最新討論串25/43 (看更多)
※ 引述《csfgsj (Lazy bone)》之銘言: : 就是你在對一件事情作抽象化之前 : 你有沒有辦法對它作出清楚的定性定量 : 如果這個條件不成立,而去實施所謂的抽象化 : 那只是在製造一個「隱晦」的介面 : 曾經說過Class是萬惡之源 : 將DATA 加上Routine : 一開始就註定了它將是一個無法清楚定性定量的東西 : 隨之而來的抽象化,自然無可避免的走向「隱晦」 跟你對話實在好玩,因為字句中有很多謎題可以解。 我試著讀懂所謂「定性定量」,並且,仍然很想知道之前你所說, 那一句讓我們軟體人讀了之後會改變一生的話。 定性定量,看最早你提到的,就是說,我們軟體人在學校學了那麼久, 都學些什麼呢?無非是定性、定量。 所謂定性,是認出事物的特性。例如,可以學會認出一般的邏輯系統所包含, 除了 minimal complete set 之外,就是可以由 minimal complete set 表達出 的非 minimal complete set 。 所謂定量,是涉及事物存在的數量,包括如統計學的東西、集合的有限元素或 無限元素的數量等等。 然後,你對於 OOP ,寫了一段有一點點錯誤的定性描述: ※ 引述《csfgsj (Lazy bone)》之銘言: > 跟傳統Copy & Paste比起來,它的特性是: > 1, 只能Copy & Paste整個Class,不可分拆,不可減少 > 2, Copy & Paste 使用者不會知道,到底Copy 到了什麼 > 3, 只能對Class作業,單獨的Struct、Function等不接受「繼承」 > 4, 有一堆GGYY的規則要遵守,什麼覆蓋不覆蓋之類的..etc. > 所以它比起傳統Copy & Paste死板、麻煩多了 > 也比較「隱晦」 這是你對於 class 的定義,並且,你說因為 class 把資料與程序混在一起, 所以無法定性定量,而因為無法定性定量,東西多了就是「亞馬遜叢林」, 有一些危險或錯誤的東西也封裝在 class 中,所以不知何處會「竄出一條蟒蛇, 把你吃了」。 我說,你的想法根本錯誤。 Copy & paste 最讓人討厭的,是那個所 copy 出來又改過的東西裡頭,原有的內容 與修改的內容混在一起,根本記不住。要說定性、定量有問題,可成立: 每一個 copy 出去修改的版本,跟原版有什麼不同,難以定性;所有 copy 出去 修改的版本,總過有多少個,難以定量。 而 class 與繼承,並不是把整個 class 做 copy & paste 。 若仍要理解為 copy 吧,「到底 copy 到什麼」,也是很清楚: 一個繼承類別 class world_greetings extends greetings {} 明明很清楚告訴你 world_greetings copy 了的東西就是 greetings , 那裡有寫不清楚的地方? 另外,所謂「 GGYY 的規則、覆蓋不覆蓋」的部份,則是很清楚的定性: 若在 world_greetings 類別中,覆蓋了 protected void hello() , 這就是告訴你, world_grettings 與 greetings 類別有差異的地方就在於 protected void hello() 。 再用同一個 world_greetings 類別,來談所謂定量: 程式裡面到底有多少種 greetings 打招呼的方式?很明白,有寫到、有用到的 才算數。假如有寫到,但是沒用到,那就不必擔心。 最後,我猜你所說的「將DATA 加上Routine,註定是無法定性定量的東西」, 我要反問「是嗎」。你該不會覺得,將 data 和 routine 都放在 class 裡, 之後會在 class 裡突然冒出一個奇怪的東西,說它是 data 可是它是 routine , 或者說它是 routine 可是它卻是 data 吧?如果是這樣,我只想回答: 想像力要有一個限度,不要太夢幻。 至於「亞馬遜叢林藏蟒蛇」的問題,根本是指大量程式碼 debug 的事情, 跟 OOP 無關。 最後的最後,再問一下,所以你說有可以讓我們軟體人改變一生的一句話, 到底是什麼? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.160.144.227 ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1425526061.A.574.html

03/05 11:44, , 1F
軟工大覺者,普渡眾生的一句話
03/05 11:44, 1F

03/05 11:47, , 2F
程式寫的好 要飯要到老
03/05 11:47, 2F

03/05 11:49, , 3F
程式寫不好,雞排賣到老
03/05 11:49, 3F

03/05 11:52, , 4F
"Use the FORTH, Luke."
03/05 11:52, 4F

03/05 12:10, , 5F
可以不要再回他了嗎...
03/05 12:10, 5F

03/05 12:27, , 6F
Don't feed the troll.
03/05 12:27, 6F

03/05 12:27, , 7F
打這種沒經驗值的啦 消耗裝備耐久度而已
03/05 12:27, 7F

03/05 13:20, , 8F
我看到 "Use the Forth, Luke." 真的想開始學 Forth 了
03/05 13:20, 8F

03/05 13:21, , 9F
我覺得,大家要理解,在網路上跟你講話的對象是一個人。
03/05 13:21, 9F

03/05 13:22, , 10F
以前不懂,只從文字上分析人性。但是,大家若有興趣可以
03/05 13:22, 10F

03/05 13:23, , 11F
試著把你感興趣的人約出來聊,就會想得更清楚,人很多樣的
03/05 13:23, 11F

03/05 13:24, , 12F
真的有一種人沒有抽象思考能力,一碰到實例就無可自拔旋進
03/05 13:24, 12F

03/05 13:24, , 13F
去那個實際的主題裡。然後你會了解這人是不是真的很好聊。
03/05 13:24, 13F

03/05 13:25, , 14F
也許對方不好聊是個誤會。也許對方不好聊,是因為真人的
03/05 13:25, 14F

03/05 13:26, , 15F
口語與思考習慣,是真的很難聊,例如極度分心的人。
03/05 13:26, 15F

03/05 13:27, , 16F
另外,有人說,較沒有太多學校教育的人,對話空白容忍度低
03/05 13:27, 16F

03/05 13:28, , 17F
而受過較多教育的人則對於對話空白的容忍度較高。有可能
03/05 13:28, 17F

03/05 13:28, , 18F
因為容忍度低,而不時找一些未經思考的材料當做話題。或者
03/05 13:28, 18F

03/05 13:30, , 19F
空白容忍度太高了,深度思考而出現不可言諭的描述方式。
03/05 13:30, 19F

03/05 13:40, , 20F
他的問題是:真的打到他的文章就不會回,如同這篇,板主回
03/05 13:40, 20F

03/05 13:40, , 21F
他的那幾篇,2005年吐他的那篇。會針對文章回應的才叫討
03/05 13:40, 21F

03/05 13:40, , 22F
論,不是自說自話
03/05 13:40, 22F

03/05 13:50, , 23F
他只看他想看的 說他想說的 不算再討論 只是想傳教
03/05 13:50, 23F

03/05 21:53, , 24F
是放在soft_job比較失敗 因為內行人比較多
03/05 21:53, 24F

03/05 21:54, , 25F
不知在toberich/soho會有多少人上鈎
03/05 21:54, 25F

03/05 21:55, , 26F
這類碎念 外行人說不定會以為很厲害
03/05 21:55, 26F

03/06 22:07, , 27F
嘴炮放得好,升官沒煩惱
03/06 22:07, 27F
文章代碼(AID): #1KzyqjLq (Soft_Job)
討論串 (同標題文章)
本文引述了以下文章的的內容:
-2
18
完整討論串 (本文為第 25 之 43 篇):
-14
103
4
24
-11
76
1
1
11
45
2
31
0
4
4
55
0
4
文章代碼(AID): #1KzyqjLq (Soft_Job)