精華區beta Programming 關於我們 聯絡資訊
※ 引述《Email.bbs@bbs.csie.ncku.edu.tw (被踩在腳下的副工程師)》之銘言: > ※ 引述《GP03.bbs@aeug.twbbs.org (Gundam Pilot)》之銘言: > > 不如兄台可嘗試去試看看 > > 小弟也沒說不用OO解決不了 > > 只是小弟使用OO一天能完成的工作 > > 不知非OO能"精簡"到何種地步 > > 對這比較好奇 > OO 非OO 我都有寫過.. > OO 的架構很重要..一開始架構錯誤, > 以後可能大樓就需要重蓋過了,非常的勞累, > 新人要進入你所架構的 OO 世界也很難入門, > 光是瞭解你整個架構,就可以花掉你很多時間了, > 要能瞭解你的架構後,才有能力玩你的什麼繼承不繼承的咚咚.. > 光背這些 Class 有什麼用途就會累死你.. > 就像 Java 一點也不難..對一個已經懂 C/C++的程式設計師來說.. > 但為什麼 C/C++ 程式設計師無法立即就把 Java用的非常順手?? > 因為 Java 的 Class 架構太大了...還要花時間去瞭解相對的關係.. 錯哩,java很容易,為啥要把Java跟Class綁在一起呢? 自己需要那些class再去看那方面的文件就好。 為什麼要看那麼多class呢? 只要會java的語法,會看java的class宣告,會延展java的class。 這樣你就會寫java了。要這些跟本不需要把那一大堆的Class搞懂。 每個class都要他自己負責的工作。有些是你一輩子也碰不到的。 不需要去搞懂他。只要懂自己需要的部分就行了。 > 但會寫 C/C++ 要他去玩 PHP,一個小時就夠了..不要懷疑.. > 真的花一個小時去學習就可以寫任何PHP程式(至少我是這樣) > 這種學習曲線是很長的,可能你的新人才剛熟悉你的OO架構, 其實PHP也是有一堆class的唷!! 只是你還摸不夠滴!! > 人家就又要離職不幹了..你又要請一個新人時,又要重新教導你的 OO 架構. > 一學又是一個月多..啥事都不用幹..當然你沒寫過什麼 OO..那就另當別論, > 因為人家剛進你的公司時,可能早就學過 MFC、Java...等等的OO繼承關係了... > 所以不會那麼累..而你們公司真的是純 OO..是自己發展的Class 金字塔, > 我相信這種學習曲線真的會非常長,你自己設計的你沒有困難,但別人要用你的 > Class 就要學很久你當時定義的每個 Class 在幹嘛用的.. 何不說,要知道你每個function的定義是幹麻更學不完呢? 一家公司如果有300個class 那換成純function可能就超過三十萬了XD > 非OO能有多精簡??一點也不精簡,但也沒你想像中得那麼費力,因為對 C領域來講, > 各式各樣的函數前人就幫我們寫好了,我們只是呼叫他們的函數來使用,甚至 > 你所謂的 OO,實際上也是在乎叫非 OO 的 SDK 函數..所以你在寫 OO時, > 還是一樣要去瞭解這些函數,不然有一天要你寫一個非制式的東西,困難一點的 > 你就可以等死了..根本就不知道怎樣去完成客人的要求,我舉一個最簡單的例子, > Edit(Java的話就是 TextField物件) 這個物件你用到不要用了.. 各式各樣的函數?!那為啥你又說java的class多? 還有! 寫OO的時候不需要知道底層在幹麻的,這才是OO的王道! 要show一張圖片何必要學一堆影像壓縮呢? 要做低階的工作別以為OO作不到唷!! 你說函數多,函數強?請問一下用standard library你寫一個heap要寫多久? 我用class只要3秒吧XD 只需要去學自己需要的東西就好 > 但他的字串是靠左邊對齊的,要是突然要你把他改成靠右對齊,你有能力修改嗎??? > 可能你也是有能力修改,但對本版 70%(絕對更高)的程式設計師來說..我敢說.. > 應該是沒有能力根本不知道如何去修改。 直接繼承下來override一下就KO了。一點都不難! 就說OO要先懂再來談吧! 繼承下來改第一,改函數bug容易跳出來,繼承下來改幾乎不會有bug。 第二,舊的程式可以保證100%相容。 你改函數或新增函數出現的問題將會是。有複製貼上那些東西? 然後開始trace那些函數是相關。需要修改或新增的。維護上會死人唷~~~ > 為什麼你沒有能力修改??這明明就是 OO 的產物?? 那是你對 Edit 的Class繼承關係 > 還瞭解不夠透徹..那還講繼承不繼承?? 程式並不是要精簡就是最好,而是能解決問 > 題,你為了解決這個問題,還要從頭到尾重新來個學習這個 Class 架構..等你恍然 > 大悟,可能別人早就寫好程式了。 基礎OO的關念要懂。不懂講這個永遠都沒有用。一堆人只以為OO只是GUI designer。 就來這邊說OO爛。 > 所以你在講用OO一天能完成多少工作,你寫程式的速度多快,那是指大部分沒問題 > 的狀況,但相對的客戶根本就沒有你那麼好講話,他們常常要求東要求西的,要你 > 把他龜毛要求搞定,用你的 OO就會整死你,最後你的 OO架構還有可能不三步四, > 外觀看起來是 OO,實質內容也不是什麼 OO,也是一般的程式而已。以後根本沒啥 > 繼承能力可言。 看能力的。如果不懂OO的話真的會變這樣唷。只會寫GUI為啥? 因為是美工人員啊XD > 我沒有說 OO 不好,對我來說能解決問題就好了,對於維護,我也沒覺得所謂的 > OO有你們講的那麼便利,會很便利是對這套 Class 很純熟的來人講才是好維護, > 叫一個剛碰你們的系統的人,根本無能為力維護起..(我指的 Class 都是公司自行 > 架構開發出來的產物,而不是指編譯器幫你架構起來的那套Class體系,因為編譯器 > 那套Class體系很多人早就不知道花多少光陰去學習過了) > 相對的新人要去瞭解一套非 OO的系統,實際上會很快的就可入手了,可以擇其部分 > 功能分拆給不同人處理,至於你說不好維護,那大部分是你的寫程式習慣不好, > 才會不好維護,並不是真的非OO的程式就很難維護。這些習慣包含寫註解、命名規則 > 、分模組....等等。 真的了解OO為什麼要用OO來管理維護,明顯就是在。OO能把所有功能做分類。 而function呢? 一堆相依問題。有多難搞?我想寫過函數的都知道吧! 除非你寫的是小程式。小程式的話當然就會覺得用function比OO來得直覺跟快! 試試大一點的project吧~ 會讓你對OO有另一層的了解! -- ※ Origin: SayYA 資訊站 <bbs.sayya.org> ◆ From: 59-104-35-132.adsl.dynamic.seed.net.tw