看板 Soft_Job 關於我們 聯絡資訊
※ 引述《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
robler: ...回去看課本好嗎 這種東西基礎到連講給學生聽都嫌太淺 03/08 16:29
balista: 1 + 2, and 1.0 + 2.0, so? 03/08 16:29
※ 編輯: csfgsj (61.228.25.189), 03/08/2015 16:32:23
remmurds: 唉 03/08 17:02
bibo9901: 因為一寫code就顯示自己程度低落, 所以只好在用詞上誇張 03/08 17:23
ping1777: 精闢! 03/08 17:37
banjmin: 不是在講oop怎麼變coding style 一直跳針 03/08 17:44
ianlin45: 同名異式與OO是互相獨立的觀念 03/08 17:45
ianlin45: 不要自己看不懂OO的code就在那裡牽拖 03/08 17:46
ianlin45: 你只是抽象思考能力不足而已 03/08 17:46
ianlin45: OO好用到連一些C語言的程式都以OO的方式開發 03/08 17:50
ianlin45: 人家程式夠大 分工夠細 更新夠密集 03/08 17:52
ianlin45: 就能體會OO的好處 你級數不夠 當然只能murmur 03/08 17:52
adsl99801: 這 段次也太。。。。。。 03/08 18:24
dreamnook: 講重點= = 03/08 18:31
csfgsj: @robler 那一本? 03/08 18:35
Ansaga: 我到底浪費了多少時間 03/08 19:12
alan3100: 恩恩 好棒棒 03/08 19:41
y3k: 你根本沒有實務經驗 愈講愈看得出這方面的淺薄 03/08 21:05
snaketsai: @robler:課本可能筆較少提,Clean Code跟Code Complete 03/08 22:26
snaketsai: 是很多有軟工經驗的老師會推給學生的書 03/08 22:26
snaketsai: 可惜現在的學生......(ry 03/08 22:27
csfgsj: @y3k:小弟至少待過一家做切肉機的公司,作的是Architect 03/08 22:41
csfgsj: 的職位。如果你也覺得這也不算實務經驗,也對 03/08 22:43
csfgsj: 感覺都是在搞政治 03/08 22:43
csfgsj: 我們這個小小的Team有一半是phD.,不過我不是 03/08 22:45
csfgsj: 台灣人只有兩個,除了我另一個是NTUEE的老老學長 03/08 22:47
csfgsj: 他在切肉機公司有30年的資歷 03/08 22:47
csfgsj: 大部分的工作就是坐飛機飛來飛去開會,要不然就是con-call 03/08 22:49
csfgsj: 有人說當我的同事很可憐,這個我覺得很好笑 03/08 22:53
csfgsj: 月薪兩萬美金會可憐到那去。(我沒有那麼多) 03/08 22:53
csfgsj: 我印象中他主要的工作就是在解放軍公司開會時 03/08 22:54
csfgsj: 幫英國來的FW麻子主管作翻譯 03/08 22:54
y3k: 可是你所說出來的概念和技術都有非常嚴重的偏狹狀況 幾個認真 03/08 22:58
y3k: 回你的你也沒有認真用邏輯和知識回覆 這樣你講的經驗一點可信 03/08 22:59
y3k: 度都沒有 不是扯一堆關係就超強阿 你根本連OOP得概念都一蹋糊 03/08 23:00
y3k: 塗到驚人的地步 你真的有這種資歷還是隨口唬爛的啊? 舉這種資 03/08 23:00
y3k: 歷在理性討論的場合裡一點用都沒有 講白了脫下那身衣服勳章大 03/08 23:01
y3k: 家都是猴子而已 言不及義胡說八道人家一樣看在眼裡 03/08 23:02
csfgsj: (他的英文名子很長又很難記,應該是印度裔,剛好他臉上有 03/08 23:05
csfgsj: 有很多mole,會議記錄我都記麻子說(mole): 03/08 23:05
csfgsj: 還有一個大陸同事,看起來鳥鳥的,平常開會只會傻笑 03/08 23:06
csfgsj: 後來才知道,這傢伙13歲就拿到美國大學的獎學金 03/08 23:06
y3k: 還是說你其實只是個司儀採買助理之類的來裝逼?XD 03/08 23:06
csfgsj: 直接從北京保送到美國唸大學(數學系) 03/08 23:06
csfgsj: 在這邊我基本上就是一作雜事的loser,所以後來也就跑了 03/08 23:07
y3k: 所以你認為這算你的資歷?XD 那在台積電掃廁所我都可以說見過 03/08 23:26
y3k: 張忠謀幾面還被他當面誇獎過(洗得很乾淨之類)也被當面叮囑過 03/08 23:27
y3k: (洗手檯上的口香糖記得刮乾淨)這樣? 資歷並不能反應實力絕對 03/08 23:28
y3k: 是出過社會的人一定知道的事情 你如果真的有你講過那種經歷 03/08 23:28
y3k: 那也是讓你成為這種負面印象的實例之一而已 講點有意義的吧 03/08 23:29
y3k: 至少讓人覺得你真的寫過OOP 不然你改變方向講幾個你知道的OOP 03/08 23:29
y3k: 優點出來? 03/08 23:29
lachtchlee: 網路上瞎掰 谁也會 光看你po的文 還需辯解啥 !? 03/08 23:32
lachtchlee: 你說你是MIT掃廁所的也行 XD 03/09 00:00
sorryla: 今天看完大眼睛的電影 發現這位跟男主角挺像的 03/09 00:01
sunsamy: 為什麼大家要噓他?我覺得他講得超重要的,工作了快十年後 03/09 00:06
sunsamy: 寫了無數的程式後,才能領悟出來的重要道理之一 03/09 00:06
sunsamy: 難道大家是宇宙大懶覺?http://disp.cc/m/163-8wCD 03/09 00:06
snaketsai: 把naming跟polymorphism摻在一起... 03/09 00:13
iFEELing: 忽然覺得我的觀察還蠻準的 該退休的快退休不要再害人了 03/09 00:34
iFEELing: 這個世界跟你習慣的那個已經差很遠了 03/09 00:36
iFEELing: 等到哪天要解上古時代失傳的符號再把你請出來比較好 03/09 00:38
ihon822: 多型跟naming有什麼關係?? 請再多了解多型要解決什麼問題 03/09 00:50
robler: 要不是外行人在幻想自己是工程師 不然就是上古原始人 03/09 07:57
robler: 沒那個水準就不要一直發文丟臉 浪費大家的時間.. 03/09 07:58
ihon822: 世紀末軟體革命 賀元/賴明宗/劉燈 圖書館有 03/09 12:09
GoalBased: 強者我同事,這是哪招XDD 03/09 12:15
csfgsj: 世紀末軟體瘟疫 03/09 12:29
rupcj8: 不是有人說要結尾了 結尾應該不等於繼續發廢文 03/09 12:32
henry5405: 03/09 12:34
robler: 不要再幻想你會寫程式了 丟臉 03/09 12:38
palemoon: 03/09 12:48
sam7159: 樓主好可愛,到科技板發文取暖又被打臉了 03/09 13:41
snaketsai: 賀元前輩好歹搞了intel一筆錢,.com泡沫又不是誰的錯 03/09 14:04
snaketsai: 你真的要談polymorphism,學理上它有四種: 03/09 15:07
snaketsai: Subtype polymorphism 03/09 15:08
snaketsai: Parametric polymorphism 03/09 15:08
snaketsai: Ad-hoc polymorphism 03/09 15:08
snaketsai: Coercion polymorphism 03/09 15:09
snaketsai: 最後一種的意義,實際意義就是type casting 03/09 15:09
snaketsai: 除非你寫C不曾做過轉型,不然你也用過polymorphism 03/09 15:11
ACMANIAC: 醒醒吧阿宅,你不會寫程式 03/09 15:22
realmeat: void doSomthing(void* murmur) 03/09 15:33
realmeat: void doSomthing(void* murmur, boolean isMurmur) 03/09 15:51
GinginDenSha: 還以為你要說什麼........ 03/09 21:09
snaketsai: 最後附上Rosseta Code上面的範例: 03/09 22:56
snaketsai: 看一下C那邊用MacroMagic的手法,我只覺得cscope或者 03/09 22:58
snaketsai: 一些debugger遇到會直接吃不到 03/09 22:58
csfgsj: node_##T##_t node_##T##_t 03/10 09:10
csfgsj: 這種語法在C,我不騙你,也不怕你笑,這一輩子只看過一次 03/10 09:12
csfgsj: 在Linux 2.0 的Kernel source裡 03/10 09:12
csfgsj: 事實上有很多其他的寫法可以作到該功能,而且比較容易閱讀 03/10 09:14
dreamnook: 寫一下 麻煩你了 03/10 09:21
dreamnook: 不然引用一下來源也行 03/10 09:21
csfgsj: kernel/include/linux/ide.h 03/10 09:36
dreamnook: 謝啦 03/10 09:41
snaketsai: (1)版本應該不是2.0開頭,2.0.1還有lxr上的2.0.40都沒 03/10 12:21
snaketsai: (2)Rossetta上面那個是parameter type直接macro填進去 03/10 12:22
snaketsai: 效果類似C++ template,C11的_Generic 03/10 12:23
snaketsai: 我看了一下最接近的是3.3時 ide_devset 那一票 03/10 12:25
snaketsai: 但是他無涉型態 03/10 12:59
rrmm: 覺得中文不中肯,那就看英文就好啦 03/10 18:00