編寫高質(zhì)量代碼

出版時(shí)間:2011-12-28  出版社:機(jī)械工業(yè)出版社華章公司  作者:秦小波  
Tag標(biāo)簽:無(wú)  

內(nèi)容概要

  在通往“java技術(shù)殿堂”的路上,本書將為你指點(diǎn)迷津!內(nèi)容全部由java編碼的最佳實(shí)踐組成,從語(yǔ)法、程序設(shè)計(jì)和架構(gòu)、工具和框架、編碼風(fēng)格和編程思想等五大方面,對(duì)java程序員遇到的各種棘手的疑難問(wèn)題給出了經(jīng)驗(yàn)性的解決方案,為java程序員如何編寫高質(zhì)量的java代碼提出了151條極為寶貴的建議。對(duì)于每一個(gè)問(wèn)題,不僅以建議的方式從正反兩面給出了被實(shí)踐證明為十分優(yōu)秀的解決方案和非常糟糕的解決方案,而且還分析了問(wèn)題產(chǎn)生的根源,猶如醍醐灌頂,讓人豁然開(kāi)朗。
  本書一共12章,第1~3章針對(duì)java語(yǔ)法本身提出了51條建議,例如覆寫變長(zhǎng)方法時(shí)應(yīng)該注意哪些事項(xiàng)、final修飾的常量不要在運(yùn)行期修改、匿名類的構(gòu)造函數(shù)特殊在什么地方等;第4~9章重點(diǎn)針對(duì)jdk
api的使用提出了80條建議,例如字符串的拼接方法該如何選擇、枚舉使用時(shí)有哪些注意事項(xiàng)、出現(xiàn)nullpointerexception該如何處理、泛型的多重界限該如何使用、多線程編程如何預(yù)防死鎖,等等;第10~12章針對(duì)程序性能、開(kāi)源的工具和框架、編碼風(fēng)格和編程思想等方面提出了20條建議。
  本書針對(duì)每個(gè)問(wèn)題所設(shè)計(jì)的應(yīng)用場(chǎng)景都非常典型,給出的建議也都與實(shí)踐緊密結(jié)合。書中的每一條建議都可能在你的下一行代碼、下一個(gè)應(yīng)用或下一個(gè)項(xiàng)目中嶄露頭角,建議你將此書擱置在手邊,隨時(shí)查閱,一定能使你的學(xué)習(xí)和開(kāi)發(fā)工作事半功倍。

作者簡(jiǎn)介

秦小波,資深軟件開(kāi)發(fā)工程師、系統(tǒng)分析師和架構(gòu)師(獲Sun架構(gòu)師認(rèn)證),從軟件開(kāi)發(fā)工作10余年,實(shí)踐經(jīng)驗(yàn)極其豐富。資深Java技術(shù)專家,Java語(yǔ)言、Spring、Struts 2、Hibernate、iBatis、jBPM等Java技術(shù),在企業(yè)級(jí)Java應(yīng)用領(lǐng)域積累了大量工程經(jīng)驗(yàn),對(duì)ESB、BPEL等整合技術(shù)也有較深入的認(rèn)識(shí)。精通設(shè)計(jì)模式,對(duì)設(shè)計(jì)模式有深刻的認(rèn)識(shí)和獨(dú)到見(jiàn)解,而且創(chuàng)造性地提出了自己在大量實(shí)踐中總結(jié)出來(lái)的新的設(shè)計(jì)模式。他撰寫的《設(shè)計(jì)模式之禪》一書憑借優(yōu)質(zhì)的內(nèi)容和良好的可讀性廣獲讀者好評(píng),被譽(yù)為“設(shè)計(jì)模式領(lǐng)域的里程碑之作。此外,他還是一位優(yōu)秀的DBA,具有IBM DB2 DBA資格認(rèn)證,對(duì)海量數(shù)據(jù)處理有深入的研究。

書籍目錄

