※ 引述《gsj.bbs@bbs.nchu.edu.tw (國王的新衣)》之銘言:
: 我從來沒有反對抽象化的概念
: 將某些龐雜的事物化簡為抽象化的概念,的確是有它的好處與需求
是的
: 問題是將事物抽象化的方式、模型有多種,
是的
: 那一種才能最符合實際的狀況?或者是人類日常生活的習慣?
: 就如我以往所強調的:
: 對稱性很種要
: 你可以去觀察你的四周,人類社會組織的運作方式
: 包含你去考駕照、去餐聽吃飯、交女朋友等
: 不管這些事情有沒有訴之於條文,你可以發現一件事就是
: 它們都是 "循序化" 的一個過程
循序化是這世界上所有事物進行的的本質
但在循序化之上還有許許多多的層次
OO 是循序化的
並讓你處理循序化層次上其他層次的問題
: 我不知道你拿一個與事實狀況不對稱的OO抽象模型來套用它會有什麼好處!
: 在我看來根本就是自找麻煩
OO 底層跟循序化本質相合相對稱
OO 所討論的層次如 物件 封裝 Refinement 物件多型 與世界上的事理相謀合
: 如果對稱性夠,也不會有這麼多人摸了兩三年還不知道OO在作什麼
: 如果這個抽象模型,是與人類日常生活習慣是相近的,
: 為什麼會有這麼多人老是抓不到它的邏輯,反而是程式越寫越亂
OO 的學習曲線的確很長
但它的報籌是值得的
: 當然我也不完全否認所謂的 "OO" 抽象模型也有它適用的地方
: GUI可能是其中之一,但也僅限於此,超過這個範圍就完蛋了
No No No
: 對於OO的愛用者,我的建議是
: 當處理與GUI有關的議題時才可用,當處理與GUI無關的議題時不用
: OO就像是老虎,將關在GUI的議題籠子裡才是安全的作法
: 放出GUI籠子以外,老虎就要吃人了,有傷害
No No No
: 循序化的系統就要用循序化程式語言,循序化的抽象模型來詮釋它
: 才是方便符合邏輯的方法
: 有關 "循序化抽象模型",
: 你的腦袋可能還不知道有這種東西的存在吧!
: 所以才會以為循序化的程式語言都沒有抽象化模型
: 只有你們偉大的OO才有的這種看法
: 只要是循序化程式語言就很好用了,C就是我最常用的循序化程式語言
: 不像是有些人講的,非要扯到組合語言不可
: 在我的看法,組合語言之於C語言,它的強項在於
: 它可讓程式設計者
: 清楚的掌握程式碼或資料在記憶體中確切的Layout位置,尺寸大小
: C 語言則不行,因為這些工作要透過Compiler來作
: 不過這並不會影響到循序化抽象模型的建立,反而是更方便
: 你可能不知道循序化程式,也有它的抽象模型
: 而且普遍用在大型系統的系統分析中,不是只有OO才有抽象模型
: OO的抽象模型中,Class是物件
: 循序化的抽象模型也有物件,通常是指Struct
: 而且基於循序化的抽象模型,分析循序化系統就等於在分析程式一樣
: 實際系統與程式系統是One on One的對稱
: 所以如果有一家公司的行政作業流程如果要電子化,
: 系統分析完成的那一瞬間,也就幾乎等於程式架構完成了
: 只差訴諸於文字的程式映射
: 所以程式設計就變成一件很簡單的事
: 而且寫出來的程式在應用上,也完全符合使用者過去的習慣
您可以發表對循序化設計寫作的心得
我們很樂意聽
但去指責您不喜歡的東西
對初學者是不公平的
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.222.148.171