※ 引述《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