幽默:假裝從未發生過OOP? - johndcook
我最近遇到一個人,他說,擺脫物件導向程式設計(OOP)的方式是回到簡單地告訴計算機要做什麼,就像OOP從未發生過。我認為這不是一個好主意,我也不認為這是可能的。
物件導向的程式設計(儘管後來有過之而無不及)是軟體工程領域的一大進步。它使開發比以前更大的程式成為可能,也許比原來大10倍。有人可能會反駁說,由於OOP的所有開銷,程式必須大10倍,但事實並非如此。OOP確實增加了一些開銷,並且隨著時間的推移,開銷的數量隨著工具和框架變得更加複雜而增加,但是OOP使得編寫以前無法編寫的程式成為可能。
OOP為程式設計師提供了一種組織程式碼的方法。根據問題的不同,它可能不是最好的方法,但是超越OOP的方法是用另一門學科來代替它(而不是隻是否定它但無法替代它)。而且我想象大多數學習過然後拒絕OOP的人都會這樣做,無論他們是否意識到。也許他們保留了在OOP的背景下學到的一些組織模式。
雖然我不經常編寫類,但是我經常使用來自庫的類。有時,這些物件看起來似乎比裸函式更好,但是我想如果沒有將函式包裝在物件中的話,相同的庫將更難使用。
OOP有許多組織程式碼的替代方法。我通常喜歡函數語言程式設計,但是根據我的經驗,當您嘗試將純度提高到100%時,曲棍球運動曲線會有所變化。詹姆斯·海牙說得很好:
100%純函數語言程式設計不起作用。甚至98%的純函數語言程式設計也不起作用。但是,如果將函式純淨度與1980年代BASIC式命令式凌亂之間的進行平衡,也就是降低一些等級(例如達到85%),那麼它確實起作用。您將獲得函數語言程式設計的所有優勢,但是卻無需付出極大的精力和不可維護性,而這種努力和不可維護性會隨著您越來越接近完美的純淨而增加。
用純函式程式碼開發系統的大部分是一種可能,也是一個好主意。但是有人必須寫出與外界互動的混亂部分。(這部分使用OO封裝能降低純函式的混亂和複雜性)
相關文章
- 如何假裝寫過 SwiftSwift
- 17-oop封裝OOP封裝
- 你從未聽說過的 JavaScript 早期特性JavaScript
- OSSPostObject未發生回撥的問題排查Object
- 如何假裝你懂機器學習?機器學習
- js中用oop思想封裝輪播JSOOP封裝
- PHPer 請下來好好過一看過去 PHP、Java、Go都發生過什麼?這對於未來的發展很重要PHPJavaGo
- OOPOOP
- git假裝檔案沒更新Git
- 幽默:過度使用Lambda的Java程式碼Java
- 從過去到未來:關於 HTTP2 的研究HTTP
- 我從未見過如此神經病的打牌遊戲遊戲
- 6個你可能從未使用過的Python技巧!Python
- 幽默:用人體比喻Web開發Web
- 未來 Android 開發的從業方向Android
- Laf Assistant:雲開發從未如此爽快!
- 校園微商給大學生挖坑:虛假資訊忽悠學生做代理
- 幽默:新創業公司透過SSH銷售咖啡創業
- 你可能從未聽說過這15個HTML元素方法!HTML
- 5種你可能從未聽說過的程式語言
- 偉大工程師從未說過的9句話工程師
- 從你輸入網址,到看到網頁——詳解中間發生的過程網頁
- 未來已來,新一代AI以假亂真AI
- 阿里旅行假未來之名 實打資料與金融戰阿里
- 幽默:未來大事情是人工智慧還是區塊鏈?人工智慧區塊鏈
- 修改glogin.sql引發的生產系統監控的虛假報警SQL
- 幽默:軟體工具發展太快了.....
- 幽默:軟體工程其實並不是理科生的天下軟體工程
- 從量變到質變《陰陽師》IP生態“未來已來”
- 去中心化計算的未來:通過 RPC 從微服務過渡到 WASM中心化RPC微服務ASM
- 我從未見過如此“魔幻”的E3釋出會
- 假裝是小白之重學MyBatis(二)MyBatis
- 假裝很忙的三個命令列工具命令列
- SIAM:研究顯示幽默的教學方式或許能更好激發學生的創造性
- 從OOP和FP看蘋果Swift語言與Scala比較OOP蘋果Swift
- 論文:從第一原理匯出依賴型別 OOP型別OOP
- python oopPythonOOP
- oop原則OOP