Contents ...
udn網路城邦
物件導向只是常識概念,不是甚麼神奇理論!
2023/01/21 05:19
瀏覽1,768
迴響0
推薦11
引用0

圖一

前文提到初學程式設計時曾被物件導向「理論」困擾很久!有點像我讀書的時候,總覺得物理、化學、生物都很具體,從理論到公式,到實際問題的理解預測,都是一體成形沒甚麼模糊空間的!我也學得很好很高興!但是數學就有點飄忽不定?跟現實世界的關聯性有時候很緊密,有時候又可以完全脫節?同一事實可以用很多種不同的數學理論模式去分析?這就讓我這個死腦筋轉不過來了!直到我讀到研究所才頓悟:數學本來就是與現實不必有關的邏輯推理體系!重點是他們能否幫你正確量化你想分析的問題

回想起來我被物件導向困擾迷惑的關鍵因素就在這裡了!我是到了中年才認真學習程式設計相關知識的!我誤把電腦相關的知識當作物理化學生物來學了!其實這些資訊理論說得再神奇再天花亂墜,基本上都只是數學!不是來自特定的物理現象,也不必然可以,或應該應用到特定的事實!

用白話文說就是:抽象概念而已啦!而且其實都是你的日常經驗常識之中本來就知道的!但是如果一些原本你就會做的事情,忽然有人跳出來說:你以前都做「」了!應該「那樣」做,才是「」的?說話的人又是比你更有身分地位談電腦技術的專家?多數人就會因此迷惑困擾,甚至失去自信了!

譬如公司業務想要自動化,在沒有電腦之前的幾百年,這些事情本來就處理得很好了!員工如何排班?做多少事領多少薪水?本來就謹謹有條!有個會寫程式的員工想到計算薪水很麻煩容易錯,就寫了一個程式,輸入姓名就自動讀取他的職位本薪與各項福利加給,再輸入上班與請假日數就算出薪水了!

圖二

在穩定經營的多數小公司中,很多工作項目並不需要電腦化,這樣簡單的程式就很夠用了!如圖二的程式架構分類中,這種玩家員工自己寫的小程式,最多只是在結構化程式的階段,但是我不會因為「理論」上還有更高更好的程式架構,就覺得這家小公司必須「升級」他們的「軟體」!

簡單說,電腦的好處是來幫助我們把已經可以做好的事情提升效率的!如果你堅持一個小麵攤也必須有非常完整高檔的資訊管理系統?我只會覺得你是腦袋壞掉的神經病!因為付出的成本代價遠遠高於預期收益!跑太快的電腦化通常只是災難,不是社會進步的動力!

回到物件導向的話題,如果前述的小公司規模變大了!三五人的小公司,變成三五十人呢?就會有點需要物件導向化的資料結構設計了!但如果人事室只是請某個稍懂程式的員工開發一個模組化小程式,絕對比大刀闊斧的請大軟體公司做全面物件導向化設計工程更有效率!除非你的公司變成三五百或上千人!

隨著使用需求的複雜與高度重複使用,任何人做任何事情,都會自然的發展出物件導向的觀念!譬如常用的報價單,我們一定會做好一個範本(類別Class),需要時拿來複製修改一兩個欄位(屬性)就可以很快寄給新客戶了!現在你跟我要報價單,我10分鐘之內就可以用Line傳給你!還加上使用說明書與相關公司實績等等!

如果這個複製出來的文件(物件實體instance)更聰明一點!可以自動看電腦系統時間更改報價日期(方法)?可以自己更新其他會變動的資料重新做計算?你點擊這個文件(物件)時它就會自己自動開啟或做好其他SOP上要做的事情,如讀取使用說明與實績加入為報價單附錄?那不是更好嗎?那就是事件觸發概念了!但是以我每周頂多一兩次作報價的頻率,有生意機會心情很好,我樂於手動做這些事情,就根本不需要開發這種程式!

事實是:資深的程式玩家,根本不必學物件導向,就自然會想辦法用各種程式技巧實現這些他們自己想要的功能!反而是當他們知道這些動作被稱為物件導向,所以去上課或讀書學習何謂物件導向?或如何實作物件導向?就會花很多冤枉錢與時間,像是已經會開飛機的人去上飛行學校的課一樣,被惡整一頓之後還是必須自己摸索才能完成工作。

這就是物件導向設計概念在資訊業界的實況了!沒人說一定要細節怎麼作?做到甚麼程度標準?才有資格叫做「物件導向」的!你應該把物件導向當作一個攏統的形容詞!因為它根本不是,也不必是,一個明確的專有名詞!如果你以為如此,你就是被嚇唬欺騙的受害者了!20年前我沒資格這樣評論,現在我有了!

有誰推薦more
全站分類:心情隨筆 工作職場
自訂分類:不分類

限會員,要發表迴響,請先登入