我自己也知道,這一點也不物件化.........
推 sing10407: 物件話就要容易重複使用 你的物件是否和某個功能內聚性高呢?如果下個模組有類似功能你的物件能不能直接用?還是可以繼承你的物件後就可以直接使用?還是都要重寫?可以往這個方向想一想 或看前輩怎麼寫的1F 08/12 22:47
推 NCUking: 學設計模式吧 入門可看深入淺出5F 08/12 22:49
→ dnabossking: 不能看前輩的程式,他們都說什麼有機密@@
我只能自己寫自己的@@6F 08/12 22:57
推 neotek: 看別人的project 網路上的tutorial
看open source的library怎麼寫8F 08/12 22:58
推 Masakiad: 去ooad版 雖然文不多 但是總有些線索 然後前輩說不夠物件導向 那你有反問這個功能怎麼寫才物件導向嗎10F 08/12 23:06
推 yfr: 我覺得OOAD的幾個大原則(SOLID)掌握住,輔以設計模式
實際實作之後應該可以有一點想法12F 08/12 23:31
→ yfr: 不過我覺得問題比較大的應該是前輩的程式有機密這句話吧
讓人不知道該說些什麼,我第一個想法是搞不好前輩也沒多強15F 08/12 23:33
推 WJAider: 看別人怎麼用啊,找個 open source 大師的 Java Library保證滿滿物件導向實作 (?17F 08/12 23:40
→ xtxml: 我覺得你可以直接問你的前輩啊,不會就說不會不用怕
如果他們OOP都學得不錯的話,應該很簡單可以給你思考方向他們既然會覺得你的東西死,肯定使用上就有些預期的想法
把這些想法跟你說應該沒啥機密不機密的問題吧19F 08/12 23:41
→ htury: 應該是你習慣寫c的關係..你多模仿別人寫的..久了就會了
如果之前沒有接觸過oo,要跨過這門檻也是要一點時間的
主要還是高內聚低耦合,重複code不要常出現24F 08/13 05:30
推 Ekmund: 你缺少看大project的經驗 只會寫功能
但這本來就需要時間經驗去堆...27F 08/13 08:41
推 thinkniht: 想法同yfr 搞不好前輩也沒多強 只是想藉著貶低別人顯示自己的厲害 要學oo我也建議設計模式29F 08/13 09:21
推 amazing2014: UML -> Design Patterns -> Software Engineering
Java31F 08/13 11:28
→ GoalBased: 前輩不跟你說怎麼寫,就貼一段CODE上來給網友鞭阿33F 08/13 12:49
推 taikobo: 看不到前輩的程式是因為沒有版本控管嗎?看程式學最快36F 08/13 22:30
推 adsl99801: 給你有用的建議:現在開始 不准用複製貼上 包你你就會離不開oop了
鍵盤上的複製功能37F 08/14 07:26
看板 Soft_Job
作者 csfgsj (仙人異路)
標題 Re: [請益] 如何學習物件導向?
時間 Thu Aug 13 10:45:26 2015
※ 引述《dnabossking (少狂)》之銘言:
: 自認邏輯算好,也還算能寫程式
: 在學校真正念過資工相關課程只有C語言和計概
: 雖然非本科生,但QUEUE、STACK、BFS、DFS、
: 最短路徑、HEAP TREE、二元樹、紅黑樹、各種搜尋、排序
: 一些資料結構、演算法都在大四那年開始自學,
: 競賽的題目也會常常寫(都是用C)
學習OOP,建議您先想想以下兩個問題:
1, OOP的本質為何?
2, 學習OOP的目的為何?
我相信大部分的人在學習OOP之前,都沒有想過這個問題
人云亦云一窩蜂
有很大可能性,只是在自找麻煩
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 210.71.206.217
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1439433929.A.F03.html
→ wellkom: 好像說了什麼,但是其實什麼都沒有說,標準廢話1F 08/13 10:50
→ csfgsj: 那就表示您跟大部分的人一樣,不知道如何回答這個問題2F 08/13 10:54
→ csfgsj: 哲學問題是所有科學的基礎,數學無法告訴您此問題的答案4F 08/13 12:03
→ ggBird: 廢文,我阿罵都說的比你好7F 08/13 12:55
→ hidog: 我論原po不懂OOP的可能性....XD8F 08/13 12:58
→ a47135: 多花幾秒a一下ID你們可以不需要推文XD9F 08/13 13:10
→ leolarrel: 我反倒很推這篇,一大堆人是該想想了,噹樓主的那個"前輩"也應該要想想10F 08/13 13:17
推 Ting1024: 這篇才是正解。OO學習曲線過長。並不是好東西。12F 08/13 15:19
→ ACMANIAC: 這不是隨便一本談論 OOP 的書開頭都會講的事嗎.....14F 08/14 12:51
→ csfgsj: 當有許多人連要寫什麼程式都還不是很清楚
就開始先寫 Class XXX { … } 的時候
你就知道問題有多嚴重。15F 08/14 17:19
推 hidog: 不懂你的問題是有多嚴重...XD18F 08/15 01:29
看板 Soft_Job
作者 jetswayss (小犬)
標題 Re: [請益] 如何學習物件導向?
時間 Thu Aug 13 12:26:11 2015
首先,才接觸OO一個月會有很多疑問是很正常的
至於怎麼突破現在的問題我有幾個想法
根據你的原文,你已經學習過一些OO實作範例
那我會建議你先不要看這些範例了
先看一些理論上,理念上的東西
1.
OO是design的問題 怎麼去設計OO program
基本上OO就什麼也不是,程式怎麼寫都可以
但為什麼我們需要OO呢?
因為沒有人有辦法管理各式各樣的錯綜複雜的code
"
我們希望藉由帶入物件的理念進入軟體世界
"
物件 會有自己的屬性 外加上 我們給予的限制
會使得程式更好管控 擴充 維護...
屬性指的是 介面 => 掌控 物件行為規範
限制 single responsibility principle,Liskov substitution principle之類的
而OO的principle可以說是較重要的
注重 為什麼要這樣做 達成的好壞處
建議你先從SOLID和GRASP看起
https://en.wikipedia.org/wiki/SOLID_(object-oriented_design)
https://en.wikipedia.org/wiki/GRASP_(object-oriented_design)
2.
而你列出的
"
類別、繼承、多載、
多型、介面、委派、抽像
"
這些都算是OO的基礎
我先講一個 其他的你可以再去看其他的書介紹
為什麼要繼承
實作面: 減少code reuse (但其實call其他程式庫就好了) 沒有OO一樣可以減少code reuse
設計面: 繼承是多型的基礎 基本上你繼承就是為了多型
注重再為什麼 帶來什麼好壞處
實作什麼的晚點再看
3.
設計模式的部分
GOF翻翻就好
pattern就是先人留下來的解決方案
聖經GOF還是要讀一下
因為大家都看過,這樣在討論上可以節省很多時間解釋設計
實作就不用太仔細看了(他的實作沒有說很好) 重點在設計和為什麼
也有些文章說看太多設計模式會限制你的程式設計(現階段還不用管)
在這個階段你應該會有一些原來OO的原則 帶來這麼多好處的想法
與基礎OO設計的範例
http://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented-ebook/
dp/B000SEIBB8
4.
基本上OO是需要一段時間去適應學習的
注重於 analysis 和 design (OOAD)
這部分才是OO的精華與難處
這對你來說有點早
你可以多跟你們SA,SD聊聊
目前你只要遵守OO的基本principle就可以了
OOAD這種事就交給他們吧
http://www.amazon.com/Object-Oriented-Analysis-Design-Applications-3rd-ebook/d
p/B004X1D1Q2/ref=sr_1_1?s=digital-text&ie=UTF8&qid=1439439664&sr=1-1&keywords=
OOAD
軟體的世界就只是一堆trade-off而已
這樣方便 這樣有利 就這樣做
所以在不同的特性的產品 往往使用不同的開發流程、設計方式、程式語言
千萬不要讓OO變成唯一方案
要知道優弊 自己決定你的設計
※ 引述《dnabossking (少狂)》之銘言:
: 自認邏輯算好,也還算能寫程式
: 在學校真正念過資工相關課程只有C語言和計概
: 雖然非本科生,但QUEUE、STACK、BFS、DFS、
: 最短路徑、HEAP TREE、二元樹、紅黑樹、各種搜尋、排序
: 一些資料結構、演算法都在大四那年開始自學,
: 競賽的題目也會常常寫(都是用C)
: 一開始是因為想考資工所,後來沒考上理想學校,就直接出來工作啦
: 但實不喜歡他們寫的東西(RPGLE一種古老的語言),
: .... (skipped)
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.37.74.237
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1439439976.A.2A8.html
看板 Soft_Job
作者 csfgsj (仙人異路)
標題 Re: [請益] 如何學習物件導向?
時間 Thu Aug 13 13:07:54 2015
※ 引述《jetswayss (小犬)》之銘言:
: 1.
: OO是design的問題 怎麼去設計OO program
: 基本上OO就什麼也不是,程式怎麼寫都可以
: 但為什麼我們需要OO呢?
: 因為沒有人有辦法管理各式各樣的錯綜複雜的code
: "
所以有人想要用SOP,也就是框架來處理管理軟體
雖然它有時候可以省一些事,只是框架必定受限
好的框架設計也就算了,碰到爛的框架可以讓您天天罵髒話
: 我們希望藉由帶入物件的理念進入軟體世界
稱之為「物件」其實只是一種商業宣傳手段
從定性的角度來看,這種定位既錯誤也無價值
: "
: 物件 會有自己的屬性 外加上 我們給予的限制
框架的特徵出現了
: 會使得程式更好管控 擴充 維護...
這部分真的是Bull shit,做過案子就知道
: 屬性指的是 介面 => 掌控 物件行為規範
框架的特徵
: 類別、繼承、多載、
: 多型、介面、委派、抽像
: "
: 這些都算是OO的基礎
這些都是框架實作的手段、語法
: 為什麼要繼承
這是從一個硬框架開始建構程式的手段
: 3.
: 設計模式的部分
這是一堆框架的集合,想法也要依據框架的規範
: 基本上OO是需要一段時間去適應學習的
: 注重於 analysis 和 design (OOAD)
: 這部分才是OO的精華與難處
這是框架適應:思維、作業方式自我閹割的過程
: 軟體的世界就只是一堆trade-off而已
: 這樣方便 這樣有利 就這樣做
: 所以在不同的特性的產品 往往使用不同的開發流程、設計方式、程式語言
: 千萬不要讓OO變成唯一方案
這是真的,除非有好處
要不然為何要自宮去練葵花寶典
: 要知道優弊 自己決定你的設計
神功重要還是雞雞重要,自己要想清楚
--
※ 編輯: csfgsj (210.71.206.217), 08/13/2015 13:15:19
→ leolarrel: 優! "物件導向"只是一個宗教術語,怎麼樣生出好維護高品質的code才是重點,如果有更好的設計方法,何必一定要OO?只要作出高品質的code,用函數編程也可以3F 08/13 13:21
推 hidog: 如果這麼簡單就有好的設計方法,那就不會有OO出現了zzz
我們也不需要看design pattern了 對吧 XD
為什麼會有MVC 會有物件導向 會出現framework 是不是應該回到需求面來思考?
幾個人開發的程式跟幾百人開發的程式,方式絕對不同
生命週期短跟生命週期長的專案,開發方式也會不同
原作者只是要問如何學物件導向,針對這點來回應吧 不要扯遠自己學生時代直接寫個幾十萬行的應用程式 就自然體會
很多事情了. 剩下的就是網路多看別人怎麼設計.
物件導向本來就是個懂概念很簡單,寫得好需要長年練習的東西6F 08/13 13:34
→ leolarrel: 物件導向或許在10幾年前是個很好的解決方案吧....16F 08/13 13:50
→ hidog: 直到現在也還是阿 不然幹嘛一堆公司面試要問你OO的概念17F 08/13 13:52
→ leolarrel: 現在進入平行化/大數據/IoT 的世紀,用OO開發是不是最好的解已經不一定囉18F 08/13 13:56
推 tomtang0406: 其實...面對 scale out 的 grid computing 和平性運算,就會開始有 anti-oo 和 function orient 的議題了,就更NoSQL和 反正規化設計一樣,本來就不是ㄧ藥治百病,但看到有人這樣一面倒地反對,也只是另一個不切實際的極端罷了20F 08/13 13:57
→ leolarrel: 無論如何,函數編程/mapreduce 概念已經興起了
所以重點是,OO已經不是唯一解,打code不要定侷限某一種25F 08/13 13:58
→ hidog: 還是老話一句 看需求決定該怎麼做.27F 08/13 14:00
→ leolarrel: 生出你的同事也看的懂且容易維護的code才是最該思考的不然用了OO,結果變數名取個_001,_002這種的,只會....28F 08/13 14:00
→ hidog: 很熟OO的人會採用這種命名嗎 別開玩笑了好嗎 = =30F 08/13 14:04
→ leolarrel: 請專注重點,舉命名的例子只是印證打code界裡還是有白痴31F 08/13 14:07
→ adks3489: 這種白痴就算不是用OO也不會變天才好嗎32F 08/13 14:13
→ shadow0326: 幫這篇護航那位大概不知道這位大濕覺得複製貼上最好遇到重複性高的代碼怎麼辦? 通通複製貼上就好33F 08/13 14:16
→ lovdkkkk: 推薦可以估狗一下, ORM 在彈性方面的問題35F 08/13 14:19
→ a47135: "只看"推文的話,說的其實有道理.....36F 08/13 14:19
→ leolarrel: shadow0326大大,我知道這位大師何許人也,但我不算護航吧,我的重點是不該侷限某一種開發思維42F 08/13 14:21
→ hidog: 我同意OO有缺點阿 我有些時候寫純C是完全不考慮OO的 看場合但是這樣討論下去 似乎偏離了原作者想問的問題了XD44F 08/13 14:23
→ leolarrel: 我反而覺德原作者最先該想的就是這樣的"問題",而不是被前輩噹一噹就覺得"不能再逃避"了,侷限在某一種開發不去接觸新東西新技術新時代,才算是逃避拉
尤其台灣的"資深前輩",大部分都是10幾年前的絕招現在還在用的"資深主管",一堆連git都沒聽過的老灰仔46F 08/13 14:27
→ hidog: 職場上是你去配合環境而不是環境來配合你 別害人了好嗎XD51F 08/13 14:33
→ leolarrel: 那種看到樓主沒有用OO就噹人的人,就像看到年輕人沒有把changelog打在程式碼的最開頭就說"你寫程式怎麼都不紀錄一下改了啥??",拜託版本控制觀念已經快20年了52F 08/13 14:33
推 LaPass: leolarrel,樓主沒你想的這麼前衛,他支持的沒用OO,拿你例子來講,就是,「changelog寫在程式開頭就好,用什麼git,版本控管系統爛死了。」這樣的感覺。55F 08/13 14:43
→ leolarrel: 恩,請問你說的樓主是dnabossking嗎?
當然如果他的程式用OO比沒用OO好,那自然該改,只要不要58F 08/13 14:47
推 LaPass: csfgsj,你看一下他之前發文就知道了。他應該很資深。60F 08/13 14:49
→ leolarrel: 是肯定用OO是可以產出好品質好維護的code即可61F 08/13 14:49
→ LaPass: 我記得 csfgsj 之前就貼了不少反對OO的文章,你可以看看他的論點。62F 08/13 14:50
→ leolarrel: csfgsj這個神人我也挺...的,另,只要OO適合你的案子,沒有理由不用
不要向那種老灰仔一樣什麼都是OO最好就行了64F 08/13 14:51
推 hidog: dnabossking只是個公司新人 你們要他去跟公司前輩吵要不要OO 要不要怎樣 不覺得是在害人嗎....= =
在討論工具合理性之前 在新公司就先黑掉了 何必這樣67F 08/13 14:53
推 LaPass: leolarrel遇到的老灰仔的類型跟我完全不一樣耶 XD
我遇到的,是完完全全把java當成c在寫,幾乎沒用class,把70F 08/13 14:57
→ leolarrel: 可能我比較衰,遇到的資深前輩80%都是食古不化,唉72F 08/13 14:58
→ LaPass: jsp當成php用。完全沒物件導向,用物件導向寫,還會把程式碼拆出來到jsp中,說「我幫你把程式碼改的好一點」73F 08/13 14:58
→ leolarrel: LaPass說的那種人我也不能認同,該什麼情況就該用適合的思維與方法75F 08/13 15:00
→ LaPass: 結果,我在一段常常剪下貼上的一段程式碼中發現有sql注入他問我該怎麼改,我回答不知道,因為那個段落我估計在整個系統一兩萬頁jsp中,我估計有大概有幾百到幾千頁都有用到然後又不能用搜尋取代,因為每個片段都有點點不一樣。77F 08/13 15:01
→ leolarrel: 因為他沒有OO結果那個sql inject bug散佈各處,對吧?
還好我不寫網頁,不會遇到他,不然....81F 08/13 15:03
→ LaPass: 有OO不代表不會遇到bug,但是許多狀況只要改一個地方,其他用到同一片段程式碼的部份就都能一起修好了。83F 08/13 15:04
→ a47135: 改一個Bug能修一個禮拜為什麼要用一天,Code只有我知道去那些地方改,增加自己的不可替代性
有些人大概就是這種想法吧86F 08/13 16:07
→ Ekmund: 好的OO確實方便管控和維護啊...怎會BS89F 08/13 17:47
→ Wush978: OO和Functional不衝突,可以並存的不是嗎?92F 08/14 07:40
推 recorriendo: 嚴格的 functional programming 有
referential transparency 也就是沒有state 沒有sideeffect 所以這和OO不相容 現在把兩者結合的程式 其實就是犧牲了finctional lang的referential transparency特性 還使老話一句 任何東西都有tradeoff93F 08/14 18:34
看板 Soft_Job
作者 pomelomouse (柚鼠)
標題 Re: [請益] 如何學習物件導向?
時間 Thu Aug 13 14:38:12 2015
我覺得要學習物件導向,第一步先把你覺得是物件的東西拉出來,定義屬性與方法。等到
對物件有感覺時,回來看你之前寫的,你會發現想法不一樣了。
然後再學習繼承跟多行等物件導向的觀念。我覺得要一直重構自己的程式,想辦法reuse
程式碼,寫多了就會對物件導向有概念,也要多看別人程式,可以看出他們的想法。
如果是團隊開發,設計模式很重要,做為大家溝通的語言,很多的framework的設計概念
,都會使用設計模式。
※ 引述《dnabossking (少狂)》之銘言:
: 自認邏輯算好,也還算能寫程式
: 在學校真正念過資工相關課程只有C語言和計概
: 雖然非本科生,但QUEUE、STACK、BFS、DFS、
: 最短路徑、HEAP TREE、二元樹、紅黑樹、各種搜尋、排序
: 一些資料結構、演算法都在大四那年開始自學,
: 競賽的題目也會常常寫(都是用C)
: 一開始是因為想考資工所,後來沒考上理想學校,就直接出來工作啦
: 最近畢業,決定進入軟體業,求職也還算順利
: 本來在金融業IT,待遇福利和發展都還覺得不錯(穩定)
: 但實不喜歡他們寫的東西(RPGLE一種古老的語言),
: 覺得自己不像在寫程式,比較像是在做文書處理,逐決定"趕快"換公司
: 到新公司一個多月了,接觸物件導向也一個多月了
: 公司前輩人也不錯,上班氣氛也良好,是間新創
: 要我寫的程式,大致上也都寫的出來
: 在討論完流程後,我會思考需要用到的功能,寫成一堆副程式的集合
: 然後在主程式一一呼叫 > 測試沒問題 > 結束 >下一個任務。
: 但最近前輩說這樣很死、很不物件化,
: 說我寫的程式一直在"逃避"(其實是不會)物件導向
: =====================================================
: 我自己也知道,這一點也不物件化.........
: 類別、建構涵數、繼承、多載、
: 多型、介面、委派、事件、抽像、TRY CATCH
: 這些全部我都自學過,
: 我甚至能"單獨"的寫範例講解怎麼使用它們
: (因為我也只看過單獨使用的教學)
: 但是到底要怎麼利用這些東西,
: 把這些功能組合起來,完成一個專案
: 我真的不會。
: 完全不懂自己到底欠缺什麼
: 不想再被前輩說"逃避"了,請版上大大們給些指點。
--
Sent from my Android
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.142.3.139
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1439447894.A.61E.html
看板 Soft_Job
作者 leolarrel (真.粽子無雙)
標題 Re: [請益] 如何學習物件導向?
時間 Thu Aug 13 16:01:46 2015
※ 引述《dnabossking (少狂)》之銘言:
: 自認邏輯算好,也還算能寫程式
: 在學校真正念過資工相關課程只有C語言和計概
: 雖然非本科生,但QUEUE、STACK、BFS、DFS、
: 最短路徑、HEAP TREE、二元樹、紅黑樹、各種搜尋、排序
: 一些資料結構、演算法都在大四那年開始自學,
: 競賽的題目也會常常寫(都是用C)
: 一開始是因為想考資工所,後來沒考上理想學校,就直接出來工作啦
: 最近畢業,決定進入軟體業,求職也還算順利
: 本來在金融業IT,待遇福利和發展都還覺得不錯(穩定)
: 但實不喜歡他們寫的東西(RPGLE一種古老的語言),
: 覺得自己不像在寫程式,比較像是在做文書處理,逐決定"趕快"換公司
: 到新公司一個多月了,接觸物件導向也一個多月了
: 公司前輩人也不錯,上班氣氛也良好,是間新創
: 要我寫的程式,大致上也都寫的出來
: 在討論完流程後,我會思考需要用到的功能,寫成一堆副程式的集合
: 然後在主程式一一呼叫 > 測試沒問題 > 結束 >下一個任務。
: 但最近前輩說這樣很死、很不物件化,
: 說我寫的程式一直在"逃避"(其實是不會)物件導向
: =====================================================
: 我自己也知道,這一點也不物件化.........
: 類別、建構涵數、繼承、多載、
: 多型、介面、委派、事件、抽像、TRY CATCH
: 這些全部我都自學過,
: 我甚至能"單獨"的寫範例講解怎麼使用它們
: (因為我也只看過單獨使用的教學)
: 但是到底要怎麼利用這些東西,
: 把這些功能組合起來,完成一個專案
: 我真的不會。
: 完全不懂自己到底欠缺什麼
: 不想再被前輩說"逃避"了,請版上大大們給些指點。
如果要學習OO,把你所知道的 "類別、建構涵數、繼承、多載 ..."等等一堆技術
方法兜出一個專案的話,我是很推去看侯傑的有關OO的書,作為基礎
接著你必須要接觸 UML / design pattern 等知識,尤其我個人是推先學何謂UML,這是
一個讓你開發思維開始導入物件化的一個開始
或許等你對UML有一定的了解,有基礎的物件化思維後,回頭看你寫的程式,可能會發現
其實你寫的東西並不代表沒有物件化,雖然你沒有用到任何所謂類別,繼承,多載什麼的
目前打code界,討論OO,型而上的,就是討論OO的精神,有沒有做到物件化,有沒有做到低
耦合,漂亮的封裝,以及高度可重用性等等,型而下的,就會吵到說要用哪類的程式語言,
然後吵多重繼承比較好還是單一繼承比較好等等偏技術性的東西
不要為了OO而OO,尤其是在型而下的世界,很多主管看你沒有用物件化程式語言或沒有遵照
大師建議的design pattern,或你沒有用MVC開發模式,你就被幹爆,叫你重寫,但我是覺得
,型而上的來說,只要有完美的封裝,做到高度可重複利用,低耦合性,就算你的程式沒有建構
子/解構子,你的程式沒有template style又怎樣?只要你有心,組合語言也能OO(型而上的)
,linux kernel 整份用C來寫,但是整個code的設計模式是非常OO的
更不用說現在這個時代,又不是只有OO概念才能寫出好維護好理解的程式
以上
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.228.151.2
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1439452908.A.83D.html
推 tyc5116: 推"不要為了OO而OO",不過OO還是很值得學
OO我覺得不容易精通,但若學得半調子就對其嗤之以鼻...
只是令人覺得科科而已XD1F 08/13 16:14
推 snaketsai: 基本上同意前輩的說法,但缺語言直接的支援還是有差
我個人是不太喜歡macro magic...對debug來說不友善4F 08/13 18:15
→ cha122977: function pointer包n層還帶ifdef之類也不太好debug…6F 08/13 18:59
看板 Soft_Job
作者 Killercat (殺人貓™ )
標題 Re: [請益] 如何學習物件導向?
時間 Thu Aug 13 21:18:19 2015
其實這就只是一種...該怎麼說,設計有設計語言,程式有程式語言
可以把這方面當成思考的語言。
OOP跟另外一種比較常見的PP(Procedural Programming)都是一種思考的方法
並不是說哪一種比較好,而是說你在工作環境中大家的慣例是什麼
就好像你也許習慣講英文,但是工作環境中大家都講中文
那你只好跟著一起用中文
你學Java,Java天生就是為了OO而做成的語言,就好像唐詩三百首都用中文
硬想要用PP的思考邏輯去寫Java自然就好像用英文去唸唐詩三百首一樣,非常的卡
反之也是同理的。韌體廠等用C語言的的多半都還是用PP思考,
你在那裡OO是自找麻煩加格格不入
船到橋頭自然直,這跟你以後工作環境,你選擇的語言都有關係
除了比較極端的幾種語言以外(Java就是生來OO的,ASM/C就是生來PP的)
大多數語言其實都沒那麼死板,完全看你在什麼環境下
不過目前來講啦,學一下OO的思考其實利大於弊,
畢竟以後你有不小的機會,跟一群使用OO思考的人在一起工作
看你主修什麼跟未來想做什麼啦....
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.169.175.221
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1439471902.A.669.html
推 Kennyq: JAVA-物件導向 / C語言-程序導向 / 組合語言-機器導向2F 08/13 23:16
→ Killercat: 你主修C/ASM自然就別找OO的麻煩啦....3F 08/13 23:49
看板 Soft_Job
作者 csfgsj (仙人異路)
標題 Re: [請益] 如何學習物件導向?
時間 Fri Aug 14 15:04:06 2015
※ 引述《leolarrel (真.粽子無雙)》之銘言:
: 只要你有心,組合語言也能OO(型而上的)
: ,linux kernel 整份用C來寫,但是整個code的設計模式是非常OO的
這是真的嗎?哥哥摸Linux Kernel 十幾年了
第一次聽到這樣的說法,忍不住想要聽聽詳細的內幕
到底是馬長得像驢,還是驢長得像馬
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 210.71.206.217
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1439535849.A.AB4.html
→ leolarrel: 形而上是喔,技術細節就不是了,C又不能繼承/多型
另外,懂linux kernel十幾年就很屌? 林爸也是搞kernel十幾年拉,不要動不動就嗆資歷,雖然我是認同你不要啥都OO1F 08/14 16:09
→ csfgsj: 其實我不太懂Linux Kernel,你比較懂
至於Linux Kernel 與 OO關係,還望大師能夠指點一下6F 08/14 17:07
噓 CaptainH: 碰Linux十幾年連個printf都寫錯9F 08/14 19:32
噓 deray: 他寫code用word 不同凡響10F 08/14 19:47
噓 rabido: 十幾年的hello world compiled failed XDD11F 08/14 19:48
→ Killercat: er..linux的OO 看一下HAL怎麼實作會有點感覺12F 08/14 20:12
噓 Clangpp: 還會寫很多錢的廢文喔13F 08/14 21:11
--
※ 作者: terievv 時間: 2015-08-15 06:20:48