作者yauhh (小y寶貝)
看板Soft_Job
標題Re: [閒聊] OOP小評
時間Wed Mar 4 01:09:50 2015
※ 引述《csfgsj (Lazy bone)》之銘言:
: 而這一句話對你的影響
: 將決定你未來在軟體工程的生涯與發展
快說吧,不要拖台。
看了大概這一天好精彩的對話,想了一下,提個幾點吧:
1. 大概理解 csfgsj 所指的隱晦。因為 OOP 真是相當程度抽象化。
所以你可能突然看到字面上一個變數被丟給一個物件,然後你不知道那個
變數是什麼。或者你可能透過 IDE 的幫助,剛好讀得到那個變數的類別名稱,
但是很不幸地,因為與程式作者觀點不同,所以就隱晦了。
有可能你在讀程式的時候,腦中在給父子類別的程式碼做人肉融合啊。
也許請你看一看 MVC 的程式,你腦中會發生蠻有趣的事情。
為什麼 csfgsj 認為 packages 那一大堆類別是被超出來的程式碼?
我的想法是,那些都是資料型別,而寫一些類別,繼承一些類別,都是在
擴充資料型別而已。
2. 我也覺得 duck-typing 真是超討厭的東西,讓一個物件或類別裡被提到、被寫明
的東西就少了。由於眼見的資訊不多,那就跑起來然後看 debug 資訊吧,
如此做下去,久而久之,漸漸就養成讓程式跑起來才看運作內容的習慣。
可是,這種事情其實在 procedural 或 functional 的程式,都會遭遇到同樣情況。
不過,從另一面觀點來看,就是因為類別有些可以寫得很簡單、很隱晦,
可以你可以嘗試從新找回腦力的自主權,用腦袋來推動你的程式碼擴增,
而不是做大量重複的字面 copy & paste ,讓程式碼吸走你的腦力。
3. 以我身為一位不太喜歡 OOP 但必要時都會用,但喜歡函數語言的人來看:
OOP 太沒有可以用形式化的文字描寫的討論了,所以從業界來的人,談起 OOP 來,
很具體,彷彿這些程式碼帶有什麼物理作用,可是聽完之後較感覺到空虛。
有更簡單的文字書寫方式,能讓你很簡單地說,某一套程式重構成另一套樣子,
寫得比較簡單漂亮嗎?
但是函數語言是有數學與形式系統基礎的,可以用三言兩語就讓你眼見
一些很清楚的概念。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.160.144.227
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1425402593.A.72D.html
→ typiacalcat: fp可以三言兩語讓你眼見一些清楚的概念 難道oop沒有? 03/04 01:20
有啊,OOP的三言兩語我也見過,但是通常只能交代出特例。
當他們要說明通則的時候,就寫得很長了。
這也反映出業界的人大都由特例理解事情,而特例之間轉換、歸納通則的
思考能力不夠。
→ typiacalcat: 最近雖然fp很紅 也看了點fp的資料 但還沒有像當初學 03/04 01:23
→ typiacalcat: oop時感受有夠多優點去投入 求大大提點更多fp的優點 03/04 01:26
→ typiacalcat: 或者能說一下 下個世代取代oop的fp語言王者是誰? 03/04 01:28
→ CaptainH: fp門檻高而且有時候更隱晦... 你怎能期待他會這個呢 03/04 02:30
→ saladim: 有人寫過的物理引擎 就帶有很大物理的形式在 反而好讀 03/04 03:08
→ saladim: 純寫程式作的引擎味道就不一樣 很有趣 真的可以體會一下 03/04 03:09
→ saladim: fp門檻有點高 撐過去的真的海闊天空 思慮清晰 撐不過的只 03/04 03:10
→ saladim: 好乖乖的當code monkey --> 就是我~~ xddd 03/04 03:11
※ 編輯: yauhh (118.160.144.227), 03/04/2015 10:19:35
→ yauhh: 呃,那接下去是否要寫新的討論串,標題為「FP小評」嗎? 03/04 10:21
→ typiacalcat: 若大大有閒情雅致造福版眾 在下相當期待 03/04 13:33
推 snaketsai: 同求《FP小評》,雖然我很怕FP ... 03/04 13:46
→ azureblaze: 內容: 我不懂fp所以fp爛爆了 03/04 14:18
推 azureblaze: 不過真的想看看fp比較好用的地方的實例 03/04 14:21
→ azureblaze: 一直想學可是找不到理由 03/04 14:22
推 rodion: 有興趣學FP 目前所認識似乎其最有用的地方在於平行處理? 03/04 15:55
→ drm343: 我目前看到的 FPler 都在做 compiler 03/05 20:58