Re: [問題] 適合初學者的「第二本書」

看板java作者 (KOSS KSC35)時間15年前 (2009/04/26 19:19), 編輯推噓9(904)
留言13則, 6人參與, 最新討論串4/4 (看更多)
更進階一點的話 可以參考以下幾本書 1. Effective Java (2nd Edition) http://tinyurl.com/effective-java 這本書羅列了許多信條(code),說明了很多Java程式設計應該具有的專業素養與準則 看懂這本書,才真正開始進入professional Java programmer的大門 例如避免instantiate duplicate 的object 盡量使用interface,少用reflection 盡量使用封裝,少用繼承 為所有exposed API撰寫JavaDoc (這個習慣非常非常重要) ..等等 2. Java Performance Tuning (2nd Edition) http://tinyurl.com/java-performance-tuning 會寫程式 寫出來的程式可以跑 寫出來的程式跑起來有效率 寫出來的程式跑起來有效率而且可重用性高 如果想要達到以上第四個階段,你可能需要這本書 若看懂這本書,大概可以成為更進階的Java programmer 裡頭有提到怎麼與JVM互動,當然寫Java在大部分的情況下不需要在乎太多底層的細節 但是要寫出效能好的code,可能需要跟JVM打好關係, 因為畢竟是JVM在跑你寫出來的code 例如 如何避免OutOfMemoryError SoftReference, WeakReference, PhantomReference的差別與使用範例 如何用工具偵測deadlock ..等等 3. Refactoring: Improving the Design of Existing Code http://tinyurl.com/refactoring-the-book 很遺憾的,在實務的世界裡 很少有自己從頭寫code的project 多半都要去refactoring別人的code 這本書提到怎麼進行Java refactoring 4. JUnit Recipes: Practical Methods for Programmer Testing http://tinyurl.com/junit-recipes-the-book 很多新手可能無法想像,一個project或sub project時程 分析需求 設計 實作 測試 上線或交貨 後續維護改良  測試的時程可以佔掉整個project約一半的時間 專業品質的專案 或 半調子的專案 就差在這裡 --------------------------------------------------------- 更進一步必須能夠透過許多的現有的framework或工具 更快更精確的完成所交辦的任務 絕對不能夠停在原點,必須隨時隨地學習 就算以上相關的知識能夠融會貫通 但也只是專業的"Java Programmer"而已 如果想要升上去當主管,就要懂得專案管理的訣竅, 專案管理比寫程式難的多,包含政治學與心理學都可能是其範疇 真的 看過一些超強的高手,管專案管的一踏糊塗 "人月神話" "與熊共舞" 等都是入門經典 供各位參考 我只是一個小小的Java Programmer ... ※ 引述《zeat (Lucifer)》之銘言: : 我也同意多寫多實作這個意見, : 舉例來講, : 雖然我看過書知道網路運作的原理, : 封包的格式, 傳遞的方式, 3-way handshake... etc. : 但也是實際的撰寫了相關的程式, : (現在在撰寫一個簡易peer to peer的Messager) : 才真正實作了相關的知識, : 才真正碰到很多問題, : 除了網路相關的, : 還有java相關的, : 像是控制JLeabl裡Icon的大小, : 或是Layout的應用... etc. : 所以除了看書, 練習書上的範例, : 我想最好還是多嘗試其他的寫法與實作, : 因為看著書練習可能會了卻也忽略了小細節, : 等到實作時, : 才又遇到. : 因此, 多看書是一種方式, : 但是我想能夠多實作是最好的. :) : ※ 引述《adrianshum (Alien)》之銘言: : : 強烈建議是真的找些東西來寫. : : 單是看完書, 其實得著有限. 很多東西 : : 非經實際應用是不會理解的. Head First Java : : 應該已經算是解釋得最容易理解的書了. : : 不怕太冗長的話, Core Java 系列應該算是 : : 詳細又清楚的. 再加上 Think In Java 來作為 : : 概念的鞏固, 應該夠你看上一陣子了. : : 不過, 我還是覺得, 親手寫一些東西吧, : : 不然只是紙上談兵的學習, 你以為看懂了但實 : : 際做起來, 你會發覺你明白的只是文字上的 : : 意義. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.104.84.187

04/26 19:59, , 1F
可以偷偷問一下, 為什麼要少用reflection? 我覺得這是好物說
04/26 19:59, 1F

04/26 20:24, , 2F
代價比較大吧...
04/26 20:24, 2F

04/26 22:00, , 3F
Reflection 慢, 但是夠動態, 現在越來越多 framework/library
04/26 22:00, 3F

04/26 22:02, , 4F
都有使用 reflection 簡化開發者的開發流程
04/26 22:02, 4F

04/27 00:54, , 5F
google api中也有使用reflection說QQ"
04/27 00:54, 5F

04/27 06:53, , 6F
絕對不只一半!!!!!!
04/27 06:53, 6F

04/27 06:54, , 7F
reflection 最大缺點是無法在編譯期檢測,造成系統有不穩定
04/27 06:54, 7F

04/27 06:55, , 8F
的風險 , 不是說他不好, 而是要用的時候要十拿九穩的用.
04/27 06:55, 8F

04/27 10:23, , 9F
可是用reflection不就是要用在動態(runtime)嗎?
04/27 10:23, 9F

04/27 10:42, , 10F
對啊 , 上面講的就是動態可能造成的問題. 基本上是用得好不
04/27 10:42, 10F

04/27 10:43, , 11F
好的問題 , 只要處理得宜那就沒什麼問題.
04/27 10:43, 11F

04/27 10:46, , 12F
有一些場合是reflection 顯然比較好用, 不過一般狀況很少.
04/27 10:46, 12F

04/27 19:09, , 13F
借轉~
04/27 19:09, 13F
文章代碼(AID): #19z4DL1t (java)
文章代碼(AID): #19z4DL1t (java)