Go語言實戰

馬特·布徹(Matt Butcher) 劉燕燕 譯

買這商品的人也買了...

商品描述

《Go語言實戰》介紹了Go語言的實踐應用技術,主要以實際應用為目的,
使讀者在掌握基本的Go語言知識的基礎上進行更多的實踐訓練。
《Go語言實戰》涵蓋了Go語言基本概念、Go應用程序的管理機制、
創建用戶界面、雲基礎設施、微伺服器及服務到服務的通信模式等內容,
並按照問題、解決方案和討論的順序結合具體的程序示例對70種Go語言的技術逐步進行了介紹。


《Go語言實戰》可以作為程序員解決實際問題的參考。
也可以作為Go語言愛好者學習和應用的參考書。
還可以作為非專業學生Go語言學習的入門參考書,
也可以作為專業學生的實踐參考書。

作者簡介

馬特·布徹是Deis的一名建築師,在那裡,他的日常工作就是做開源項目。
他寫過幾本書和一些文章。布徹擁有哲學博士學位,
在美國芝加哥的羅耀拉大學電腦科學系任教。
馬特熱衷於構建強大的團隊和開發解決複雜的問題的完美方案。

馬特·法裡納是惠普公司的高級技術團隊的首席工程師。
他是一個作家、演說家,還是開源軟體的定期撰稿人,開源軟體做
軟體發展工作已經超過了1/4世紀。

馬特·法裡納喜歡通過創建解決方案為普通民眾解決問題,
他既能夠採用最新的技術來創建解決方案,
又可以通過容易被忽視的一些普通的方法來完成這些工作。

目錄大綱

目錄
譯者序

鳴謝
前言
關於本書
關於作者
關於封面插圖

第1部分1
1 走進GO語言1
1.1 何謂GO語言2
1.2 GO語言的特點4
1.2.1 多個返回值4
1.2.2 現代化的標準庫6
1.2.3 goroutine 與通道的併發性(Go語言規程及通道併發性)9
1.2.4 Go工具鏈—不僅僅是一種語言14
1.3 眾多編程語言背景下的GO語言20
1.3.1 C語言與Go語言20
1.3.2 Java 與 Go21
1.3.3 Python、PHP與Go23
1.3.4 JavaScript、Node.js與 Go25
1.4啟動、運行GO語言26
1.4.1安裝Go語言26
1.4.2Go語言與Git,Mercurial協同運行和版本控制27
1.4.3探索工作區27
1.4.4環境變量的使用28
1.5 GO,你好29
1.6小結31

2堅實的基礎32
2.1 GO語言使用CLI應用程序的方法33
2.1.1 命令行標記33
2.1.2 命令行框架結構40
2.2 配置問題處理47
2.3使用實際的WEB服務器54
2.3.1 啟動和關閉服務器55
2.3.2 路由web 請求60
2.4小結71

3 GO語言的併發性72
3.1理解GO語言的併發模型72
3.2 使用GOROUNTINE73
3.3 通道的應用88
3.4 小結101


第2部分103
4 ERROR錯誤與PANIC異常的處理103
4.1 ERROR錯誤處理104
4.2 PANIC異常系統114
4.2.1 error錯誤與panic異常的區分114
4.2.2 panic異常處理116
4.2.3 從panic異常中恢復過來118
4.2.4panic異常和goroutine函數125
4.3 小結134

5 調試和測試135
5.1定位BUGS135
5.1.1等等,我的調試器(debugger)在哪裡?136
5.2 日誌記錄136
5.2.1使用Go語言的記錄器137
5.2.2使用系統記錄器148
5.3訪問堆棧跟蹤152
5.4 測試155
5.4.1 單元測試155
5.4.2生成測試162
5.5使用性能測試和基準165
5.6小結172


第3部分應用程序的接口174
6 HTML和 的模板樣式174
6.1 HTML模板的使用175
6.1.1標準庫HTML包概述175
6.1.2 在模板中添加函數177
6.1.3 模板解析限制180
6.1.4 模板執行中斷182
6.1.5 混合模板183
6.2 在 中使用模板195
6.3 小結197

7 靜態資源(ASSET)和表單的獲取和接收198
7.1 獲取靜態內容199
7.2 表單POST的處理213
7.2.1 表單請求簡介213
7.2.2 使用文件和分段提交216
7.2.3 使用原始的多個數據223
7.3 小結228

8 使用WEB服務229
8.1 使用RESET API229
8.1.1 使用HTTP客戶端230
8.1.2 發生故障時232
8.2 通過HTTP傳遞和處理錯誤236
8.2.1 生成自定義錯誤237
8.2.2 讀取和使用自定義錯誤238
8.3 傳遞和映射JSON241
8.4版本控制REST API246
8.5小結251


第四部分 將應用程序發布到雲252
9 使用雲252
9.1什麼是雲計算?253
9.1.1 雲計算的類型253
9.1.2 容器和雲本地應用程序255
9.2管理雲服務257
9.2.1避免雲提供商鎖定257
9.2.2處理不一致的錯誤261
9.3在雲服務器上運行263
9.3.1執行運行時檢測263
9.3.2構建雲266
9.3.3執行運行時監視269
9.4 小結271

10 雲服務之間的通信272
10.1微服務和高可用性272
10.2服務之間的通信274
10.2.1 使REST更快274
10.2.2超越REST281
10.3 小結290

11反射和代碼生成291
11.1反射的三個特徵291
11.2 結構體,標籤和注解304
11.2.1 注釋結構304
11.2.2 使用標籤注解305
11.3使用GO代碼生成GO代碼312
11.4小結319