精華區beta Programming 關於我們 聯絡資訊
※ 引述《GP03.bbs@aeug.twbbs.org (Gundam Pilot)》之銘言: > 不如兄台可嘗試去試看看 > 小弟也沒說不用OO解決不了 > 只是小弟使用OO一天能完成的工作 > 不知非OO能"精簡"到何種地步 > 對這比較好奇 OO 非OO 我都有寫過.. OO 的架構很重要..一開始架構錯誤, 以後可能大樓就需要重蓋過了,非常的勞累, 新人要進入你所架構的 OO 世界也很難入門, 光是瞭解你整個架構,就可以花掉你很多時間了, 要能瞭解你的架構後,才有能力玩你的什麼繼承不繼承的咚咚.. 光背這些 Class 有什麼用途就會累死你.. 就像 Java 一點也不難..對一個已經懂 C/C++的程式設計師來說.. 但為什麼 C/C++ 程式設計師無法立即就把 Java用的非常順手?? 因為 Java 的 Class 架構太大了...還要花時間去瞭解相對的關係.. 但會寫 C/C++ 要他去玩 PHP,一個小時就夠了..不要懷疑.. 真的花一個小時去學習就可以寫任何PHP程式(至少我是這樣) 這種學習曲線是很長的,可能你的新人才剛熟悉你的OO架構, 人家就又要離職不幹了..你又要請一個新人時,又要重新教導你的 OO 架構. 一學又是一個月多..啥事都不用幹..當然你沒寫過什麼 OO..那就另當別論, 因為人家剛進你的公司時,可能早就學過 MFC、Java...等等的OO繼承關係了... 所以不會那麼累..而你們公司真的是純 OO..是自己發展的Class 金字塔, 我相信這種學習曲線真的會非常長,你自己設計的你沒有困難,但別人要用你的 Class 就要學很久你當時定義的每個 Class 在幹嘛用的.. 非OO能有多精簡??一點也不精簡,但也沒你想像中得那麼費力,因為對 C領域來講, 各式各樣的函數前人就幫我們寫好了,我們只是呼叫他們的函數來使用,甚至 你所謂的 OO,實際上也是在乎叫非 OO 的 SDK 函數..所以你在寫 OO時, 還是一樣要去瞭解這些函數,不然有一天要你寫一個非制式的東西,困難一點的 你就可以等死了..根本就不知道怎樣去完成客人的要求,我舉一個最簡單的例子, Edit(Java的話就是 TextField物件) 這個物件你用到不要用了.. 但他的字串是靠左邊對齊的,要是突然要你把他改成靠右對齊,你有能力修改嗎??? 可能你也是有能力修改,但對本版 70%(絕對更高)的程式設計師來說..我敢說.. 應該是沒有能力根本不知道如何去修改。 為什麼你沒有能力修改??這明明就是 OO 的產物?? 那是你對 Edit 的Class繼承關係 還瞭解不夠透徹..那還講繼承不繼承?? 程式並不是要精簡就是最好,而是能解決問 題,你為了解決這個問題,還要從頭到尾重新來個學習這個 Class 架構..等你恍然 大悟,可能別人早就寫好程式了。 所以你在講用OO一天能完成多少工作,你寫程式的速度多快,那是指大部分沒問題 的狀況,但相對的客戶根本就沒有你那麼好講話,他們常常要求東要求西的,要你 把他龜毛要求搞定,用你的 OO就會整死你,最後你的 OO架構還有可能不三步四, 外觀看起來是 OO,實質內容也不是什麼 OO,也是一般的程式而已。以後根本沒啥 繼承能力可言。 我沒有說 OO 不好,對我來說能解決問題就好了,對於維護,我也沒覺得所謂的 OO有你們講的那麼便利,會很便利是對這套 Class 很純熟的來人講才是好維護, 叫一個剛碰你們的系統的人,根本無能為力維護起..(我指的 Class 都是公司自行 架構開發出來的產物,而不是指編譯器幫你架構起來的那套Class體系,因為編譯器 那套Class體系很多人早就不知道花多少光陰去學習過了) 相對的新人要去瞭解一套非 OO的系統,實際上會很快的就可入手了,可以擇其部分 功能分拆給不同人處理,至於你說不好維護,那大部分是你的寫程式習慣不好, 才會不好維護,並不是真的非OO的程式就很難維護。這些習慣包含寫註解、命名規則 、分模組....等等。 -- oRigiN: BBS(140.116.247.7) bbs.csie.ncku.edu.tw FrOm:59-104-61-66.adsl.dynamic.seed.net.tw