系統學習互聯網巨頭都在使用的Go語言

由於安全性高、語法簡單、編譯快速

等諸多特點,Go語言人氣日漸高漲,越來越多的大公司開始使用Go語言,包括Google、Facebook、騰訊、百度、阿里巴巴、今日頭條等等。

系統學習互聯網巨頭都在使用的Go語言

人郵君給大家推薦系統學習Go語言書單。從「入門」、「進階」和「應用」三個方面介紹一些書籍,希望能對題主的學習有所幫助!


系統學習互聯網巨頭都在使用的Go語言


入門

萬事開頭難,所以入門的書籍最好是深入淺出,通俗易懂又饒有趣味。

這本《Go語言趣學指南》就是為初學者量身打造,幫助初學者順利入門Go語言的!

《Go語言趣學指南》

系統學習互聯網巨頭都在使用的Go語言

作者:[加]Nathan Youngman,[英] Roger Peppé 譯者:黃健宏

  • Go語言入門書
  • 學習過程充滿樂趣,並能積累豐富的實戰經驗

內容簡介:

本書循序漸進地介紹了使用Go語言必需的基礎知識,書中的內容首先從變量、循環、分支、類型等基礎知識開始,逐漸進階至函數、方法、收集器和結構,最後再深入到指針、錯誤處理和併發等高級特性,並且每個單元都包含相應的章節和單元測試。

  • 適合初學者,學習曲線平緩,循序漸進

為了讓起步的過程變得更容易一些,書中的所有代碼清單和練習都可以在 Go Playground 裡面執行,你在閱讀這本書的時候甚至不需要安裝任何東西。

全書不到300頁,初學者讀起來真的是毫!無!負!擔!

  • 趣味性強,不知不覺中打下Go語言基礎

作者在書中列舉了大量跟天文以及航天有關的例子,讀者不僅可以計算從地球乘坐宇宙飛船航行至火星所需的天數,還可以在火星上放置探測器以便查找生命存在的痕跡,甚至還要想辦法改造火星,使它能夠適宜人類居住。

書中很多地方都帶有可愛的Go語言吉祥物地鼠(gopher)插圖,為讀者的學習旅途增添樂趣。

無論你是打算使用Go編寫大型的併發Web服務,還是隻想用Go編寫小型腳本和簡單的工具,《Go語言趣學指南》這本書都會幫助你打下堅實的基礎!

原文摘錄:

當我們在街上散步的時候,常常會看到一些用於指引方位的地址和街道標識。你可能曾經遇到過這樣一種情況,一家大門緊閉的商店在它的櫥窗上貼出了道歉標語“抱歉,本店已喬遷新址!”,並在標語的下方給出新的地址。指針就有點兒像這個給出新地址的標語,它會把你指引至不同的地址。


——引自 第26章 關於指針的二三事

《Go語言入門經典》

系統學習互聯網巨頭都在使用的Go語言

作者:[英]George Ornbo 譯者:張海燕

  • 易上手的Go語言入門教程
  • 全球銷量逾百萬冊的系列圖書

內容簡介:

本書分為24章,講解了使用Go語言編寫高質量程序的方法,其內容涵蓋了Go語言特性和標準庫安裝包,Go與JavaScript的對比,Go命令行工具,Go中的基本概念(比如類型、變量、函數、控制結構、指針、接口等),錯誤處理,Goroutine和通道,Go代碼測試,使用Go編寫HTTP客戶端與服務器,處理JSON和文件,部署Go代碼等。

本書適合想要掌握Go語言的零基礎讀者以及對Go語言感興趣的程序員學習,還可作為高等院校教授Go語言課程的教材。

原文摘錄:

強類型語言的數據完整性更高,且編譯器通常能夠在代碼執行前發現Bug。與使用動態類型語言相比,使用強類型語言時,開發速度慢一些,條條框框也多一些。鑑於強類型語言過於嚴格且編譯速度緩慢,Go語言應運而生,旨在兼具動態類型語言的速度與靈活性和靜態類型語言的性能與完整性。
——引自第2章 理解類型

