TOP
0
0
【23號簡體館日】限時三天領券享優惠!!
完全自學!Go 語言 (Golang) 實戰聖經
滿額折
完全自學!Go 語言 (Golang) 實戰聖經
完全自學!Go 語言 (Golang) 實戰聖經
完全自學!Go 語言 (Golang) 實戰聖經
完全自學!Go 語言 (Golang) 實戰聖經
完全自學!Go 語言 (Golang) 實戰聖經
完全自學!Go 語言 (Golang) 實戰聖經
完全自學!Go 語言 (Golang) 實戰聖經
完全自學!Go 語言 (Golang) 實戰聖經
完全自學!Go 語言 (Golang) 實戰聖經
完全自學!Go 語言 (Golang) 實戰聖經
完全自學!Go 語言 (Golang) 實戰聖經
完全自學!Go 語言 (Golang) 實戰聖經
完全自學!Go 語言 (Golang) 實戰聖經
完全自學!Go 語言 (Golang) 實戰聖經
完全自學!Go 語言 (Golang) 實戰聖經
完全自學!Go 語言 (Golang) 實戰聖經
完全自學!Go 語言 (Golang) 實戰聖經
完全自學!Go 語言 (Golang) 實戰聖經
完全自學!Go 語言 (Golang) 實戰聖經
完全自學!Go 語言 (Golang) 實戰聖經
完全自學!Go 語言 (Golang) 實戰聖經

完全自學!Go 語言 (Golang) 實戰聖經

定  價:NT$ 880 元
優惠價:95836
領券後再享88折
團購優惠券A
8本以上且滿1500元
再享89折,單本省下92元
庫存:1
可得紅利積點:25 點
相關商品
商品簡介
作者簡介
目次

商品簡介

內容介紹:
你從未見過如此完整的 Go 語言中文教材!

Go 語言
☛ 2016 年被 TIOBE 選為年度最佳程式語言
☛ 2020 年 Stack Overflow調查為 『全球第三高薪開發者職業』
☛ 2020 年超越 Python 成為『職業開發者最想學習語言』
☛ 已被 Google、Dropbox、Twitch、Uber 等企業採用,也用來打造 Docker、Kubernetes 等熱門開源工具

Go 語言,或者 『Golang』,是近年來成長最快速的新世代程式語言之一。它語法接近 C 及 Java,但藉由更精簡的語法來縮短開發時程、使專案能輕易擴張規模,並具備安全的靜態型別、記憶體垃圾回收、跨平台編譯能力等。連 Python 之父 Guido van Rossum 都說, Go『是所有新語言中最具 Python 風格的』...

最重要地,Go 語言擁有豐富程度堪比 Python 的內建函式庫,無須下載額外套件,就能用少於 10 行程式寫出簡易 HTTP 伺服端應用!甚至,它獨特的 Goroutine 讓你能用簡單得稱奇的方式啟用非同步運算,超輕鬆解鎖現代多核心電腦的運算威力。

想跨足 Go 語言,讓履歷及薪水更上一層樓,卻依舊找不到合適的入門書嗎?本書以豐富的範例及練習,帶領讀者實地操作 Go 語言的基礎及相關特色,讀完就能立馬投入實戰。替自己的職涯超前佈署,快速增加一技之長,別再只能對現況『滾動式修正』啦!
本書特色:
作者群擁有豐富的 Go 語言開發經驗,精心設計了「範例」、「練習」和「延伸習題」,讓讀者從實作中親自體會到 Go 語言的威力。小編也在書中適當加入「編註」與「補充」,以幫助理解及補充必要知識,更增添本書的可讀性。

你將在本書讀到:

☛ Go 語言的型別、函式、結構與介面
☛ 模組管理和單元測試
☛ JSON 資料、檔案、資料庫操作
☛ HTTP 客戶端/伺服器應用和加密
☛ 非同步運算
☛ 附全書 258 個範例/練習程式及 36 個延伸習題檔案下載 (使用 Go 1.16+ )

 

作者簡介

 Delio D'Anna 現任 Cognitiv+ 的機器學習工程師, 專長為分散式系統架構, 有三年 Go 語言開發經驗。

Andrew Hayes 現任 CI/CD 平台 Harness 主管工程師, 有三年 Go 語言開發資歷,工作過的產業類型包括儲存設備、網路、DevOps 和雲端。

Sam Hennessy 從 2015 年起轉為全職 Go 語言工程師, 替新創企業、政府機構和大企業工作過, 也擔任包括 Go 語言在內的講師。現任日本 WealthPark Co., Ltd. 不動產公司的後端經理。