前言
第1章 java開(kāi)發(fā)中通用的方法和準(zhǔn)則
 建議1: 不要在常量和變量中出現(xiàn)易混淆的字母
 建議2: 莫讓常量蛻變成變量
 建議3: 三元操作符的類型務(wù)必一致
 建議4: 避免帶有變長(zhǎng)參數(shù)的方法重載
 建議5: 別讓null值和空值威脅到變長(zhǎng)方法
 建議6: 覆寫變長(zhǎng)方法也循規(guī)蹈矩
 建議7: 警惕自增的陷阱
 建議8: 不要讓舊語(yǔ)法困擾你
 建議9: 少用靜態(tài)導(dǎo)入
 建議10: 不要在本類中覆蓋靜態(tài)導(dǎo)入的變量和方法
 建議11: 養(yǎng)成良好習(xí)慣,顯式聲明uid
 建議12: 避免用序列化類在構(gòu)造函數(shù)中為不變量賦值
 建議13: 避免為final變量復(fù)雜賦值
 建議14: 使用序列化類的私有方法巧妙解決部分屬性持久化問(wèn)題
 建議15: break萬(wàn)萬(wàn)不可忘
 建議16: 易變業(yè)務(wù)使用腳本語(yǔ)言編寫
 建議17: 慎用動(dòng)態(tài)編譯
 建議18: 避免instanceof非預(yù)期結(jié)果
 建議19: 斷言絕對(duì)不是雞肋
 建議20: 不要只替換一個(gè)類
第2章 基本類型
 建議21: 用偶判斷,不用奇判斷
 建議22: 用整數(shù)類型處理貨幣
 建議23: 不要讓類型默默轉(zhuǎn)換
 建議24: 邊界,邊界,還是邊界
 建議25: 不要讓四舍五入虧了一方
 建議26: 提防包裝類型的null值
 建議27: 謹(jǐn)慎包裝類型的大小比較
 建議28: 優(yōu)先使用整型池
 建議29: 優(yōu)先選擇基本類型
 建議30: 不要隨便設(shè)置隨機(jī)種子
第3章 類、對(duì)象及方法
 建議31: 在接口中不要存在實(shí)現(xiàn)代碼
 建議32: 靜態(tài)變量一定要先聲明后賦值
 建議33: 不要覆寫靜態(tài)方法
 建議34: 構(gòu)造函數(shù)盡量簡(jiǎn)化
 建議35: 避免在構(gòu)造函數(shù)中初始化其他類
 建議36: 使用構(gòu)造代碼塊精煉程序
 建議37: 構(gòu)造代碼塊會(huì)想你所想
 建議38: 使用靜態(tài)內(nèi)部類提高封裝性
 建議39: 使用匿名類的構(gòu)造函數(shù)
 建議40: 匿名類的構(gòu)造函數(shù)很特殊
 建議41: 讓多重繼承成為現(xiàn)實(shí)
 建議42: 讓工具類不可實(shí)例化
 建議43: 避免對(duì)象的淺拷貝
 建議44: 推薦使用序列化實(shí)現(xiàn)對(duì)象的拷貝
 建議45: 覆寫equals方法時(shí)不要識(shí)別不出自己
 建議46: equals應(yīng)該考慮null值情景
 建議47: 在equals中使用getclass進(jìn)行類型判斷
 建議48: 覆寫equals方法必須覆寫hashcode方法
 建議49: 推薦覆寫tostring方法
 建議50: 使用package-info類為包服務(wù)
 建議51: 不要主動(dòng)進(jìn)行垃圾回收
第4章 字符串
 建議52: 推薦使用string直接量賦值
 建議53: 注意方法中傳遞的參數(shù)要求
 建議54: 正確使用string、stringbuffer、stringbuilder
 建議55: 注意字符串的位置
 建議56: 自由選擇字符串拼接方法
 建議57: 推薦在復(fù)雜字符串操作中使用正則表達(dá)式
 建議58: 強(qiáng)烈 建議使用utf編碼
 建議59: 對(duì)字符串排序持一種寬容的心態(tài)
