Re: [請益] 比物件導向更先進的程式設計思想?

看板Soft_Job (軟體人)作者 (流水貫通)時間3年前 (2020/10/18 09:52), 3年前編輯推噓5(12751)
留言70則, 23人參與, 3年前最新討論串12/15 (看更多)
※ 引述《ripple0129 (perry tsai)》之銘言: : 也不是說轉換能馬上換掉的啊 : 真要說馬上能換就換掉的 : 我第一個就先推Javascript : 問題就是換不掉啊 JavaScript 是一個基於原型(Prototype-based)的程式語言 在本質上很難將它歸類為程序導向語言,或是物件導向語言 類別: JavaScript 中沒有類別(Class)的概念,但是有物件(object)的概念 而這個物件概念的物件,則是以GUI的 Widget為主 Widget 具有屬性及操作(事件反應)函式,兩者綁在Widget上是合乎操作的抽象習慣的 封裝: JavaScript 中的物件沒有封裝的概念 繼承: JavaScript 的物件沒有繼承(Inheritance)的特性 多形: JavaScript 的物件沒有多型(Polymorphism)的概念 命名空間: JavaScript 沒有命名空間的概念 以上這些典型的OOP亂源都沒有了,JavaScript寫出來的Code 自然也就不會像一般的OOP那樣臭 雖然有人說,還是可以用JavaScript寫出有OOP味的程式 但基本上沒有什麼人這樣做,真的這樣做,Code也是一團亂 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.229.0.133 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1602985969.A.989.html

10/18 10:02, 3年前 , 1F
有可能,但有更多的例子解釋為何是亂源嗎?
10/18 10:02, 1F
如果不排斥看英文 網路上資料很多啦! Ex. 搜尋 "anti object oriented programming"

10/18 10:07, 3年前 , 2F
很有趣的觀點, 的確以前沒注意過,不過較像c++語法的問題
10/18 10:07, 2F

10/18 10:08, 3年前 , 3F
OOP的觀念本身沒問題
10/18 10:08, 3F
Bjarne Stroustrup (C++ 創始者) 這老傢伙說C過時了 https://www.youtube.com/watch?v=KlPC3O1DVcg
看看底下的留言者,如何圍剿他

10/18 11:32, 3年前 , 4F
說亂源太超過了,就是不同設計法各有優缺點而已,強制
10/18 11:32, 4F

10/18 11:33, 3年前 , 5F
OOP 的語言確實造成了一些麻煩,但放開一些限制,引入
10/18 11:33, 5F

10/18 11:33, 3年前 , 6F
其他設計法的好處,截長補短,OOP本身還是很有價值
10/18 11:33, 6F

10/18 11:34, 3年前 , 7F
javascript 的玩法一樣生出了一堆討人厭的鬼東西
10/18 11:34, 7F

10/18 11:59, 3年前 , 8F
封裝的思想很好,代碼復用原則上是對的
10/18 11:59, 8F

10/18 12:52, 3年前 , 9F
JS的亂不是paradigm的問題,是一堆莫名奇妙設計不良
10/18 12:52, 9F

10/18 12:52, 3年前 , 10F
的東西還轉化成了知識,譬如說hoisting,this。這樣
10/18 12:52, 10F

10/18 12:52, 3年前 , 11F
的設計有好處就算了問題是根本沒有,不如噴錯出來給
10/18 12:52, 11F

10/18 12:52, 3年前 , 12F
我修正。
10/18 12:52, 12F

10/18 12:59, 3年前 , 13F
有訓練過的工程師也不會用到hoisting
10/18 12:59, 13F
全班考太爛,教授將分數開根號乘以十的概念

10/18 13:40, 3年前 , 14F
JS可OOP可FP 反正怎麼寫都會動 輸出是什麼就不知道了
10/18 13:40, 14F
老實說前端的東西 有需要搞得這麼複雜嗎?

10/18 14:07, 3年前 , 15F
client端也有複雜的
10/18 14:07, 15F
有技術價值的東西,放在明碼上,不是一下子就被切走了嗎?

10/18 15:27, 3年前 , 16F
我覺得樓主要去看看ES6之後了 你說的JavaScript是很久之前的
10/18 15:27, 16F

10/18 15:27, 3年前 , 17F
用狗哥查JavaScript封裝 繼承 多型 會有東西喔
10/18 15:27, 17F

10/18 15:28, 3年前 , 18F
多看點書
10/18 15:28, 18F
PO文的內容就是從書上來的

10/18 15:32, 3年前 , 19F
如果真的對物件導向很不滿,怎麼會連用自己的話說出來都辦不
10/18 15:32, 19F