Jeremy Leasor 現任資安公司 Aronis SCS 的 Go 語言工程師, 擁有超過 20 年 IT 資歷, 包括 4 年以上的 Go 語言經驗, 發展安全性與資料庫方面的應用。

Gobin Sougrakpam 從系統整合工程師起家, 目前是 Go 程式設計師, 替 VMWare 和 AMS 等平台建置自動化方案。現任資訊服務管理公司 ServiceNow 資深工程師。

Dániel Erno Szabó 現任水電管理企業 Itron, Inc. 的 DevOps 工程師, 是個 IT 迷, 熱愛 Go、Python、Ruby 和 C# 等多種語言。

 

目次

 ▶ 閱讀本書前的準備

本書的表達習慣
安裝 Go 語言
安裝 Visual Studio Code 編輯器
建立和執行專案
The Go Playground
本書執行專案的慣例
從 VS Code 執行執行 Go 程式
下載本書附錄、範例程式並開啟工作區

▶ Chapter 1 變數與算符

1-1 前言
1-1-1 Go 語言簡介
1-1-2 Go 語言的模樣
1-2 宣告變數 (variables)
1-2-1 用 var 宣告變數
1-2-2 用 var 一次宣告多個變數
1-2-3 用 var 宣告變數時省略型別或賦值
1-2-4 推斷型別發生問題的時候
1-2-5 短變數宣告
1-2-6 以短變數宣告建立多重變數
1-2-7 在單行程式內用 var 宣告多重變數
1-2-8 非英語的變數名稱
1-3 更改變數值
1-3-1 更改單一變數的值
1-3-2 一次更改多個變數值
1-4 算符 (operators)
1-4-1 算符基礎
1-4-2 算符簡寫法
1-4-3 值的比較
1-5 零值 (zero values)
1-6 值 vs. 指標 (pointers)
1-6-1 了解指標
1-6-2 取得指標
1-6-3 從指標取得值
1-6-4 採用指標的函式設計
1-7 常數 (constants)
1-8 列舉 (enums)
1-9 變數作用範圍 (Scope)
1-10 本章回顧

▶ Chapter 2 條件判斷與迴圈

2-1 前言
2-2 if 敘述
2-2-1 if 敘述基礎
2-2-2 else 敘述
2-2-3 else if 敘述
2-2-4 if 敘述的起始賦值
2-3 switch 敘述
2-3-1 switch 敘述基礎
2-3-2 switch 的不同用法
2-4 迴圈
2-4-1 for 迴圈基礎
2-4-2 for i 迴圈
2-4-3 for range 迴圈
2-4-4 break 和 continue 敘述
2-5 本章回顧

▶ Chapter 3 核心型別

3-1 前言
3-2 布林值:true/false
3-3 數字
3-3-1 整數
3-3-2 浮點數
3-3-3 溢位和越界繞回
3-3-4 大數值
3-3-5 位元組 (Byte)
3-4 字串 (String)
3-4-1 字串與字串常值
3-4-2 Rune
3-5 nil 值
3-6 本章回顧

▶ Chapter 4 複合型別

4-1 前言
4-2 集合型別 (collection types)
4-3 陣列 (array)
4-3-1 定義一個陣列
4-3-2 陣列的比較
4-3-3 透過索引鍵賦值
4-3-4 讀取陣列元素值
4-3-5 寫入值到陣列
4-3-6 走訪一個陣列
4-4 切片 (slice)
4-4-1 使用切片
4-4-2 為切片附加多重元素
4-4-3 從切片和陣列建立新的切片
4-4-4 了解切片的內部運作
4-4-5 切片的隱藏陣列置換
4-5 映射表 (map)
4-5-1 map 的基礎
4-5-2 從 map 讀取元素
4-5-3 從 map 刪除元素
4-6 簡易自訂型別 (custom types)
4-7 結構 (struct)
4-7-1 結構的定義
4-7-2 結構的相互比較
4-7-3 內嵌結構
4-7-4 替自訂型別加上方法 (method)
4-8 介面與型別檢查
4-8-1 型別轉換
4-8-2 型別斷言與 interface{} 空介面
4-8-3 型別 switch
4-9 本章回顧

▶ Chapter 5 函式

5-1 前言
5-2 函式
5-2-1 函式的宣告和組成
5-2-2 函式參數
5-2-3 函式傳回值
5-2-4 Naked Returns
5-3 參數不定函式
5-4 匿名函式與閉包
5-4-1 宣告匿名函式
5-4-2 建立閉包
5-5 以函式為型別的參數
5-5-1 自訂函式型別
5-5-2 使用自訂函式型別的參數
5-5-3 用自訂函式型別作為傳回值
5-6 defer
5-6-1 用 defer 延後函式執行
5-6-2 多重 defer 的執行順序
5-6-3 defer 對變數值的副作用
5-7 摘要

