Java程序員技術書籍指南

開篇

“夫夷以近,則遊者衆;險以遠,則至者少”,希望讀者可以在知識的海洋裏不輕言放棄,當您面臨挑戰時,那纔是成長的開始。 —小馬哥mercyBlitz

文章總覽 Java  多線程與併發 框架與中間件與存儲 消息中間件  算法 操作系統
📜 ☕️ 🍁 🔩 📮 💭 💻
網絡 系統設計 計算機系統 工具 編碼規範 Java之外 課外讀物
🌐 ✏️ 🖥 🛠 📝 📚 📒
書籍鑑賞
🦉

讀者須知:以上並不是推薦列表,而是我自己看過和即將要看的書籍擺在這,所以有可能有一些書並不太好,具體評分鑑賞如果我看過的話會附在書籍鏈接的後面(注意參考豆瓣評分和我的評分鑑賞🦉)

點擊以上索引,可以看到更加詳盡的目錄,並且可以定位跳轉某個具體的書籍。

考慮到大家的時間都很寶貴,所以選對一本好書來看就顯得特別重要了,下面,我將爲我讀過的書籍作出一些書籍鑑賞性的評價,讀者可以以此作爲選書參考。

PS:我認爲讀完一整本書纔有資格去評價(至少讀過一遍,纔可以評價一本書,這是對作者的尊重,對讀我的評價的讀者負責,對人對事大概也是如此,瞭解片面就以此斷定全面,未免太過膚淺了)

截止2020年,已經讀過了26本書籍,會陸續進行更新書籍鑑賞評價

在讀書之前,我認爲有兩件事比較重要:

  1. 👉 如何讀一本書 👈
  2. 學會選擇一本適合自己的書(在下面的書籍鑑賞中,有些書籍我會列出適宜人羣)

這些是我看書一年多以來獲得的一些經驗,希望對你有所幫助。



截止2020年1月1日看過的書籍


計劃在2020年會讀的書籍

