庫存狀況
「香港二樓書店」讓您 愛上二樓●愛上書
我的購物車 加入會員 會員中心 常見問題 首頁
「香港二樓書店」邁向第一華人書店
登入 客戶評價 whatsapp 常見問題 加入會員 會員專區 現貨書籍 現貨書籍 購物流程 運費計算 我的購物車 聯絡我們 返回首頁
香港二樓書店 > 今日好書推介
   
二樓書籍分類
 
完全自學!Go 語言 (Golang) 實戰聖經

完全自學!Go

沒有庫存
訂購需時10-14天
9789863126706
Delio D’Anna,Andrew Hayes,Sam Hennessy,Jeremy Leasor,Gobin Sougrakpam,Daniel Szabo
林班侯,施威銘研究室
旗標
2021年7月08日
293.00  元
HK$ 263.7  






ISBN:9789863126706
  • 規格:平裝 / 640頁 / 17 x 23 x 3.2 cm / 普通級 / 單色印刷 / 初版
  • 出版地:台灣


  • 電腦資訊 > 程式設計 > 其他

















    你從未見過如此完整的 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+ )

    ?


     





    ? 閱讀本書前的準備

    本書的表達習慣

    安裝 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 本章回顧



    ? 附錄 延伸習題

    ?




    其 他 著 作