Re: [請益] 比物件導向更先進的程式設計思想?
※ 引述《dharma (達)》之銘言:
: 現在很多新出來的程式語言,(如Swift),從本質上說,都是物件導向語法,這是因為近
: 幾十年來,從來沒有比物件導向實現更先進的程式設計實現在新程式語言中全面取代物件
: 導向思想。
: 上面是某程式語言教學書看到的
: 他說的符合實情現況嗎?
: 一直沒有更先進的東西嶄露頭角
: 可能取而代之
: thanks
其實從我的觀點來看,軟體概念發展
例如,OO,MVC,MVVM,Design pattern
這些東西其實到後期都是為了"管理"的目的而發展出來的。
然而,軟體設計尚未跨出二維度空間的設計模式,所以整個為了管理的新模式就不會有太大的突破。就如同人類的商業模式一直在那幾個模式循環,只是換個世代改了不同平台與媒介。
你可以想像當未來某天寫程式需要站上平台或帶上VR頭盔在立體空間處理著你的程式方塊,那麼那個世代的新管理概念就會油然而生。
這十年來,我們的世界有著許多聰明的個人與團隊想要掙脫大架構的枷鎖例如JAVA這些怪物的框框,想自己建立一個自認為快又簡化的程式語言。
但這些新的程式語言發展到後來仍舊會慢慢背離它一開始的初衷,人加入的越來越多,架構越來越肥。第一版到第二版,第二版到第三版,當每一個版本改動時,你之前版本就得改一次或挪到新版本上。
我們仿佛像個笨蛋一直在循環這些從1970年代開始的理論,唯一的差別在於每個世代都有聰明人跳出來幫大家重新複習一次如何寫一個新的引擎,然後再讓它越來越複雜。
那回歸我想說的,這些概念例如OO,對初學者而言就是一種模式。
你不一定要學會這種模式,你亂寫一樣可以滿足你的老闆。只要你可以用很少的時間,做大量的管理或改善工作。
即使一萬行程式碼寫在一個檔案裡,都是你的本事。
這些東西到底有什麼樣的目的與意義?
說穿了,就是希望讓工作可以多一點效率,增加效率的同時也就是增加你偷懶的時間,用結構化的思維減少你寫扣的行數,用五秒鐘讓隊友看懂你的扣,就等於未來你可以五秒鐘看懂隊友的扣。
坦白說,這些概念4-50年來沒什麼改變
差別在於,你跟你的隊友把這些概用到什麼地方上? 當你運用這些概念在大專案裡build出讓你隊友省下很多時間的物件或模型時,即使它的概念極致就是這樣,那又何妨呢?
人生來工作,工作的目的不就是建立一個可以相互讓工作CP值變高一點的團隊,不是嗎?
--
太忠肯了 Q_Q
不過管理愈來愈先進軟體業就會愈像傳產 規模經濟的優勢會
愈來愈明顯 利潤開始集中在少數跨國大公司
工作內容會愈來愈流水線 幫公司作產品會愈來愈無趣
這是個結果論的社會 價值的衡量權又在別人身上 講那
麼多其實也是農場文 遇到對的公司對的人 讓你能被重
視被重用打工才有意義 不然都是鹹魚
你實現了你自己的"標準" 別人的標準也就難以介入 這
也是為什麼戰個沒完的原因
終於看到比較像樣的回文了,一切都是trade-off
敏捷討論到最後也都是人
推 但是...增加效率"!= "增加偷懶時間"
推 應該增加更多產出啦 XD
2
我個人主觀且偏見的覺得 OOP 不是聖杯,它只能管理一些些的複雜度,它雖好用但又沒那麼好用,它可以很容易跟其他技術結合在一起,所以起手式走oop 不見得不好,但也不用太過度期待用了能上天堂之類的 oop 就只是個工具,就像 solid 是個 guide(我也喜歡 solid,但現實世界總是不那麼美好),更別說是板上常見的 design pattern,我相信我們能從這些東西上面是可以學到一些東西,但也不用過度美化 如果真的要把程式寫好,我覺得練習寫能大量組合,無狀態,可驗證,又可高度抽象化的producedure,stateless,pipeline,wishful thinking programming 的方式會比較好,我反倒覺得這個聖杯存在很久了,只是很少人注意到 ----- Sent from JPTT on my Asus ASUS_I01WD.3
喜歡換一個思考模式嗎?歡迎進入 FP 1. compose 是 FP 語言中的基石 (O) 2. stateless FP 語言原則上沒變數概念,等號兩邊是等價的 (O) 3. 可驗證/高度抽象化,FP 的 type system 往往比 oo 系列的表達力更強 (O) ---6
OOP沒什麼不好啊 沒有OOP我們廣大的碼農們怎麼活下去 沒有OOP現在的軟體能發展成這樣嗎 每樣工具在其時代背景都有它的貢獻 沒有工具是完美的啊5
JavaScript 是一個基於原型(Prototype-based)的程式語言 在本質上很難將它歸類為程序導向語言,或是物件導向語言 類別: JavaScript 中沒有類別(Class)的概念,但是有物件(object)的概念 而這個物件概念的物件,則是以GUI的 Widget為主5
在討論oop fp 或任何概念之前 需要討論的是你的使用情境(context) 沒有context就只是在討論信仰 一開始沒有討論context,所以後面討論一定是到處互打,大家都覺得自己對 所以回這篇文的時候麻煩先描述想討論的contextX
國外反OOP的人不在少數 OOP 是萬惡之源 OOP is the Root of All Evil - Jeff Ward OOP 是爛東西8
物件導向其實是很偉大的發明 不知道酸民有沒有注意到--- 建築的預鑄工法, 其實也是物件導向 先把牆, 梁柱預鑄好, 搬到工地組合起來就好 所以現在蓋房子都超快的8
阿 是不是什麼王X歸來、邁向X手之路、拉近和X神之路、最強入門邁向X手之路之類的書?還是有附插畫的那種? 或者某些業者或教學單位新花樣, 賦予新名詞之類的,例如: 後X情時代、XG製造、智X製造、X捷開發、X石開發、X布開發、X端工程師、X個月轉職、X經驗工程師。 我覺得我地圖砲開太大XD,「完全取代」根本比不上「相容舊版」來的有用,薪水也不會比較多。9
依照目前看CodeReview 大部分人寫程式的方式 其實都披著OOP的皮 寫不是OOP的程式 甚至還看過很愛嘴別人的主管3
幾個迷思 很多人會講C沒有OOP 實際上C有 OOP是一種paradigm 本質上還是工程師的抽象化能力 有OOP思想的人去寫C 就會有OOP的味道 腦袋裝義大利麵的寫C++還是Java C# Swift 出來都是義大利麵
爆
Re: [問卦] 沒人發現軟體工程師晚年只會失業而已嗎!那只有你,我還每天在學 : 到時軟體工程師根本無法再跟上時代 : 只能被公司裁員 : 別人看到你年紀也不會想用你 : 根本就整個廢到笑啊!51
[問卦] 寫程式會用遞迴 大概是什麼程度?乳提 在寫code的時候 常用迴圈來設條件 讓程式來達成想要的目的 如for, while, do while 但有另一種比較進階的概念叫遞迴24
Re: [問題] 為什麼可以有這麼多bug?原文吃掉 小弟不才 只是個廢柴軟體工程師 其實這問題沒有這麼難理解 很多公司在小時候只是隨意做做設計16
[請益] 比物件導向更先進的程式設計思想?現在很多新出來的程式語言,(如Swift),從本質上說,都是物件導向語法,這是因為近 幾十年來,從來沒有比物件導向實現更先進的程式設計實現在新程式語言中全面取代物件 導向思想。 上面是某程式語言教學書看到的 他說的符合實情現況嗎?12
Re: [請益] 如何選擇適合的設計模式請你把clean code三本都看完 可以的話clean architecture也一起 這系列就是在講什麼時候該用什麼模式的準則 我這篇也講幾個重點原則 1. 保持簡單9
Re: [問卦] 自學C跟C++推薦哪個教材這問題...如果不是大一計算機程式教授要特別選一個配合長期發展的語言, 那麼以一般人來說,要先考慮的是你想做什麼事情 確認了你想做什麼事情之後,去問你認識的在做那些事情的人他們用什麼程式語言, 然後從那個程式語言開始學一個段落。接著就可以開始做你想做的事情了 Java Python C C++ 這四個要選一個當起點當然是 C 最好。9
[心得] 資工系但不喜歡寫程式每一個人的情況都不一樣,如果沒那麼喜歡寫程式有想繼續待在資工界 那麼專案管理也是不錯的選擇 youtube影片: 介紹: 很幸運的有這樣的機會與中正資工系(所)的畢業生Lush聊一下『專案管理』