看板 Soft_Job 關於我們 聯絡資訊
※ 引述《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
iceonly: 軟工大覺者,普渡眾生的一句話 03/05 11:44
robler: 程式寫的好 要飯要到老 03/05 11:47
StupidGaGa: 程式寫不好,雞排賣到老 03/05 11:49
enthos: "Use the FORTH, Luke." 03/05 11:52
nenpow: 可以不要再回他了嗎... 03/05 12:10
azureblaze: Don't feed the troll. 03/05 12:27
azureblaze: 打這種沒經驗值的啦 消耗裝備耐久度而已 03/05 12:27
yauhh: 我看到 "Use the Forth, Luke." 真的想開始學 Forth 了 03/05 13:20
yauhh: 我覺得,大家要理解,在網路上跟你講話的對象是一個人。 03/05 13:21
yauhh: 以前不懂,只從文字上分析人性。但是,大家若有興趣可以 03/05 13:22
yauhh: 試著把你感興趣的人約出來聊,就會想得更清楚,人很多樣的 03/05 13:23
yauhh: 真的有一種人沒有抽象思考能力,一碰到實例就無可自拔旋進 03/05 13:24
yauhh: 去那個實際的主題裡。然後你會了解這人是不是真的很好聊。 03/05 13:24
yauhh: 也許對方不好聊是個誤會。也許對方不好聊,是因為真人的 03/05 13:25
yauhh: 口語與思考習慣,是真的很難聊,例如極度分心的人。 03/05 13:26
yauhh: 另外,有人說,較沒有太多學校教育的人,對話空白容忍度低 03/05 13:27
yauhh: 而受過較多教育的人則對於對話空白的容忍度較高。有可能 03/05 13:28
yauhh: 因為容忍度低,而不時找一些未經思考的材料當做話題。或者 03/05 13:28
yauhh: 空白容忍度太高了,深度思考而出現不可言諭的描述方式。 03/05 13:30
iceonly: 他的問題是:真的打到他的文章就不會回,如同這篇,板主回 03/05 13:40
iceonly: 他的那幾篇,2005年吐他的那篇。會針對文章回應的才叫討 03/05 13:40
iceonly: 論,不是自說自話 03/05 13:40
sorryla: 他只看他想看的 說他想說的 不算再討論 只是想傳教 03/05 13:50
typiacalcat: 是放在soft_job比較失敗 因為內行人比較多 03/05 21:53
typiacalcat: 不知在toberich/soho會有多少人上鈎 03/05 21:54
typiacalcat: 這類碎念 外行人說不定會以為很厲害 03/05 21:55
jaceju: 嘴炮放得好,升官沒煩惱 03/06 22:07