▶ Chapter 6 錯誤處理

6-1 前言
6-2 程式錯誤的類型
6-2-1 語法錯誤
6-2-2 執行期間錯誤
6-2-3 邏輯錯誤/語意錯誤
6-3 其它程式語言的錯誤處理方式
6-4 error 介面
6-4-1 Go 語言的 error 值
6-4-2 error 型別定義
6-4-3 建立 error 值
6-4-4 (小編補充) 使用 fmt.Errorf() 建立 error 值
6-5 panic
6-5-1 何謂 panic?
6-5-2 panic() 函式
6-6 recover (復原)
6-7 處理 error 與 panic 的指導方針
6-8 本章回顧.6-31

▶ Chapter 7 介面

7-1 前言
7-2 介面 (interface)
7-2-1 認識介面
7-2-2 定義介面型別
7-2-3 實作一個介面
7-2-4 隱性介面實作的優點
7-3 鴨子定型和多型
7-3-1 鴨子定型
7-3-2 多型
7-4 在函式中活用介面
7-4-1 以介面為參數的函式
7-4-2 以介面為傳回值的函式
7-4-3 空介面 interfac{}
7-4-4 型別斷言與型別 switch
7-5 本章回顧

▶ Chapter 8 套件

8-1 前言
8-1-1 何謂套件
8-1-2 運用套件的好處
8-2 使用套件
8-2-1 何謂套件
8-2-2 套件的命名
8-2-3 套件的宣告
8-2-4 將套件的功能匯出
8-3 管理套件
8-3-1 GOROOT
8-3-2 GOPATH
8-3-4 Go Modules ★ Go 1.16+ 的預設套件管理方法
8-3-5 下載第三方模組或套件
8-4 套件的呼叫與執行
8-4-1 套件別名
8-4-2 init() 函式
8-5 本章回顧

▶ Chapter 9 程式除錯:格式化訊息、日誌與單元測試

9-1 前言
9-1-1 臭蟲的發生原因
9-1-2 除錯原則
9-2 以 fmt 套件做格式化輸出
9-2-1 fmt 套件
9-2-2 fmt 的格式化輸出
9-2-3 印出浮點數的進階格式化
9-2-4 用 strconv.FormatFloat() 格式化浮點數
9-3 使用 log 提供追蹤訊息/日誌
9-3-1 印出追蹤訊息
9-3-2 用 log 套件輸出日誌
9-3-3 建立自訂 logger 物件
9-4 撰寫單元測試
9-5 本章回顧

▶ Chapter 10 時間處理

10-1 前言
10-2 建立時間資料
10-2-1 取得系統時間
10-2-2 取得時間資料中的特定項目
10-3 時間值的格式化
10-3-1 將時間轉成指定格式的字串
10-3-2 將特定格式的時間字串轉成時間值
10-4 時間值的管理
10-4-1 建立和增減時間值
10-4-2 設定時區來取得新時間值
10-5 時間值的比較與時間長度處理
10-5-1 比較時間
10-5-2 用時間長度來改變時間
10-5-3 測量時間長度
10-6 本章回顧

▶ Chapter 11 編碼/解碼 JSON 資料

11-1 前言
11-2 解碼 JSON 為 Go 結構
11-2-1 Unmarshal()
11-2-2 加上結構 JSON 標籤
11-2-3 解碼 JSON 到複合結構
11-3 將 Go 結構編碼為 JSON
11-3-1 Marshal()
11-3-2 將有多重欄位的結構轉為 JSON
11-3-3 略過欄位
11-3-4 有排版的 JSON 編碼結果
11-4 使用 Decoder/Encoder 處理 JSON 資料
11-5 處理內容未知的 JSON 資料
11-5-1 將 JSON 格式解碼成 map
11-5-2 將 map 編碼成 JSON 格式
11-6 gob:Go 自有的編碼格式
11-7 本章回顧

▶ Chapter 12 系統與檔案

12-1 前言
12-2 命令列旗標與其引數
12-3 系統中斷訊號
12-4 檔案存取權限
12-5 建立與寫入檔案
12-5-1 用 os 套件新建檔案
12-5-2 對檔案寫入字串
12-5-3 一次完成建立檔案及寫入
12-5-4 檢查檔案是否存在
12-5-5 一次讀取整個檔案內容
12-5-6 一次讀取檔案中的一行字串
12-5-7 刪除檔案
12-6 最完整的檔案開啟與建立功能:os.OpenFile()
12-7 處理 CSV 格式檔案
12-7-1 走訪 CSV 檔內容
12-7-2 讀取每行資料各欄位的值
12-6 本章回顧

▶ Chapter SQL 13 與資料庫

