Re: [閒聊] OOP小評

看板Soft_Job作者 (Lazy bone)時間9年前 (2015/03/08 16:23), 9年前編輯推噓-14(41881)
留言103則, 28人參與, 最新討論串42/43 (看更多)
※ 引述《yauhh (小y寶貝)》之銘言: : 還有,你的推文中講這句話: : → csfgsj: @oaz「多型」是最臭的東西 03/07 10:28 : 真是超級可笑的,你以為自己只是在批評 OOP ,可是,「多型」是獨立的特質, : 不只是 OOP ,而是在更早的一些非 OOP 語言也有的東西。 感謝你讓我有詳細說明這個觀點的機會 這個要從程式中的「命名」開始談起 小弟以為「命名」這件事太重要了 基於精準的定性定量,名實相符的命名(Function & variable) 就是資源提供者對於資源應用者,最好的貢獻與服務 尤其是對於初次接觸的資源應用者(invoker or caller) 「物如其名,名如其性」 對於陌生事物認識與了解,至為關鍵 例如我們聽到,就可知道它是 死肥宅:外型肥胖,喜歡躲在家裡且不受歡迎之類型 基八公路:連接基隆到八堵的公路 鐵支路:鐵路旁之小路 以上皆屬名實相符之成功命名例 因為它可以很輕易的顧名思義,讓人從表面一眼望穿 具省去探索氣力之效,容易為人所接受 所以廣泛的得到大眾的使用與流通 但 凡事東西有好的那一定就有壞的。那什麼是壞的、糟糕的命名? 依小弟的研究,大約有以下三種 1, 內容黑化的命名: 什麼青島一號、長江二號,配方xyzggyy-123等 你絕對沒辦法從名稱知道內部在搞什麼鬼 有些單位為了保密的原因,會刻意採取此一方式 2, 名實不符的命名: 什麼「最不愛打仗的海珊」、「頭髮最多的戈巴契夫」等 有誤導的嫌疑 3, 缺乏辨別性的命名: 明明是兩個不同的東西,用了相同或很相似的名稱 如大陸山寨版的鴨梨手機、Hike運動鞋等 往往造成混淆、困惑,認知的鈍化 使用者往往要付出比較多的注意力,才能辨識之間的不同 所謂「同名異式」就是屬於這一類 學習工程的人追求定性定量,其實應該儘量去避免、消除這樣的東西 更何況是去刻意製造它 -- ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1425803013.A.3AA.html

03/08 16:29, , 1F
...回去看課本好嗎 這種東西基礎到連講給學生聽都嫌太淺
03/08 16:29, 1F

03/08 16:29, , 2F
1 + 2, and 1.0 + 2.0, so?
03/08 16:29, 2F
※ 編輯: csfgsj (61.228.25.189), 03/08/2015 16:32:23

03/08 17:02, , 3F
03/08 17:02, 3F

03/08 17:23, , 4F
因為一寫code就顯示自己程度低落, 所以只好在用詞上誇張
03/08 17:23, 4F

03/08 17:37, , 5F
精闢!
03/08 17:37, 5F

03/08 17:44, , 6F
不是在講oop怎麼變coding style 一直跳針
03/08 17:44, 6F

03/08 17:45, , 7F
同名異式與OO是互相獨立的觀念
03/08 17:45, 7F

03/08 17:46, , 8F
不要自己看不懂OO的code就在那裡牽拖
03/08 17:46, 8F

03/08 17:46, , 9F
你只是抽象思考能力不足而已
03/08 17:46, 9F

03/08 17:50, , 10F
OO好用到連一些C語言的程式都以OO的方式開發
03/08 17:50, 10F

03/08 17:52, , 11F
人家程式夠大 分工夠細 更新夠密集
03/08 17:52, 11F

03/08 17:52, , 12F
就能體會OO的好處 你級數不夠 當然只能murmur
03/08 17:52, 12F

03/08 18:24, , 13F
這 段次也太。。。。。。
03/08 18:24, 13F

03/08 18:31, , 14F
講重點= =
03/08 18:31, 14F

03/08 18:35, , 15F
@robler 那一本?
03/08 18:35, 15F

03/08 19:12, , 16F
我到底浪費了多少時間
03/08 19:12, 16F

03/08 19:41, , 17F
恩恩 好棒棒
03/08 19:41, 17F

03/08 21:05, , 18F
你根本沒有實務經驗 愈講愈看得出這方面的淺薄
03/08 21:05, 18F

03/08 22:26, , 19F
@robler:課本可能筆較少提,Clean Code跟Code Complete
03/08 22:26, 19F

03/08 22:26, , 20F
是很多有軟工經驗的老師會推給學生的書
03/08 22:26, 20F

