作者andymai (人生只有一次)
看板Soft_Job
標題Re: [請益] 朝什麼方向努力
時間Tue Feb 14 23:33:57 2012
※ 引述《sukrider (sukrider)》之銘言:
: 各位好,我目前是國立科大資工大四
: 已經確定有研究所唸,接下來研究所兩年時間
: 除了畢業以外也想把自己的程式能力練起來
: 目前會用的語言有C,Java,PHP,JavaScript,HTML
: C只有做學校作業的程度而已,個人比較喜歡能看到具體東西的程式
: 所以比較喜歡用高階一點的語言,能看到東西(視窗)或是網頁程式
: PHP,JavaScript,HTML是專題時用來寫網站學的
: 程度大概就...可以Google找別人的範例拼湊出結果
: 然後用Apache+MySQL自己寫了一個類似Discuz論壇的東西
: 發文、編輯、刪除、帳密登入之類的
: Java是我會的語言中最熟的(我想也只是新手程度而已)
: 有自己寫了一些無聊的小工具,像是抓別人網站上的資料
: 然後整理成Excel檔存在我自己電腦裡,時間久了發現Excel越來越多
: 又寫了一個從眾多Excel中搜尋我想找的資料的小工具
: 最長的程式大概1萬行左右
: OO有在用,但是不清楚怎樣才算比較好,很多時候不OO程式寫的比較快...
:
不OO當然寫得比較快~很直覺嘛
可是既然直覺式的寫法寫起來那麼快
那幹嘛一堆人一直在OO~OO個不停咧?
最簡單的理由就是直覺式的寫法通常會和一堆東西"綁"在一起
也就是沒有彈性
如果要加功能或維護的話~要改幾個地方?會不會又和其它程式扯在一塊
搞到最後全部都要跟著"update"?
邏輯呢?會不會有同樣的邏輯判斷拿著到處貼?然後改的時候要一個個改?
等到下次有新的東西要加進來~又再貼一次~又增加一個要維護的地方?
拿現實世界的東西來說~直覺式搞出來的"電腦"(程式)
主機板、ram、cpu、顯示卡...等等~可能通通都混在一起
哪天要改其中某個零件的某個功能~找半天就算了
還牽扯到其它的零件~可能搞到最後~通通都要"升級"
你的顯示卡介面搞出來的是你自己的規格~所以你只能賣自家人
人家的顯示卡都做成PCI-E介面
不管各家廠牌都有機會插上去用
你的彈性很明顯輸人家一大截...
所以要抽象化、所以要OO
剛開始可能很不直覺~但是等到熟悉之後~不OO反而覺得不好用
可以想一下日常生活的人、事、物跟OO有什麼關係...
當然...凡事都要適可而止~要小心不要OO過頭了
更多好處、範例和該注意的地方~請翻閱"深入淺出設計模式"
(其實我很好奇~資工的沒翻過這本書?)
: 還有像是資料結構中教了很多東西,但是我寫過的程式範圍
: 頂多用到ArrayList,HashMap,其餘好像都沒什麼需要用到(ex:Tree類)
: 多數都靠Loop跟if else之類就能解了
: 不知到了業界是否整本資結課程的東西都會常使用到?
這要看什麼工作~和使用程度~沒有標準答案
但是越了解就越可能有幫助...
: 本文主要想問的事情是,我想走高階的話(不朝C,Assembly發展)
: 應該繼續熟練Java嗎? 還是要學一下C#?
: 同學說.NET系列越來越夯,也不知道是不是真的...
: 網站的部分PHP的東西畢竟比較過時了,該學習ASP.NET的東西嗎?
不考慮JSP?
: 看板上好像比較不推網頁工程師,台灣又是硬體公司偏多
不推網頁的原因大概是因為沒有一定程度的話~薪水高不起來
尤其又有一堆人老是覺得寫網頁很簡單...
: 以後就業的話不知道寫高階語言有哪些工作出路呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.171.9.1
※ 編輯: andymai 來自: 118.171.9.1 (02/14 23:38)
推 LaPass:請問.... 要做出怎麼樣的作品才算有一定的程度? = = 02/14 23:41
這個答案應該讓出得起你心目中薪水的老闆來說明~各家看法不一...
※ 編輯: andymai 來自: 118.171.9.1 (02/14 23:45)
→ gname:腦袋裡只放著OO,那O過頭也只是早晚的事而已... 02/15 00:01
推 PRAM:等到OO過頭了就知道OO不是仙丹 02/15 00:44
推 kimkao:每次只要有人討論到OO就會有OO過頭的看法! 02/15 00:49
→ kimkao:但請問大家怎麼判斷是過頭了的呢? 02/15 00:49
推 Ting1024:你講的缺點跟OO根本沒什麼關係... ~_~ 02/15 01:20
沒有關係?可以靠OO改善這些缺點~為什麼沒有關係?
我想您應該沒看過那本書吧?
我舉的例其實都是上面有提到的...
→ TonyQ:基本上所謂 OO 過頭就是接手的人覺得很難寫,然後東西又有拆 02/15 04:20
→ TonyQ:物件他就會抱怨OO過頭了。code 本身並沒有客觀指標定義是否 02/15 04:20
→ TonyQ: OO 過頭。OO 過頭是人的評價,而且同一份code可能每個人會 02/15 04:21
→ TonyQ:有不同評價。 02/15 04:21
→ TonyQ:也有一種狀況是作得時候不覺得是overkill ,做完發現功能用不 02/15 04:21
→ TonyQ:到又變成一個 OO 過頭。總之從失誤跟災難中中記取教訓吧 02/15 04:22
→ TonyQ:沒碰過自己覺得 OO 過頭的狀況的話,很難體會什麼是OO過頭, 02/15 04:22
→ TonyQ:也很難避免各種形式的OO過頭。那都是踩雷留下的痛覺記憶啊。 02/15 04:23
沒錯~只能靠經驗來盡量減少OO過頭的可能性
※ 編輯: andymai 來自: 118.171.9.1 (02/15 06:52)
推 LaPass:請問有OO頭的例子嗎? 02/15 09:33
為了不必要的彈性,而設計出不必要的抽象化,逼得要實做無意義的東西
就是OO過了頭
其實書上就有一堆例子,什麼時候該遵守哪些守則,什麼時候不用遵守
有很多要考慮的因素
聽起來很像是在打高空,但是個人認為只要你設計出來的架構
能夠說得出來為什麼這麼做,那就夠了
那要不要說服別人來取得共識呢?這...就再看看吧
因為討論這個的時候,如果兩人的主觀意識都很重
會非常容易吵架XD
如果不是為了彈性和維護性,寫了以後很少改
其實大可不必要OO,直覺式的從頭寫到尾就算了
※ 編輯: andymai 來自: 122.117.152.17 (02/15 12:54)
推 LaPass:瞭解了 感謝 02/15 13:14