13-1 前言
13-2 安裝 MySQL 資料庫
13-2-1 安裝 MySQL Server
13-2-2 新增資料庫使用者
13-2-3 建立一個 MySQL 資料庫
13-2-4 下載 Go 語言的 MySQL 驅動程式
13-3 以 Go 語言連接資料庫
13-4 建立、清空和移除資料表
13-5 插入資料
13-6 查詢資料
13-6-1 查詢並印出整個資料表內容
13-6-2 查詢符合條件的資料
13-7 更新既有資料
13-8 練習:FizzBuzz 統計表
13-9 本章回顧

▶ Chapter 14 使用 Go 的 HTTP 客戶端

14-1 前言
14-2 Go 語言的 HTTP 客戶端
14-3 對伺服器傳送 GET 請求
14-3-1 使用 http.Get() 發送 GET 請求
14-3-2 取得並解析伺服器的 JSON 資料
14-4 用 POST 請求傳送資料給伺服器
14-4-1 送出 POST 請求並接收回應
14-4-2 用 POST 請求上傳檔案
14-5 在客戶端使用自訂標頭做為請求選項
14-6 本章回顧

▶ Chapter 15 建立 HTTP 伺服器程式

15-1 前言
15-2 打造最基本的伺服器
15-2-1 使用 HTTP 請求處理器 (handler)
15-2-2 簡單的 routing (路由) 控制
15-2-3 修改程式來應付多重路徑請求
15-3 解讀網址參數來動態產生網頁
15-4 使用模板產生網頁
15-5 使用靜態網頁資源
15-5-1 讀取靜態 HTML 網頁
15-5-2 在伺服器上提供多重靜態資源
15-5-3 使用模板檔案產生動態網頁
15-6 用表單和 POST 方法更新伺服器資料
15-7 簡易 RESTful API:交換 JSON 資料
15-8 本章回顧

▶ Chapter 16 並行性運算

16-1 前言
16-2 使用 Go 語言的並行性運算
16-2-1 Goroutine
16-2-2 WaitGroup
16-3 解決記憶體資源競爭 (race condition)
16-3-1 原子操作 (atomic operation)
16-3-2 互斥鎖 (mutex)
16-4 通道 (channel)
16-4-1 使用通道傳遞訊息
16-4-2 從通道讀取多重來源的資料
16-5 並行性運算的流程控制
16-5-1 通道緩衝區與通道關閉:close()
16-5-2 使用通道訊息來等待 Goroutine 結束
16-5-3 使用通道傳送取消信號
16-5-4 使用函式來產生通道及 Goroutine
16-5-5 限制通道的收發方向
16-5-6 將結構方法當成 Goroutine
16-6 context 套件
16-7 本章回顧

▶ Chapter 17 運用 Go 語言工具

17-1 前言
17-2 go build 工具:編譯可執行檔
17-2-1 使用 go build
17-2-2 編譯條件:選擇要編譯的檔案
★ 如何針對跨平台編譯
17.3 go run 工具:執行程式
17-3 gofmt 工具:程式碼格式化
★ 小編補充:Go 語言伺服器 gopls
17-4 go vet:程式靜態分析工具
★ 小編補充:Go 語言風格檢查工具:golint
17-5 go doc 工具:產生文件
17-6 go get 工具;下載模組或套件
17-7 本章回顧

▶ Chapter 18 加密安全

18-1 前言
18-2 雜湊函式 ★ 使用 MD5 和 SHA2/SHA3
18-3 加密法
18-3-1 對稱式加密法 ★ 使用 AES + GCM
18-3-2 非對稱式加密法 ★ 使用 RSA-OAEP
18-4 數位簽章 ★ 使用 Ed25519
18-5 HTTPS/TLS 與 X.509 憑證
★ 給客戶端和伺服器使用自簽署憑證
★ 改用 ECDSA 簽章演算法

18-6 本章回顧

▶ Chapter 19 Go 語言的特殊套件:reflect 與 unsafe

19-1 反射 (reflection)
19-1-1 TypeOf() 和 ValueOf()
19-1-2 取得指標值和修改之
19-1-3 取得結構的欄位名稱、型別與其值
19-1-4 練習:用 reflect 取代介面斷言
19-1-5 DeepEqual
19-2 unsafe 套件
19-2-1 unsafe.Pointer 指標
19-2-2 以 uintptr 搭配 unsafe 存取記憶體位址
19-2-3 Go 語言標準套件中的 unsafe
19-3 本章回顧

▶ 附錄 延伸習題

 

您曾經瀏覽過的商品

購物須知

為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。

若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。

優惠價:95 836
庫存:1

暢銷榜

客服中心

收藏

會員專區