《Go語言編程》

系統學習互聯網巨頭都在使用的Go語言

作者:許式偉 呂桂華 等

  • 幫助讀者迅速消除對Go語言的陌生感,深入瞭解Go語言的絕佳作品
  • Go語言專家許式偉傾情推出

內容簡介:

本書首先概覽了Go語言的誕生和發展歷程,從面向過程編程特性入手介紹Go語言的基礎用法,讓有一定C語言基礎的讀者可以非常迅速地入門並開始上手用Go語言來解決實際問題,之後介紹了Go語言簡潔卻又無比強大的面向對象編程特性和併發編程能力,至此讀者已經可以理解為什麼Go語言是為互聯網時代而生的語言。

從實用性角度出發,本書還介紹了Go語言標準庫和配套工具的用法,包括安全編程、網絡編程、工程管理工具等。

對於希望對Go語言有更深入瞭解的讀者,本書也特別組織了一系列進階話題,包括語言交互性、鏈接符號、goroutine機理和接口機制等。

這本書面向的讀者是所有打算用Go語言的開發者,主要包括目前使用C、C++、Java、C#的開發人員,甚至一些Python、PHP開發人員也可能轉為 Go 程序員。

精選書評:

Go語言具有簡潔有力的語言表達能力、強大的系統開發能力、極高的運行效率、卓越的併發和並行能力、優秀的工程管理支持,以及美好的編程體驗。我們曾經在其他語言中花費大量氣力才能獲得的一些能力,在Go中可以輕鬆得到。
許式偉在Go語言出現後很快就把它用於大型項目,帶領七牛團隊積累了大量Go編程經驗。這本書除了完整介紹Go語言特性以外,還深入剖析了語言實現機制。作為服務器軟件開發者和編程語言愛好者,我強烈推薦此書。
——李傑,盛大文學首席架構師

進階

《Go語言高級編程》

系統學習互聯網巨頭都在使用的Go語言

作者:柴樹杉 曹春暉

  • 作者是國內第一批Go語言愛好者和Go語言代碼的貢獻者
  • 提煉大型分佈式系統開發的實戰經驗
  • 聚焦CGO、彙編、Web框架等前沿主題,深入探究Go語法設計的底層實現原理

內容簡介:

本書從實踐出發講解Go語言的進階知識。本書共6章:

第1章簡單回顧Go語言的發展歷史;

第2章和第3章系統地介紹CGO編程和Go彙編語言的用法;

第4章對RPC和Protobuf技術進行深入介紹,並講述如何打造一個自己的RPC系統;

第5章介紹工業級環境的Web系統的設計和相關技術;

第6章介紹Go語言在分佈式領域的一些編程技術。

書中還涉及CGO和彙編方面的知識,其中CGO能夠幫助讀者繼承的軟件遺產,而在深入學習Go運行時,彙編對於理解各種語法設計的底層實現是必不可少的知識。此外,本書還包含一些緊跟潮流的內容,介紹開源界流行的gRPC及其相關應用,講述Go Web框架中的基本實現原理和大型Web項目中的技術要點,引導讀者對Go語言進行更深入的應用。

本書適合對Go語言的應用已經有一些心得,並希望能夠深入理解底層實現原理或者是希望能夠在Web開發方面結合Go語言來實現進階學習的技術人員學習和參考。

原文摘錄:

如果某個 init() 函數內部用 go 關鍵詞啟動了新的 Goroutin, 那麼新的 Goroutine 和 main.main() 函數是併發執行的。
——引自1.5 面向併發的內存模型

《Go語言實戰》

系統學習互聯網巨頭都在使用的Go語言

作者:[美]William Kennedy,Brian Ketelsen,Erik St. Martin 譯者:李兆海