第5章 數(shù)組和集合
 建議60: 性能考慮,數(shù)組是首選
 建議61: 若有必要,使用變長(zhǎng)數(shù)組
 建議62: 警惕數(shù)組的淺拷貝
 建議63: 在明確的場(chǎng)景下,為集合指定初始容量
 建議64: 多種最值算法,適時(shí)選擇
 建議65: 避開(kāi)基本類型數(shù)組轉(zhuǎn)換列表陷阱
 建議66: aslist方法產(chǎn)生的list對(duì)象不可更改
 建議67: 不同的列表選擇不同的遍歷方法
 建議68: 頻繁插入和刪除時(shí)使用linkedlist
 建議69: 列表相等只需關(guān)心元素?cái)?shù)據(jù)
 建議70:子列表只是原列表的一個(gè)視圖
 建議71: 推薦使用sublist處理局部列表
 建議72: 生成子列表后不要再操作原列表
 建議73: 使用comparator進(jìn)行排序
 建議74: 不推薦使用binarysearch對(duì)列表進(jìn)行檢索
 建議75: 集合中的元素必須做到compareto和equals同步
 建議76: 集合運(yùn)算時(shí)使用更優(yōu)雅的方式
 建議77: 使用shuffle打亂列表
 建議78: 減少hashmap中元素的數(shù)量
 建議79: 集合中的哈希碼不要重復(fù)
 建議80: 多線程使用vector或hashtable
 建議81: 非穩(wěn)定排序推薦使用list
 建議82: 由點(diǎn)及面,一葉知秋—集合大家族
第6章 枚舉和注解
 建議83: 推薦使用枚舉定義常量
 建議84: 使用構(gòu)造函數(shù)協(xié)助描述枚舉項(xiàng)
 建議85: 小心switch帶來(lái)的空值異常
 建議86: 在switch的default代碼塊中增加assertionerror錯(cuò)誤
 建議87: 使用valueof前必須進(jìn)行校驗(yàn)
 建議88: 用枚舉實(shí)現(xiàn)工廠方法模式更簡(jiǎn)潔
 建議89: 枚舉項(xiàng)的數(shù)量限制在64個(gè)以內(nèi)
 建議90: 小心注解繼承
 建議91: 枚舉和注解結(jié)合使用威力更大
 建議92: 注意@override不同版本的區(qū)別
第7章 泛型和反射
 建議93: java的泛型是類型擦除的
 建議94: 不能初始化泛型參數(shù)和數(shù)組
 建議95: 強(qiáng)制聲明泛型的實(shí)際類型
 建議96: 不同的場(chǎng)景使用不同的泛型通配符
 建議97: 警惕泛型是不能協(xié)變和逆變的
 建議98:  建議采用的順序是list[t]、list[?]、list[object]
 建議99: 嚴(yán)格限定泛型類型采用多重界限
 建議100: 數(shù)組的真實(shí)類型必須是泛型類型的子類型
 建議101: 注意class類的特殊性
 建議102: 適時(shí)選擇getdeclared×××和get×××
 建議103: 反射訪問(wèn)屬性或方法時(shí)將accessible設(shè)置為true
 建議104: 使用forname動(dòng)態(tài)加載類文件
 建議105: 動(dòng)態(tài)加載不適合數(shù)組
 建議106: 動(dòng)態(tài)代理可以使代理模式更加靈活
 建議107: 使用反射增加裝飾模式的普適性
 建議108: 反射讓模板方法模式更強(qiáng)大
 建議109: 不需要太多關(guān)注反射效率
第8章 異常
 建議110: 提倡異常封裝
 建議111: 采用異常鏈傳遞異常
 建議112: 受檢異常盡可能轉(zhuǎn)化為非受檢異常
 建議113: 不要在finally塊中處理返回值
 建議114: 不要在構(gòu)造函數(shù)中拋出異常
 建議115: 使用throwable獲得棧信息
 建議116: 異常只為異常服務(wù)
 建議117: 多使用異常,把性能問(wèn)題放一邊
第9章 多線程和并發(fā)
 建議118: 不推薦覆寫start方法
 建議119: 啟動(dòng)線程前stop方法是不可靠的
 建議120: 不使用stop方法停止線程
 建議121: 線程優(yōu)先級(jí)只使用三個(gè)等級(jí)
 建議122: 使用線程異常處理器提升系統(tǒng)可靠性
 建議123: volatile不能保證數(shù)據(jù)同步
 建議124: 異步運(yùn)算考慮使用callable接口
 建議125: 優(yōu)先選擇線程池
 建議126: 適時(shí)選擇不同的線程池來(lái)實(shí)現(xiàn)
 建議127: lock與synchronized是不一樣的
 建議128: 預(yù)防線程死鎖
 建議129: 適當(dāng)設(shè)置阻塞隊(duì)列長(zhǎng)度
 建議130: 使用countdownlatch協(xié)調(diào)子線程
 建議131: cyclicbarrier讓多線程齊步走