10/18 15:32, 3年前 , 20F
到?只會叫別人 google,你自己的想法在哪裡?
10/18 15:32, 20F
請參考前面的發文,我已經寫很多了。 提供額外的參考,這樣也不行。就是要找碴乎

10/18 15:34, 3年前 , 21F
而且 js的定位並非全然都是前端喔 這樣說NodeJs支持者會哭
10/18 15:34, 21F

10/18 15:49, 3年前 , 22F
至於程式有大便味 就是有那種喜歡寫奇門遁甲if else的人
10/18 15:49, 22F

10/18 15:49, 3年前 , 23F
就是看誰衰 誰承受奇門遁甲阿 誰吃屎阿
10/18 15:49, 23F

10/18 15:58, 3年前 , 24F
不過回歸這話題 有沒有比oo先進 這很難說
10/18 15:58, 24F

10/18 15:58, 3年前 , 25F
但本肥很喜歡祖克柏 和比爾蓋茲的想法
10/18 15:58, 25F

10/18 15:58, 3年前 , 26F
覺得現行的語言太麻煩 自己幹出來一套語言
10/18 15:58, 26F

10/18 15:58, 3年前 , 27F
本肥覺得這才是這系列文最終想要的結果
10/18 15:58, 27F
前端語言要自幹,還要看瀏覽器買不買單,沒那麼大的本事 後端我用C就可以了,Web Server 還可以自己改(httpd) 不過現在沒有靠 Web 營生,所以沒有這個煩惱。 做純 Web 太血汗,好吃懶做的人早跑了

10/18 16:47, 3年前 , 28F
JS的封裝繼承多型也只是語法糖 本質還是Prototype-base啊
10/18 16:47, 28F

10/18 16:57, 3年前 , 29F
用你的關鍵字查詢 看到一個論點是OOP的共享狀態是雷區
10/18 16:57, 29F

10/18 16:57, 3年前 , 30F
無論這個共享狀態是全域變數 或是依賴注入的封裝依賴
10/18 16:57, 30F

10/18 16:58, 3年前 , 31F
但我好奇 類似這種全域變數 比如說連線池 是一定要的吧
10/18 16:58, 31F

10/18 16:59, 3年前 , 32F
如果不依賴這個共享的連線池 是要每次都重建?
10/18 16:59, 32F

10/18 17:00, 3年前 , 33F
fp的語言 會怎麼使用連線池呢? 閉包? 跟封裝差不多吧
10/18 17:00, 33F

10/18 17:00, 3年前 , 34F
還是說 完全不使用連線池?
10/18 17:00, 34F
不是很確定你問的問題是什麼? 回了怕變成雞同鴨講

10/18 18:13, 3年前 , 35F
JS本身就是垃圾語言 還好意思批評其他性質
10/18 18:13, 35F

10/18 18:20, 3年前 , 36F

10/18 18:21, 3年前 , 37F
什麼不推 推JS這個垃圾 我越來越覺得你在反串
10/18 18:21, 37F

10/18 18:22, 3年前 , 38F
JS沒有class 還在新版特別做了一個語法糖 你來說說為何
10/18 18:22, 38F

10/18 18:22, 3年前 , 39F
ECMA為何要舔OOP的懶趴好了 XDDD
10/18 18:22, 39F
因為市場需求,商人只管滿足需求,而不管有這種需求的人是不是獃子

10/18 18:24, 3年前 , 40F
樓上不要講ES6了啦 老骨頭根本跟不上時代了還活在過去
10/18 18:24, 40F
至少是美好的過去

10/18 18:26, 3年前 , 41F
樓上這圖.....XD
10/18 18:26, 41F

10/18 18:26, 3年前 , 42F
然後阿 就本質來講啦 所有的程式包括C 本來就都是語法糖阿
10/18 18:26, 42F

10/18 18:26, 3年前 , 43F
阿不然你要回去看組語或機器碼喔?XDDDDDDD
10/18 18:26, 43F

10/18 19:26, 3年前 , 44F
這篇言論的確像15年前的人講出來的 「前端不用這麼複雜
10/18 19:26, 44F

10/18 19:26, 3年前 , 45F
」、「JS沒有OOP」這些都不是現代JS語言應用實務上的狀
10/18 19:26, 45F

10/18 19:26, 3年前 , 46F
10/18 19:26, 46F
表示未來的 JavaScript code 要開始 Spaghetti 化了 殘念

10/18 22:17, 3年前 , 47F
實作是prototype base是一回事 class跟extend都出來
10/18 22:17, 47F

10/18 22:17, 3年前 , 48F
這麼久了不用當它空氣吧
10/18 22:17, 48F
不把它當空氣,就要開始寫 Spaghetti Code了

10/19 01:40, 3年前 , 49F
我看過前端寫REACT用一堆 if else 來控制畫面顯示
10/19 01:40, 49F

10/19 01:40, 3年前 , 50F
看到只覺得 wtf
10/19 01:40, 50F

10/19 12:34, 3年前 , 51F
ES6嘎?
10/19 12:34, 51F

10/19 13:29, 3年前 , 52F
你什麼時候產生了沒有OOP就不會有Spaghetti Code的錯覺XD
10/19 13:29, 52F
我沒有這樣說過呀! 是你誤會了

10/19 14:13, 3年前 , 53F
這篇看起來是久沒接觸前端的人憑著信仰發的文
10/19 14:13, 53F

10/19 14:15, 3年前 , 54F
稍有要求的公司早就都上ts了, 也不會用JS的奇怪特性
10/19 14:15, 54F
看一下這個網站,JavaScript 跟 TypeScript 的 Rank https://www.tiobe.com/tiobe-index/ https://reurl.cc/avMnOY 這篇文章說: There are no plans to support TypeScript natively in the browsers. Chrome did some experiment, but later cancelled support. (目前沒有任何的瀏覽器計畫對 TypeScript 提供天生的支援(不用加外掛)) (Chrome 曾經作過一些測試,後來取消了對它的支援) 「稍有要求的公司早就都上ts了」<-- 這是你的信仰,還是你在作夢

10/19 16:04, 3年前 , 55F
不要在那邊偷渡概念...瀏覽器不支援是另一個議題
10/19 16:04, 55F
來自同一篇文章 This is particularly important to note if you’re still in the prototyping phase. If so, don’t waste your time with TypeScript. JavaScript is so much more flexible. (不要浪費時間在 TypeScript 上面)

10/19 16:04, 3年前 , 56F
三大前端框架Angular本來就ts-based
10/19 16:04, 56F
越來越離譜了

10/19 16:05, 3年前 , 57F
另外兩個也都往ts靠攏, ts近年的趨勢網路上一堆文章
10/19 16:05, 57F

10/19 16:06, 3年前 , 58F
中型以上的frontend專案還用JS這種垃圾叫做自找麻煩
10/19 16:06, 58F
感覺就是微軟的大外宣

10/19 17:51, 3年前 , 59F
那既然都會義大利麵 用不用OOP有差嗎 關鍵不就在人?
10/19 17:51, 59F
這是機率的問題,用OO的人,90%都會製造糞code 造飛機~ 造飛機~ 來到青草地~ 造糞機~ 造糞機~ 就是O.O.P.~

10/19 17:54, 3年前 , 60F
反正不合你意就是大外宣 就是炒作 就是阿共仔的陰毛
10/19 17:54, 60F
阿共的陰毛不清楚啦,MS的陰毛全世界都知道

10/19 18:36, 3年前 , 61F
你看文章都不看上下文的嗎...
10/19 18:36, 61F

10/19 18:36, 3年前 , 62F
if you’re still in the prototyping phase.
10/19 18:36, 62F
不用OO,那句話有什麼問題

10/19 18:39, 3年前 , 63F
該文作者看起來就是ts派的
10/19 18:39, 63F
建議你把整篇文章仔細看一遍,它裡面還提到 Javascript is more flexible. ~~~ If Typescript is Windows, Javascript is Linux. I tried to refactor some of my hobby projects to TypeScript but it did not worth the effort.

10/19 19:19, 3年前 , 64F
熊熊發現這位不就是之前大戰OOP的大師嗎XD
10/19 19:19, 64F

10/19 21:16, 3年前 , 65F
js 是 prototype-based OO language 吧
10/19 21:16, 65F

10/19 21:17, 3年前 , 66F
他的好朋友還有 Lua 和 Self ?
10/19 21:17, 66F
您高興就好

10/19 22:53, 3年前 , 67F
JS 跟 TS 的發言真的是原始人....XD
10/19 22:53, 67F
所以你很先進?要不要掏出來看看,不要只會說別人的雞雞小

10/20 02:57, 3年前 , 68F
計畫什麼時候進桶啊?
10/20 02:57, 68F
建議你去當版主,把所有看不順眼的都桶一桶 ※ 編輯: csfgsj (218.32.249.24 臺灣), 10/20/2020 10:18:49

10/20 13:31, 3年前 , 69F
你有數據顯示寫OOP的比較容易寫出糞code?
10/20 13:31, 69F

10/20 13:31, 3年前 , 70F
我倒覺得根本差不多
10/20 13:31, 70F
文章代碼(AID): #1VYv_nc9 (Soft_Job)
討論串 (同標題文章)
文章代碼(AID): #1VYv_nc9 (Soft_Job)