作者:[美]William Kennedy,Brian Ketelsen,Erik St. Martin 譯者:李兆海

  • Go語言領域極具聲望的技術專家力作
  • 關注語言的規範和實現,為讀者提供一個專注、全面且符合語言習慣的視角

內容簡介:

Go語言結合了底層系統語言的能力以及現代語言的高級特性,旨在降低構建簡單、可靠、高效軟件的門檻。

本書向讀者提供一個專注、全面且符合語言習慣的視角,同時關注語言的規範和實現,涉及的內容包括語法、類型系統、併發、管道、測試,以及其他一些主題。

本書適合有一定其他編程語言經驗,想要開始學習Go 語言或者更深入瞭解Go 語言及其內部機制的中級開發者。

原文摘錄:

Go語言有3種數據結構可以讓用戶管理集合數據:數組、切片和映射。這3種數據結構是語言核心的一部分,在標準庫裡被廣泛使用。一旦學會使用這些數據結構,用Go語言編寫程序會變得快速、有趣且十分靈活。
——引自第四章 數組、切片和映射

《Go併發編程實戰(第2版)》

系統學習互聯網巨頭都在使用的Go語言

作者:郝林

  • 國內知名Go語言技術佈道者的再造之作
  • 深入Go語言及其併發原理,挖出併發編程zui佳實踐,百樣示例助你成為多核計算時代的Go程序高手

內容簡介:

本書首先介紹了Go語言的優勢特性、安裝設置方法、工程結構、標準命令和工具、語法基礎、數據類型以及流程控制方法,接著闡述了與多進程編程和多線程編程有關的知識,然後重點介紹了goroutine、channel以及Go提供的傳統同步方法,之後通過一個完整實例——網絡爬蟲框架進一步闡述Go語言的哲學和理念,同時分享作者在多年編程生涯中的一些見解和感悟。

本書適用於有一定計算機編程基礎的從業者以及對Go語言編程感興趣的愛好者,非常適合作為Go語言編程進階教程。

精選書評:

Go語言的掌握過程是一個漸進過程,需要一本實戰型的百科全書來應對。我一直和團隊推薦這本《Go併發編程實戰》,反饋好評度高。現在第2版推出,繼續強力推薦!
——肖德時,數人云聯合創始人 & CTO

應用

  • Go語言編寫Web應用

由於Go語言擁有優異的併發編程支持、函數式編程、簡潔且極具可讀性的語法以及靈活且清晰的包管理系統等特點,使用Go語言進行Web開發已經日益流行。

《Go Web編程》

系統學習互聯網巨頭都在使用的Go語言

作者:[新加坡]鄭兆雄(Sau Sheong Chang) 譯者:黃健宏

  • Go語言Web開發實戰教程
  • 囊括了關於Go Web應用開發和部署的全部知識

內容簡介:

本書將教讀者運用現代化設計理念構建Go Web應用的方法。

閱讀本書能讓讀者學會如何通過依賴注入設計模式來編寫測試替身,如何在Web應用中使用併發特性,還有如何在Web服務中創建以及處理JSON數據和XML數據。除此之外,讀者還將學會如何儘可能地減少應用對外部框架的依賴,並瞭解大量與應用測試以及應用部署有關的有價值的生產技術。

精選書評:

本書堪稱Go Web 開發的權威入門教程。
——Gualtiero Testa,Factor-y S.r.l. 公司

  • Go語言開發Docker

Docker是一個開源的應用容器引擎,開發者可以利用Docker打包自己的應用以及依賴包到一個可移植的容器中,然後發佈到任何流行的Linux機器上,也可以實現虛擬化。

Go語言部署簡單,對第三方的依賴少,這使Go語言成為開發Docker的首選語言。

《深入淺出Docker》

系統學習互聯網巨頭都在使用的Go語言

作者:[英]Nigel Poulton 譯者:李瑞豐 劉康

  • Docker技術入門與實踐指南教程
  • 容器與容器雲解析
  • 幫助您快速建立Docker技術知識體系