第10章 性能和效率
 建議132: 提升java性能的基本方法
 建議133: 若非必要,不要克隆對(duì)象
 建議134: 推薦使用“望聞問(wèn)切”的方式診斷性能
 建議135: 必須定義性能衡量標(biāo)準(zhǔn)
 建議136: 槍打出頭鳥(niǎo)—解決首要系統(tǒng)性能問(wèn)題
 建議137: 調(diào)整jvm參數(shù)以提升性能
 建議138: 性能是個(gè)大“咕咚”
第11章 開(kāi)源世界
 建議139: 大膽采用開(kāi)源工具
 建議140: 推薦使用guava擴(kuò)展工具包
 建議141: apache擴(kuò)展包
 建議142: 推薦使用joda日期時(shí)間擴(kuò)展包
 建議143: 可以選擇多種collections擴(kuò)展
第12章 思想為源
 建議144: 提倡良好的代碼風(fēng)格
 建議145: 不要完全依靠單元測(cè)試來(lái)發(fā)現(xiàn)問(wèn)題
 建議146: 讓注釋正確、清晰、簡(jiǎn)潔
 建議147: 讓接口的職責(zé)保持單一
 建議148: 增強(qiáng)類的可替換性
 建議149: 依賴抽象而不是實(shí)現(xiàn)
 建議150: 拋棄7條不良的編碼習(xí)慣
 建議151: 以技術(shù)員自律而不是工人

圖書封面

圖書標(biāo)簽Tags

無(wú)

評(píng)論、評(píng)分、閱讀與下載


    編寫高質(zhì)量代碼 PDF格式下載


用戶評(píng)論 (總計(jì)89條)

 
 

  •   從語(yǔ)法、程序設(shè)計(jì)和架構(gòu)、工具和框架、編碼風(fēng)格、編程思想5個(gè)方面探討編寫高質(zhì)量Java代碼的技巧、禁忌和最佳實(shí)踐
  •   編寫高質(zhì)量代碼:改善Java程序的151個(gè)建議(從語(yǔ)法、程序設(shè)計(jì)和架構(gòu)、工具和框架、編碼風(fēng)格、編程思想5個(gè)方面 看看
  •   java學(xué)了幾個(gè)月,基礎(chǔ)的知識(shí)懂了,但是總覺(jué)的寫的代碼不是很好,這本書上的一些意見(jiàn)都是java資深人士的領(lǐng)悟,希望能對(duì)自己有些啟發(fā)和幫助
  •   不錯(cuò),有些還是技巧還是比較實(shí)用的。在java的使用中遇到的問(wèn)題講著還是滿清楚的。
  •   很好很強(qiáng)大,java用了三年了,書上的很多語(yǔ)法都沒(méi)見(jiàn)過(guò),確實(shí)是高手寫的,看了提高很大。但不適合剛?cè)腴T的人看。
  •   從編程的各個(gè)方面改善代碼的質(zhì)量、效率,好書??!
  •   還沒(méi)有仔細(xì)的看,簡(jiǎn)單的看了下目錄,建議也是日常編碼中,常見(jiàn)的或者自己寫的時(shí)候比較容易忽視的。。。
  •   書講得非常好,能從java各個(gè)方面進(jìn)行詳細(xì)的闡述,收益匪淺
  •   這本書比較薄,紙質(zhì)也不是特別好,但是內(nèi)容超贊。這么簡(jiǎn)單的書原價(jià)要賣50多,當(dāng)時(shí)我看到價(jià)格非常吃驚,但是買回來(lái)看了,就覺(jué)得物超所值了。市場(chǎng)上java的書一大堆,大多是講java的一些原理分析,那些書當(dāng)做初學(xué)是不錯(cuò),但是基本上其他書寫得都大同小異。而這本書特別適合做java進(jìn)階的人看,內(nèi)容很廣,而且真的非常實(shí)用。思路和闡述都非常清晰,做java的人進(jìn)階看,絕對(duì)啟發(fā)靈感,物超所值。
  •   151個(gè)建議那個(gè)書對(duì)書寫代碼非常有幫助,而spring內(nèi)幕講的太深,可能是我還沒(méi)到火候,不大能看懂。
  •   該怎么說(shuō)呢,剛看了前面幾頁(yè),感覺(jué)收獲挺大的。書中的很多建議都是對(duì)一些編程的規(guī)范,糾正編程的錯(cuò)誤。
  •   用java那么多年了,通過(guò)這本書總結(jié)自己的經(jīng)常忽略的一些毛病
  •   從頭到尾瀏覽一遍,個(gè)中建議真實(shí)用,很多都需要在項(xiàng)目開(kāi)發(fā)中注意,但只看一遍并不能記住所有內(nèi)容,所以手邊常備。
  •   看了2章,
    非常好的一本書! 寫的很好,書中例子不錯(cuò)。
    對(duì)我編碼 幫助很大?。?/li>
  •   還沒(méi)看呢,看目錄不錯(cuò),書中的這些建議應(yīng)該大有益處。
  •   印刷質(zhì)量很好,內(nèi)容很實(shí)用,對(duì)養(yǎng)成好的編程習(xí)慣有幫助。
  •   很好的一本書,不但能提高代碼編寫能力,還能學(xué)到一些新知識(shí)?。。?/li>
  •   這邊數(shù)很不錯(cuò),可以很好提高代碼的編寫水平
  •   這個(gè)商品不錯(cuò),適合有基礎(chǔ)的編程人員
  •   昨晚下的訂單,早上就收到書了。質(zhì)量不錯(cuò),發(fā)貨速度比較給力。
  •   印刷質(zhì)量不錯(cuò),內(nèi)容也通俗易懂。開(kāi)發(fā)人員的必備手冊(cè)。
  •   書的質(zhì)量不錯(cuò) 正在閱讀中
  •   書還沒(méi)看 質(zhì)量很好 支持正版
  •   質(zhì)量很好 大家搶著看。。。內(nèi)容獨(dú)辟蹊徑
  •   此乃好書題目經(jīng)典,質(zhì)量有保障
  •   看了一大半了 書中的部分內(nèi)容已經(jīng)用到了實(shí)際應(yīng)用中 內(nèi)容相當(dāng)好
  •   這本書非常好看,非常滿意
    不過(guò)有些技術(shù)點(diǎn)我還真沒(méi)用過(guò)
  •   正適合自己進(jìn)階用,好多東西都沒(méi)有注意到過(guò)
  •   很實(shí)用,有些點(diǎn)在工作中很受用
  •   拜讀下
  •   書內(nèi)容還不錯(cuò),寫的都是日常工作中用到的,幫我復(fù)習(xí)了一遍,兩天看完。
  •   不錯(cuò)的書,可以作為項(xiàng)目組的開(kāi)發(fā)規(guī)范參考。
  •   此書的總結(jié)真的非常好,值得一看,可以少走許多挖路
  •   很實(shí)用。。很深入。。
  •   還行,寫的很系統(tǒng)。舉例也多。
  •   精煉。句句精華,是多年經(jīng)驗(yàn)之作!
  •   這本書 買了之后還沒(méi)看過(guò),當(dāng)時(shí)買的時(shí)候感覺(jué)還可以
  •   理工科的書偶看不懂啊
  •   老大的書,實(shí)在
  •   很好,學(xué)習(xí)提高了自己平時(shí)忽略的一些細(xì)節(jié)!
  •   正在閱讀中,有了不少收獲
  •   內(nèi)容很不錯(cuò),實(shí)得一買
  •   蕭山區(qū)南陽(yáng)街道赭東村13
  •   編寫高質(zhì)量代碼:改善Java程序的151個(gè)建議(從語(yǔ)法、程序設(shè)計(jì)和架構(gòu)、工具和框架、編碼風(fēng)格、編程思想5個(gè)方面探討編寫高質(zhì)量Jav...
  •   甚是8錯(cuò)8錯(cuò)
  •   上午購(gòu)買,下午就到貨了,速度很快啊?。?!
  •   很好,很強(qiáng)大,講解比較獨(dú)到
  •   很久前在書城看過(guò),一直想買
  •   可以 比較實(shí)用
  •   適合中高級(jí),最好有較好的基礎(chǔ)知識(shí)
  •   強(qiáng)烈推薦的好書啊
  •   沒(méi)看完,變成藏書了。
  •   大名鼎鼎的,早就想拜讀了
  •   公司用書,很實(shí)用.公司用書,很實(shí)用.
  •   該書從各個(gè)方面介紹JAVA編程方面一些要注意的事情,內(nèi)容還不錯(cuò),快看完了。
  •   本書確實(shí)一些實(shí)戰(zhàn)經(jīng)驗(yàn)積累總結(jié),適合java開(kāi)發(fā)人員學(xué)習(xí)和參考。
  •   平常寫程序的時(shí)候遇到種種小問(wèn)題,然后就百度谷歌搜索,但是總是找不到合適的結(jié)果。剛拿到書,感覺(jué)很多都是平常寫程序的時(shí)候沒(méi)有注意到的地方,或者是盲點(diǎn)。還沒(méi)來(lái)得及細(xì)看,不過(guò)看著目錄還挺不錯(cuò)的,相信多看幾遍能有挺大幫助。要是多一些平??赡苡龅降膯?wèn)題的解決方法或者提示就更好啦~
  •   本書從很細(xì)微的角度介紹一些改善代碼壞味增強(qiáng)代碼健壯性的方法。
  •   建議很多,都是之前沒(méi)有用過(guò)的
  •   不錯(cuò),常見(jiàn)問(wèn)題可以參考。
  •   寫的挺好的,有些地方甚至是我了解不深的。
  •   都是一些平時(shí)工作容易忽略的地方
  •   但應(yīng)該是本好書
  •   點(diǎn)很細(xì),不過(guò)很實(shí)用
  •   內(nèi)容很好、實(shí)用,但就是書貴了一點(diǎn)
  •   不管是新手還是多年的碼農(nóng),很有意義
  •   剛收到貨,簡(jiǎn)單看了一下,感覺(jué)還不錯(cuò)
  •   大概的看了一下,挺實(shí)用的。
  •   方方面面都都講到了,增長(zhǎng)見(jiàn)識(shí)
  •   剛買來(lái)大體看了一下很不錯(cuò)對(duì)大家養(yǎng)成良好的變成習(xí)慣有很大幫助
  •   適合較高層次的讀者,有些看不懂。
  •   朋友認(rèn)為很好
  •   就是好薄啊~~~~
  •   可以糾正很多細(xì)小的不足
  •   作者雖然用心,但是寫的內(nèi)容亮點(diǎn)寥寥無(wú)幾。只能適用于java剛剛?cè)腴T級(jí)別的吧,看了一二章覺(jué)得浪廢時(shí)間。
  •   太一般了,買的后悔了,沒(méi)有一點(diǎn)可看頭,不建議大家買
  •   書皮完好。紙張質(zhì)量還行,無(wú)缺頁(yè)!還沒(méi)有看,是別人推薦買的!不知道日后能不能再追加評(píng)論
  •   整本書都已看完,整體感覺(jué)是泛泛而談。一點(diǎn)不深入,有2,3年經(jīng)驗(yàn)的沒(méi)必要看這種。
  •   拿到此書,油墨有很重的刺鼻味,看幾頁(yè)就不想看了。
  •   內(nèi)容還行,書的紙質(zhì)一般,有幾頁(yè)發(fā)現(xiàn)有洞,幸虧不影響觀看。。
  •   發(fā)貨及時(shí),書的紙張不太滿意
  •   可以碎片時(shí)間看~·
  •   不如effective系列,但有些還是挺好的
  •   實(shí)例講解不夠豐富 對(duì)于初學(xué)者理解起來(lái)比較困難 讀起來(lái)比較費(fèi)勁.
  •   這本書不是我看的,給個(gè)中評(píng)
  •   領(lǐng)悟java
  •   同事推薦的,是正版,送貨快
  •   太多太亂 記不住
  •   可惜還沒(méi)看,不知道什么時(shí)候能看完
 

250萬(wàn)本中文圖書簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書網(wǎng) 手機(jī)版

京ICP備13047387號(hào)-7