03/08 22:27, , 21F
可惜現在的學生......(ry
03/08 22:27, 21F

03/08 22:41, , 22F
@y3k:小弟至少待過一家做切肉機的公司,作的是Architect
03/08 22:41, 22F

03/08 22:43, , 23F
的職位。如果你也覺得這也不算實務經驗,也對
03/08 22:43, 23F

03/08 22:43, , 24F
感覺都是在搞政治
03/08 22:43, 24F

03/08 22:45, , 25F
我們這個小小的Team有一半是phD.,不過我不是
03/08 22:45, 25F

03/08 22:47, , 26F
台灣人只有兩個,除了我另一個是NTUEE的老老學長
03/08 22:47, 26F

03/08 22:47, , 27F
他在切肉機公司有30年的資歷
03/08 22:47, 27F

03/08 22:49, , 28F
大部分的工作就是坐飛機飛來飛去開會,要不然就是con-call
03/08 22:49, 28F

03/08 22:53, , 29F
有人說當我的同事很可憐,這個我覺得很好笑
03/08 22:53, 29F

03/08 22:53, , 30F
月薪兩萬美金會可憐到那去。(我沒有那麼多)
03/08 22:53, 30F

03/08 22:54, , 31F
我印象中他主要的工作就是在解放軍公司開會時
03/08 22:54, 31F

03/08 22:54, , 32F
幫英國來的FW麻子主管作翻譯
03/08 22:54, 32F

03/08 22:58, , 33F
可是你所說出來的概念和技術都有非常嚴重的偏狹狀況 幾個認真
03/08 22:58, 33F

03/08 22:59, , 34F
回你的你也沒有認真用邏輯和知識回覆 這樣你講的經驗一點可信
03/08 22:59, 34F

03/08 23:00, , 35F
度都沒有 不是扯一堆關係就超強阿 你根本連OOP得概念都一蹋糊
03/08 23:00, 35F

03/08 23:00, , 36F
塗到驚人的地步 你真的有這種資歷還是隨口唬爛的啊? 舉這種資
03/08 23:00, 36F

03/08 23:01, , 37F
歷在理性討論的場合裡一點用都沒有 講白了脫下那身衣服勳章大
03/08 23:01, 37F

03/08 23:02, , 38F
家都是猴子而已 言不及義胡說八道人家一樣看在眼裡
03/08 23:02, 38F
還有 25 則推文
03/09 07:57, , 64F
要不是外行人在幻想自己是工程師 不然就是上古原始人
03/09 07:57, 64F

03/09 07:58, , 65F
沒那個水準就不要一直發文丟臉 浪費大家的時間..
03/09 07:58, 65F

03/09 12:09, , 66F
世紀末軟體革命 賀元/賴明宗/劉燈 圖書館有
03/09 12:09, 66F

03/09 12:15, , 67F
強者我同事,這是哪招XDD
03/09 12:15, 67F

03/09 12:29, , 68F
世紀末軟體瘟疫
03/09 12:29, 68F

03/09 12:32, , 69F
不是有人說要結尾了 結尾應該不等於繼續發廢文
03/09 12:32, 69F

03/09 12:34, , 70F
03/09 12:34, 70F

03/09 12:38, , 71F
不要再幻想你會寫程式了 丟臉
03/09 12:38, 71F

03/09 12:48, , 72F
03/09 12:48, 72F

03/09 13:41, , 73F
樓主好可愛,到科技板發文取暖又被打臉了
03/09 13:41, 73F

03/09 14:04, , 74F
賀元前輩好歹搞了intel一筆錢,.com泡沫又不是誰的錯
03/09 14:04, 74F

03/09 15:07, , 75F
你真的要談polymorphism,學理上它有四種:
03/09 15:07, 75F

03/09 15:08, , 76F
Subtype polymorphism
03/09 15:08, 76F

03/09 15:08, , 77F
Parametric polymorphism
03/09 15:08, 77F

03/09 15:08, , 78F
Ad-hoc polymorphism
03/09 15:08, 78F

03/09 15:09, , 79F
Coercion polymorphism
03/09 15:09, 79F

03/09 15:09, , 80F
最後一種的意義,實際意義就是type casting
03/09 15:09, 80F

03/09 15:11, , 81F
除非你寫C不曾做過轉型,不然你也用過polymorphism
03/09 15:11, 81F

03/09 15:22, , 82F
醒醒吧阿宅,你不會寫程式
03/09 15:22, 82F

03/09 15:33, , 83F
void doSomthing(void* murmur)
03/09 15:33, 83F

03/09 15:51, , 84F
void doSomthing(void* murmur, boolean isMurmur)
03/09 15:51, 84F

03/09 21:09, , 85F
還以為你要說什麼........
03/09 21:09, 85F

03/09 22:56, , 86F
最後附上Rosseta Code上面的範例:
03/09 22:56, 86F

03/09 22:58, , 88F
看一下C那邊用MacroMagic的手法,我只覺得cscope或者
03/09 22:58, 88F

03/09 22:58, , 89F
一些debugger遇到會直接吃不到
03/09 22:58, 89F

03/10 09:10, , 90F
node_##T##_t node_##T##_t
03/10 09:10, 90F

03/10 09:12, , 91F
這種語法在C,我不騙你,也不怕你笑,這一輩子只看過一次
03/10 09:12, 91F

03/10 09:12, , 92F
在Linux 2.0 的Kernel source裡
03/10 09:12, 92F

03/10 09:14, , 93F
事實上有很多其他的寫法可以作到該功能,而且比較容易閱讀
03/10 09:14, 93F

03/10 09:21, , 94F
寫一下 麻煩你了
03/10 09:21, 94F

03/10 09:21, , 95F
不然引用一下來源也行
03/10 09:21, 95F

03/10 09:36, , 96F
kernel/include/linux/ide.h
03/10 09:36, 96F

03/10 09:41, , 97F
謝啦
03/10 09:41, 97F

03/10 12:21, , 98F
(1)版本應該不是2.0開頭,2.0.1還有lxr上的2.0.40都沒
03/10 12:21, 98F

03/10 12:22, , 99F
(2)Rossetta上面那個是parameter type直接macro填進去
03/10 12:22, 99F

03/10 12:23, , 100F
效果類似C++ template,C11的_Generic
03/10 12:23, 100F

03/10 12:25, , 101F
我看了一下最接近的是3.3時 ide_devset 那一票
03/10 12:25, 101F

03/10 12:59, , 102F
但是他無涉型態
03/10 12:59, 102F

03/10 18:00, , 103F
覺得中文不中肯,那就看英文就好啦
03/10 18:00, 103F
文章代碼(AID): #1K_0S5Eg (Soft_Job)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 42 之 43 篇):
閒聊
3
26
文章代碼(AID): #1K_0S5Eg (Soft_Job)