如何讀一本書

  • 提問解答:看書的時候經常問自己問題(看的過程如果有思考,必然會產生一系列疑問),並解決它(記下暫時解決不了的疑惑點,在本章或全書解決之後大部分問題在這個時候就可以自己獨立解決,但凡解決了問題,證明有思考,有理解,這樣纔是自己的東西
  • 輸出經常動手,實踐的做demo,理論的做筆記,寫出自己的總結或博客文章,總之,輸出很重要
  • 帶着思考看書:幾乎每本書都有分章節,章節下面還有小節,比如13.1.1,即爲第13章第第一節的第一小節,我希望你至少看完每一節都要在心裏review一下,這一小節作者在表達什麼?這可以讓你始終知道自己在讀什麼,因爲有時候一個小節讀着讀着,會迷失在一片知識森林,都不知道自己讀這一節的主題是什麼了。這對你對這一整章的內容理解和掌握十分重要,慢慢的讀完這一章,在你的心裏就會有一個大致的知識地圖,知道作者在講什麼。很多讀者會忽略文章結構,這往往是作者有心編排好的,如果每一節你都會這麼想一次,那麼你就是帶着思考在讀書,而不是毫無章法的古板順序閱讀,所以讀書,想要讀好,得費些精力,你得全神貫注。
  • 多讀:最後也是最有效的辦法,多讀幾遍,所謂書讀百遍其義自現,此處"百"指多次,我的大部分書都讀了至少兩遍(一些對我幫助不大的書我只讀過一遍,但也會做做筆記),這有助於你理解一整本書,讀第二遍和讀第一遍的收穫是完全不一樣的!只要你試過讀兩遍同一本書,你就知道我在說什麼了。
  • 動手:如果是源碼分析類的書籍,切記務必要開啓你的IDE,自己動手走一遍源碼,光看作者帶領你讀源碼你一定會一臉懵逼,源碼分析的大忌就是不自己動手分析,自己DEBUG跑一遍。



☕️ Java

豆瓣評分 書名
《Java編程思想 (第4版)》
《Java編程方法論:響應式RxJava與代碼設計實戰》 書籍鑑賞
《深入理解Java虛擬機(第2版)》 書籍鑑賞
《深入理解Java虛擬機(第3版)》
《Effective java 中文版(第2版)》 書籍鑑賞
《Effective Java中文版(第3版)》
《Java程序性能優化》
《深入分析Java Web技術內幕(修訂版)》
《Java虛擬機規範(Java SE 8版)》
《Java性能優化權威指南》
《Java性能權威指南》
《揭祕Java虛擬機》



🍁 多線程與併發

豆瓣評分 書名
《Java併發編程的藝術》 書籍鑑賞
《Java併發編程實戰》 書籍鑑賞
《Java併發編程之美》



🔩 框架與中間件與存儲

🔧 框架

豆瓣評分 書名
《Spring 源碼深度解析》 書籍鑑賞
《Spring Cloud微服務實戰》 書籍鑑賞
《SpringBoot 編程思想》 書籍鑑賞
《深入理解 Apache Dubbo 與實戰》 書籍鑑賞
《MyBatis技術內幕》

💾 數據庫

豆瓣評分 書名
《高性能MySQL》 書籍鑑賞
《從Paxos 到 Zookeeper》 書籍鑑賞
《Redis設計與實現》 書籍鑑賞
《Redis深度歷險:核心原理與應用實踐》 書籍鑑賞
《Zookeeper 分佈式過程協同技術詳解》 書籍鑑賞
《MongoDB權威指南》



📮 消息中間件

豆瓣評分 書名
《深入理解Kafka:核心設計與實踐原理》 書籍鑑賞
《RabbitMQ 實戰指南》 書籍鑑賞
《Rocket實戰與原理解析》
《分佈式消息中間件實踐》



💭 算法

豆瓣評分 書名
《劍指Offer:名企面試官精講典型編程題(第2版)》
《數據結構與算法分析:Java語言描述》
《編程珠璣(第2版•修訂版)》



💻 操作系統

豆瓣評分 書名
《鳥哥的Linux私房菜 基礎學習篇 第四版》 書籍鑑賞



🌐 網絡

豆瓣評分 書名
《Netty實戰》 書籍鑑賞
《Netty權威指南(第2版)》 書籍鑑賞
《深入理解Nginx》
《計算機網絡(第6版)》
《圖解HTTP》



✏️ 系統設計

豆瓣評分 書名
《可伸縮服務架構:框架與中間件》
《深入分佈式緩存:從原理到實踐》
《大型網站技術架構:核心原理與案例分析》
《大型網站系統與Java中間件實踐》
《億級流量網站架構核心技術》



🖥 計算機系統

豆瓣評分 書名
《深入理解計算機系統》



🛠 工具

豆瓣評分 書名
《Maven 實戰》 書籍鑑賞
《Git 學習指南》 書籍鑑賞
《精通 Git》 書籍鑑賞
《Kubernetes in Action》
《第一本Docker書 修訂版》



📝 編碼規範

豆瓣評分 書名
《重構:改善既有代碼的設計》
《碼出高效:Java開發手冊》



📚 Java之外

豆瓣評分 書名
《C Primer Plus(第6版)中文版》 書籍鑑賞
《C++ Primer Plus : 中文版(第六版)》 書籍鑑賞



📒 課外讀物

豆瓣評分 書名
《上帝擲骰子嗎?》
《無人生還:阿加莎·克里斯蒂偵探作品集10》
《尼羅河上的慘案 : 阿加莎·克里斯蒂作品11》
《五隻小豬 : 阿加莎·克里斯蒂偵探作品集26》
《羅傑疑案:阿加莎·克里斯蒂偵探作品集02》



🦉 書籍鑑賞

一本書讀完讓人有所啓發,那麼這本書就是一本好書。

持續更新中…

《深入理解Java虛擬機》

  • 書籍內容:通俗易懂的介紹了JVM,知識點覆蓋了GC、JVM內存模型、字節碼等等
  • 適宜人羣:所有Java開發(最好一年以上感悟會深些,此書難度並不大,但還是需要一點點基礎)
  • 評價:一本不可多得的好書,給了我很大的啓發,建議從事Java的人員必須閱讀。JVM是我們每天都在打交道的東西,如果你不瞭解JVM,那一定不能說你瞭解Java!此書將JVM寫的淺顯易懂,在閱讀此書的時候我還只有1年的工作經驗,閱讀起來還是輕鬆的。讀完此書,你會對字節碼、JVM內存模型、GC等等的一些Java底層形成一個系統的認識。

此書我看了有2-3遍,實在是津津有味



《Java編程方法論:響應式RxJava與代碼設計實戰》

  • 書籍內容:源碼層面分析RxJava,講述了一些響應式Reactive思想,屬於源碼分析類書籍
  • 適宜人羣:此書難度較大,建議3年以上的程序員並且是想了解響應式Reactive開發的中高級程序員閱讀
  • 評價:如果你看過SpringCloud Hystrix的源碼的話,你應該不會對RxJava陌生,如果你不瞭解RxJava,看Hystrix的源碼應該是會一頭霧水。此書以一些實例的角度切入,去分析RxJava,並且引申出響應式Reactive的思想,在InfoQ的Java技術趨勢報告中,Reactive編程是未來的熱門,並且現在在國外已經是大熱,包括Spring的Reactor庫,WebFlux等等,想緊跟時代的程序員就不容錯過這本響應式編程的書籍



《Effective Java》

第二版

  • 書籍內容:介紹在Java編程中很有實用價值的經驗,對寫好Java代碼有一定的幫助
  • 適宜人羣:必須要有實戰經驗(1年以上)的從事Java開發的人羣
  • 評價:第二版的翻譯太差勁了,很多地方翻譯的實在是晦澀難懂,這也就是爲什麼我只能給此書7.5的分數的原因。但是書還是好書,此書總結了很多在Java編程中會遇到的問題以及如何避免,如果沒有一定的Java實戰經驗的小夥伴可能會覺得有點晦澀,如果你沒有遇到書中的一些問題,你很難知道作者在說什麼,但是如果你是具有一定經驗的開發人員,相信此書應該會對你有一些幫助。

前段時間出了第三版,不知道有沒有改進翻譯的問題,此書我已經購買,過段時間會進行評價,敬請期待



《Java併發編程的藝術》

  • 書籍內容:從JVM底層、硬件(CPU)等等方面去分析Java併發編程,並分析了一些java.util.current(java併發包)類庫
  • 適宜人羣:此書難度略大,需要有一定的JVM、併發機制的基礎,最好是2-3年以上的開發人員進行閱讀
  • 評價:此書並不能作爲併發的入門書籍,因爲如果你不瞭解一些深層次的JVM知識、併發原理之類的,你可能會看的不是很懂,但如果此前看過或學習過一些Java併發方面的知識,那麼此書也可以是你一個不錯的選擇,它從底層JVM字節碼的實現切入,大致介紹了一些併發機制的原理,個人認爲,Java併發編程難度較大,所以懂得併發的原理,是寫好Java併發編程不可缺少的。同時由於Java併發編程的複雜性,一兩本書一定是無法很全面的介紹Java併發,對併發感興趣的讀者不妨多看幾本Java併發的書籍。所以建議讀者如果只是想入門,就選擇其他的書籍,如果想精進Java併發,那麼選它也是沒有什麼毛病的。



《Java併發編程實戰》

  • 書籍內容:介紹了爲什麼需要併發、如何實現併發、併發帶來的收益和風險以及一些併發機制的原理,最後也是最重要的,如何用好Java併發
  • 適宜人羣:難度一般(最好有一年經驗或有一些併發的使用經驗)建議從事Java開發的人員都閱讀一下,對Java併發會有一定程度的認識
  • 評價:編寫此書的作者們是制定Java併發規範與JUC(Java併發類庫)的團隊,其中就有鼎鼎大名的Doug Lea,打開Java併發包的某個類,你常常會看到其作者就是他,此人爲併發大師,Java併發類庫就是他來主導編寫的,可以說此人對Java併發編程的影響力十分巨大。由此可見此書的含金量。寫好Java併發編程是一門藝術,此書我反覆看了2-3遍,每一遍都是回味無窮,裏面的大部分知識點都值得細品幾遍,想用好Java併發,選它就對了。建議從事Java開發的人員都需要閱讀一下,相信會給你一定的啓發。



《Spring 源碼深度解析》

關於研究Spring框架,包含我找視頻,自己動手一步步看源碼和對照此書學習Spring一共是花了2-3個月的時間,Spring是一個巨大的迷宮,你需要不斷在裏面迷路纔可以走出這座迷宮,剛開始看的暈實屬正常,堅持下去,一瞬間的頓悟帶來的快感足以彌補你此前閱讀晦澀源碼的煩悶。

  • 書籍內容:源碼級別分析了Spring的IOC、AOP、事務、MVC模塊,對Spring Bean的生命週期可以有一定程度的認識
  • 適宜人羣:必須有Spring使用經驗,想了解Spring或想將Spring用的更好、會排查Spring的異常問題的Java開發人員,或者是想增加閱讀源碼的能力、對設計模式的理解(優秀的話半年以上經驗即可)
  • 評價:此書是在我從事Java開發半年之後閱讀的,是我的Spring啓蒙書籍,所以我對其的評價會比豆瓣上的高。此書會開闢一個源碼分析的入口,指引你如何走Spring這座迷宮,但是要走的出迷宮,還是需要靠自己,此書作爲閱讀Spring源碼的引導書來說,是十分不錯的。此書我反覆閱讀了2-3遍,並且反覆在IDE上翻閱源碼,對Spring會有一個大致的認識。此前我已經瞭解過十幾種常用設計模式,所以閱讀Spring源碼也讓我對設計模式有一定程度上的理解。閱讀Spring源碼,對於我的源碼閱讀能力的提升是相當大的。



《Spring Cloud微服務實戰》

  • 書籍內容:詳細介紹了微服務(有一點源碼分析)SpringCloud的各大組件(Eureka、Ribbon、Hystrix、Feign、Zuul、Config、Bus、Stream、Sleuth)的原理和使用
  • 適宜人羣:項目中需要使用到SpringCloud各個組件作爲自己的微服務構建的Java開發人員(經驗方面個人覺得門檻不高)
  • 評價:如果你想使用SpringCloud構建一個微服務或正在使用SpringCloud想進一步瞭解其機制,我都建議可以看看這本書,此書評分略低的點在於裏面很多實戰實例都過時了,很多都是錯的,我在對照書中內容實踐過程中踩過不少的坑,SpringBoot和Cloud版本改動代碼較大,所以你會發現,你照着書中的內容自己動手做一遍,發現有些實例一直報錯跑不起來…希望讀者注意一下。同時如果是想了解SpringCloud各組件,那此書還是值得一讀的。



《SpringBoot 編程思想》

  • 書籍內容:從一個比較深的層次介紹SpringBoot,從Spring發展史到SpringBoot的框架思想,不僅僅停留在SpringBoot的使用層面,更是思想的層面
  • 適宜人羣:對於SpringBoot有興趣,想深度學習SpringBoot並且要求必須對Spring源碼有理解,前幾章還需要一些Maven的知識和jar包的知識,難度略大
  • 評價:此書的作者是Apache Dubbo PMC、Spring Cloud Alibaba項目架構師、微服務佈道師,對於Dubbo整合到SpringBoot能力有很大貢獻,可以看出作者對SpringBoot的理解是極其深刻的,此書同時也介紹了很多Spring裏的細節和發展史,作者同樣對於Spring的理解極度深刻,其實SpringBoot更像是Spring的一個上層建築,所以想懂SpringBoot,必須先懂Spring,正因如此,此書有一部分篇幅也正是介紹了Spring的一些機制。如果對於Spring有一定的理解的讀者,並且希望瞭解SpringBoot(自動裝配、SpringApplication、SpringBoot特性規範),此書是你的不二選擇,在市面上應該沒有介紹SpringBoot類的書籍比它深刻的了。



《深入理解 Apache Dubbo 與實戰》

  • 書籍內容:介紹了Dubbo發展簡史,Dubbo如何使用以及Dubbo核心代碼的源碼解析
  • 適宜人羣:需要對Dubbo有使用經驗或者對Dubbo有一定了解,希望深入原理學習Dubbo
  • 評價:此書是Dubbo的源碼分析書籍,我對此書的評價並不是特別高,因爲其中一些源碼分析生澀難懂,並且有時候給我的感覺就像是,剛介紹到一個即將到來的高潮點(乾貨)但是突然就熄火沒下文了,感覺很多時候都沒有說到關鍵點。個人不喜歡這本書,感覺是作者趕稿趕出來的,工作之餘並沒有下很大功夫寫出來的一堆源碼的分析。對Dubbo底層實在感興趣的讀者也不是不可以將此書作爲源碼引導書來看。

前段時間出了一本深度剖析Apache Dubbo,但是我還沒有看過,過段時間看過之後會補充此書的鑑賞,敬請期待



《高性能MySQL》

  • 書籍內容:介紹MySQL的經典書籍,書中知識點覆蓋的十分全面,除了1、4、5、6章,其他都偏運維(DBA)
  • 適宜人羣:MySQL運維人員或有MySQL開發經驗的程序員或想精進MySQL能力的開發人員(1、4、5、6章門檻不高,使用過MySQL數據庫即可)
  • 評價:這是本介紹MySQL的好書,作者有超過20年的軟件經驗,實屬骨灰級程序員,現任數據庫諮詢顧問,專門解決數據庫的問題,所以對於MySQL的各方面問題都遇到過很多,本書算是其經驗總結,內容質量還是不錯的,建議DBA或是Java開發都可以看一看。其中Java開發層面的話建議只需要看1、4、5、6章節即可,其他的章節都比較偏運維偏測試了,比較深入。



《從Paxos 到 Zookeeper》

  • 書籍內容:介紹了經典的分佈式理論CAP、BASE,以及一些分佈式一致性解決方案(2PC、3PC、Paxos、ZAB),然後深入原理介紹了分佈式一致性中間件Zookeeper
  • 適宜人羣:從事分佈式開發或是公司正在使用zookeeper的人員亦或是希望瞭解分佈式一致性的開發人員,閱讀此書需要分佈式一些概念基礎和經驗
  • 評價:前面幾章如果沒有分佈式的一些經驗和基本概念,例如CAP原理之類,難免會很生澀難懂。此書給我的啓發是非常大的,讓我瞭解了很多在分佈式下遇到的問題和一些解決方案,不僅僅只是學習Zookeeper,當然對於學習Zookeeper此書更是一本好書,此書深入原理去講解Zookeeper,讓我這個沒用過Zookeeper的小白都可以理解Zookeeper的原理,理解加記憶,使我加深了一定程度上對Zookeeper的認識。建議對分佈式感興趣的開發人員都可以讀一讀此書(前幾章確實有一些難度,但是堅持多看幾遍,我相信會有收穫的)



《Redis設計與實現》

  • 書籍內容:全面介紹Redis的內部機制,包括單機、集羣的原理
  • 適宜人羣:想了解Redis的開發人員(門檻不高,此書難度不大)
  • 評價:如果想學習Redis,這本書我是很推薦的,本書不怎麼需要展示C的源代碼(Redis是用C語言編寫的)就可以讓讀者懂得Redis的底層原理,並且示例豐富,圖片生動(看起來好像在爲這本書打廣告,但是確實此書對我的幫助很大,看的時候也是津津有味,收穫頗豐),很容易讓讀者讀懂,希望更加了解Redis的讀者不容錯過這本書。



《Redis深度歷險:核心原理與應用實踐》

  • 書籍內容:實戰的角度介紹了Redis能幹什麼事,以及實踐Redis需要注意的點,其中也包括了集羣的介紹以及Redis原理上的分析
  • 適宜人羣:使用Redis的開發人員都可以來看看這本書(門檻不高,難度不大)
  • 評價:本書是一本好書,全綵印刷讓我很喜歡,特別是前幾章節在實戰應用角度去分析Redis具體能做什麼事情,都可以應用到工作中去,並且淺析了Redis的數據結構原理,在最後幾章又具體介紹了Redis的一些底層原理,但是本書僅僅只有248頁,限於篇幅問題,在Redis的原理方面並不會特別詳盡,如果想精進原理的開發人員,也可以配合食用《Redis設計與實現》這本書。總而言之,本書是一本好書,推薦大家都可以購買閱讀,相信會對你在Redis的開發上有所幫助。



《Zookeeper 分佈式過程協同技術詳解》

  • 書籍內容:介紹了爲什麼要用Zookeeper和使用Zookeeper會遇到的一些問題和如何正確使用
  • 適宜人羣:對Zookeeper感興趣且瞭解Zookeeper原理以及懂得一些分佈式的基本概念(有一定門檻)
  • 評價:此書我給的評價這麼低的原因是因爲翻譯,此書的翻譯實在是太差勁了,很多地方翻譯的讓我看的摸不着頭腦,但是書的內容討論的議題還是不錯看的,建議英文水平好的直接閱讀英文原版。此書適合對Zookeeper很有興趣,且有一定基礎的開發人員看(最好英文好看原版,不然看不懂有些浪費時間),一般人還是跳過這本書吧…



《深入理解Kafka:核心設計與實踐原理》

  • 書籍內容:介紹了Kafka如何使用,以及剖析Kafka的原理,介紹了Kafka的方方面面
  • 適宜人羣:工作上需要使用到Kafka,需要了解Kafka原理以及如何正確使用,或是想要進行消息隊列的中間件選型的開發人員(門檻適中,需要有消息隊列概念)
  • 評價:本書的作者亦是《RabbitMQ 實戰指南》一書的作者,他在RabbitMQ與Kafka上有自己的理解,目前正在從事消息中間件相關的研發工作。書中介紹瞭如何正確使用Kafka(消息可靠性的保證)以及一些Kafka的原理特性,講的還是挺不錯的,但是最後幾章個人感覺有點偏運維,還有點偏大數據處理(Spark集成),這部分建議開發人員看看就好。閱讀完此書相信你可以對Kafka有一定的理解和認識,在工作上使用Kafka也會更加得心應手,不會亂用導致意料之外的後果(實際上單純用好Kafka也是一門學問)。



《RabbitMQ 實戰指南》

  • 書籍內容:介紹了RabbitMQ一些基本概念以及Java API如何使用,然後就是一些運維相關的知識,最後是一些存儲機制和集羣、鏡像隊列原理知識
  • 適宜人羣:工作上需要使用到RabbitMQ,需要了解RabbitMQ原理以及如何正確使用,或是想要進行消息隊列的中間件選型的開發人員(門檻適中,需要有消息隊列概念)
  • 評價:本書的前面幾章對我的幫助很大(因爲公司用的正是RabbitMQ),那時我還沒有接觸過任何一個MQ,記得當時任務是讓我做一個RabbitMQ的延遲隊列,此書正好有提到,閱讀了兩天就基本瞭解RabbitMQ的一些基本概念和延遲隊列的原理。不得不說此書前幾章寫的還是挺不錯的,我建議工作上但凡用到RabbitMQ的開發人員都來閱讀一下此書的前面幾個章節,內容包括了一些RabbitMQ概念和機制介紹,RabbitMQ的一些功能點(延遲隊列、優先級隊列、RPC),閱讀完前幾章就可以對RabbitMQ有一定的理解和認識,對於工作有一定的幫助。最後幾個章節比較偏運維,開發人員感興趣可以看看了解就好。



《鳥哥的Linux私房菜 基礎學習篇 第四版》

  • 書籍內容:介紹Linux操作系統的基礎以及方方面面的知識例如:Linux的歷史、權限管理、文件目錄管理、壓縮、vim等等的工具、BASH、Shell腳本、定時任務等等一系列Linux的知識
  • 適宜人羣:Linux小白,希望系統全面地學習Linux的開發人員(門檻較低)
  • 評價:此書面向初學者,對初學者十分的友好,介紹Linux的方面知識還算全面和基礎並且不乏實用性,加上本書的作者是臺灣的一名教師,我看這麼多書的經驗告訴我,老師寫書一般都比較好懂,他更加知道如何讓你理解加記憶,並且本書每章節後面都有一個習題供你練習,習題千萬要完成,一個章節看完之後其實並不能算看過,做完習題才能算稍微理解了一點點,這樣纔是你的東西。作者作爲老師很懂如何去教育、傳播知識,有些重要的概念點不厭其煩會在各個章節中反覆出現,這也有助於加深記憶。並且此書知名度頗高,我認爲不需要我過多的介紹,讀者應該可以理解到這本書的價值。現如今大部分的應用都部署在Linux上,如果你不懂Linux,那可真說不過去,試着讀讀這本書吧,不要覺得太厚就放棄,堅持下來你會感到收穫滿滿。我推薦開發人員都應該讀一讀這本書。前面兩章可以大致瀏覽一下,全書我大概也是花了一個多月的時間來閱讀,內容還是算比較多的。



《Netty實戰》

首先要學習Netty,你就必須先懂的BIO和NIO如何使用,Netty是封裝了Java NIO庫的一個異步事件的高性能框架,其中Dubbo框架的底層網絡通信就是用到了Netty,所以想了解一些框架底層的網絡編程,瞭解Netty是你的不二選擇

  • 書籍內容:介紹了Netty的幾個關鍵部分組件,以及如何使用Netty進行網絡編程開發,最後有幾個Netty的案例研究
  • 適宜人羣:希望通過Netty進行Java網絡編程開發或是單純想了解Netty這個框架的開發人員(門檻是至少要有BIO、NIO使用經驗的開發人員)
  • 評價:本書的作者是Netty的核心開發人員。作者首先分析了Netty各組件以及其原理,讓讀者對Netty有一定的理解,然後會穿插一些Netty使用上要注意的點以及如何使用好Netty,因爲作者本身就是核心開發人員,所以對Netty也是有一定的瞭解程度,最後結合一些案例,分析Netty在實踐中如何使用之類。如果讀者想要了解Netty或是需要使用Netty進行網絡編程,那麼本書不容錯過。



《Netty權威指南(第2版)》

首先要學習Netty,你就必須先懂的BIO和NIO如何使用,Netty是封裝了Java NIO庫的一個異步事件的高性能框架,其中Dubbo框架的底層網絡通信就是用到了Netty,所以想了解一些框架底層的網絡編程,瞭解Netty是你的不二選擇

  • 書籍內容:本書基於最新版本的Netty 5.0 編寫(官方棄用版本,目前廣泛使用的版本是4.0以下),是一本深度源碼解析Netty框架的一本書籍,講述了私有協議開發、架構分析、Netty使用要點、高性能之道
  • 適宜人羣:希望通過Netty進行Java網絡編程開發或是單純想了解Netty這個框架的開發人員(門檻是至少要有BIO、NIO使用經驗的開發人員)
  • 評價:首先解釋一下此書評分較低的原因,第一,此書基於官方已經棄用的版本5.0進行編寫,5.0和4.0還是有一定的差別的,這讓我在源碼分析的時候總是會疑慮我現在看的東西到底現在有沒有在使用到,不知道本書的源碼分析哪塊是我需要的,哪塊是我並不需要看的。第二,本書的源碼分析有一些晦澀難懂,個人而言印象不是特別好。除去源碼分析之外,有一些章節例如私有協議棧開發也有點讓我不是很理解,總之此書對我而言啓發意義並不是很大。如果你只是想了解Netty,那麼本書並不能是你的首選,只能是次選。如果你對Netty有一定程度的理解,並且熟悉網絡編程,還想在這一領域深入學習,那麼本書也不是不可以納入你的閱讀列表。



《Maven 實戰》

  • 書籍內容:介紹Maven基本概念、原理與如何使用,以及Maven私服搭建相關
  • 適宜人羣:使用到Maven構建項目的開發人員(門檻不高,難度較低)
  • 評價:作者是國內社區公認的Maven技術專家,對Maven有着深刻的理解,並且工作就是維護Maven中央倉庫與開發Maven倉庫管理器Nexus的核心開發者。所以本書的含金量也不言而喻了。本書對於你認識Maven是很有幫助的,唯一的不足之處就是本書年代有些久遠(好像是零幾年出版的書籍),但Maven這幾年並沒有什麼變動,所以並不影響其對Maven的介紹,但是技術這東西變化的是相當的快速的,時隔十多年的書籍難免會與現實脫節,書中介紹的一些Maven的很多輔助工具(IDE之類)或是持續集成工具Hudson(Jenkins前身,現在基本都使用Jenkins而不是Hudson)都已經過時,讀者可以快速跳過這部分內容,直接看作者對Maven的介紹即可,拋去除了Maven之外的輔助工具不談,單論Maven,此書還是值得一看的,這也是我給這本書打上8.2的高分的原因。Maven在我們日常工作中每天都在接觸,所以瞭解Maven是很有必要的,我推薦項目使用Maven的開發人員都應該讀一讀這本書,一定會對你有所幫助。



《Git 學習指南》

  • 書籍內容:很淺的介紹了一下Git一些概念以及一些Git工作流的介紹
  • 適宜人羣:想看看Git工作流的開發人員
  • 評價:此書翻譯生硬,晦澀難懂,並且書的質量也並不高,如果實在想看,直接去看Git工作流的那幾個章節就好。不建議閱讀,有這個時間還不如多看兩遍下面要介紹的《精通 Git》。



《精通 Git》

  • 書籍內容:全面介紹了Git的基本概念和底層原理,以及Git工作流介紹等等
  • 適宜人羣:使用Git作爲版本控制的開發人員(門檻較低,使用過Git即可)
  • 評價:本書的作者們都在Git上有一定的造詣,其中一個是GitHub的聯合創始人,經常進行Git技術文化傳播,可見本書含金量。Git在版本控制上的表現是非常好的,現如今大部分的版本控制都是使用的Git,但其有一個缺點,就是命令太複雜太多,所以如果想要用好Git還是需要一定的學習成本的,但一旦學會Git,其帶來的價值絕對是非常高的。本書介紹了Git的很多概念以及原理,淺顯易懂,給我的幫助很大,一旦理解並且懂得Git,在工作上就可以得心應手地去使用它,不然你的每一個命令你自己都不知道將會造成什麼結果,這不是一個好的工程師所具備的素質。總而言之本書很受用,建議使用Git作爲版本控制的開發人員都應該讀一讀此書。



《C Primer Plus(第6版)中文版》

  • 書籍內容:講述了C語言的基本概念和編程技巧
  • 適宜人羣:C語言入門者(不管是C語言開發人員還是JVM、Redis、Nginx源碼閱讀都是可以的)
  • 評價:C語言經久不衰,勢必有其過人之處,由於一路走來,在閱讀JVM源碼和Nginx源碼上我有一些障礙,有些語法看的不是很懂,並且未來也一定有場景需要我會C語言,所以就下定決心學習一下C和C++。本書十分適合C語言的小白閱讀,如果你具有一定編程經驗(例如 Java),那此書的難度就不會很大(本書我只讀了半個月就讀完了,其中很多地方都是Java借鑑了C的思想,所以觸類旁通了)。本書介紹了C語言的一些基本概念,淺顯易懂,對我理解C語言有很大的幫助。其中本書的作者也是一名老師,老師寫的書一般都比較容易理解,並且後面也有一些習題,讀完每一章也可以做做,加深理解。本書也屬於Java程序員的課外讀物,如果你有着跟我一樣的需求場景,那麼此書是相當推薦你作爲學習C語言的書籍。(不過一般的Java程序員好像也不會特意來讀書學習C語言)



《C++ Primer Plus : 中文版(第六版)》

  • 書籍內容:講述了C++語言的基本概念和編程技巧
  • 適宜人羣:C語言入門者(沒有C語言基礎也可以閱讀,此書是建立在C語言基礎上講解的)
  • 評價:本書針對C++初學者,從C語言基礎知識開始講解(其實C++也就是建立在C語言的基礎上,增加了很多特性而已),所以讀者如果是C語言小白的話其實可以直接閱讀此書(直接學習C和C++配套),如果僅僅只是想學習C語言,那麼《C Primer Plus(第6版)中文版》是一個更好的選擇,這本書比《C++ Primer Plus : 中文版(第六版)》講的要好一些(雖然好像都是一個作者)。雖然C++相較於C僅僅只是加入了面向對象的特性,但改變的東西是非常多的,所以本書比上面一本講C語言的內容是多上一個層面的,同時C++其實在語言方面來說,也是比C語言複雜了一個檔次。如果想要閱讀JVM源碼,想要學習C、C++,建議直接讀這本書就好了。



📜 文章總覽

貢獻

  • 如果有想法和創意,請提issue
  • 如果想貢獻,請提PR

License

Apache-2.0

轉載文章請在開頭明顯處標明該頁面地址,公衆號等其它轉載請聯繫 [email protected]

致謝

如果對本篇文章有貢獻,並且如果希望被添加到致謝名單中,並且提交過 Issue 或者 PR,請與我聯繫。

發佈了84 篇原創文章 · 獲贊 90 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章