內容簡介:

這是一本關於Docker的圖書。本書的宗旨是從零開始學習Docker,因此讀者無須任何前置知識儲備。

全書分為17章,從 Docker 概覽和 Docker 技術兩部分進行全面解析,深入淺出地介紹了 Docker 的相關知識,清晰詳細的操作步驟結合大量的實際代碼幫助讀者學以致用,將Docker知識應用到真實的項目開發當中。

本書適合對Docker感興趣的入門新手、Docker技術開發人員以及運維人員閱讀,也可作為Docker認證工程師考試的參考圖書。

原文摘錄:

如果讀者之前曾經是VM管理員,則可以把Docker鏡像理解為VM模板,VM模板就像停止運行的VM,而Docker鏡像就像停止運行的容器;如果讀者是一名研發人員,可以將鏡像理解為類(Class)。


——引自 6.1 Docker鏡像

《第一本Docker書(修訂版)》

系統學習互聯網巨頭都在使用的Go語言

作者:[澳]James Turnbull 譯者:李兆海 劉斌 巨震

  • Docker技術入門與實戰
  • 基於Docker 1.9及以上版本
  • Docker公司前副總裁力作

內容簡介:

這是一本帶領讀者進入Docker世界的入門書。本書專注於Docker 1.9及以上版本,指導讀者完成Docker的安裝、部署、管理和擴展,帶領讀者經歷從測試到生產的整個開發生命週期,讓讀者瞭解Docker適用於什麼場景。書中先介紹Docker及其組件的基礎知識,然後介紹用Docker構建容器和服務來完成各種任務:利用Docker為新項目建立測試環境,演示如何使用持續集成的工作流集成Docker,如何構建應用程序服務和平臺,如何使用Docker的API,如何擴展Docker。

精選書評:

本書系統而又深入淺出地介紹了與Docker部署和應用相關的各個方面,體現了Docker的最新進展,並附有大量詳盡的實例。無論系統架構師、IT決策者,還是雲端開發人員、系統管理員和運維人員,都能在本書中找到所需的關於Docker的內容。本書非常適合作為進入Docker領域的第一本書。
——商之狄,微軟開放技術(中國)首席項目經理

《Docker實踐》

系統學習互聯網巨頭都在使用的Go語言

作者:[美] Ian Miell, Aidan Hobson Sayers 譯者:吳佳興 梁曉勇 黃博文 楊銳

  • Docker容器實戰教程
  • 涵蓋開發環境、DevOps流水線、生產環境落地以及相關實用技巧書籍

內容簡介:

本書由淺入深地講解了Docker的相關內容,涵蓋從開發環境到DevOps流水線,再一路到生產環境的整個落地過程以及相關的實用技巧。書中介紹Docker的核心概念和架構,以及將Docker和開發環境有機、高效地結合起來的方法,包括用作輕量級的虛擬機以及構建和宿主機編排、配置管理、精簡鏡像等。不僅如此,本書還通過“問題/解決方案/討論”的形式,將“Docker如何融入DevOps流水線”“如何在生產環境落地”等一系列難題拆解成101個相關的實用技巧,為讀者提供解決方案以及一些細節和技巧方面的實踐經驗。閱讀本書,讀者將學到的不只是Docker,還包括持續集成、持續交付、構建和鏡像管理、容器編排等相關領域的一線生產經驗。本書編寫時一些案例參考的Docker版本是Docker 1.9。

《Docker實踐》要求讀者具備一定的容器管理和運維的基礎知識,適合想要將Docker投入實踐的相關技術人員閱讀,尤其適合具有中 高 級DevOps和運維背景的讀者閱讀。

原文摘錄:

Docker是一個允許用戶“在任何地方構建、分行及運行任何應用”的平臺。它在極短的時間內發展壯大,目前已經被視為解決軟件中最昂貴的方面之一——部署的一個標準方法。
——引自第1章 Docker初探


分享到:


相關文章: