TOP
英國出版界指標大獎肯定!A.F. Steadman 獲年度作家,《史坎德》系列帶你踏上熱血奇幻旅程
Go語言精進之路:從新手到高手的編程思想、方法和技巧1(簡體書)
滿額折

Go語言精進之路:從新手到高手的編程思想、方法和技巧1(簡體書)

商品資訊

人民幣定價:99 元
定價
:NT$ 594 元
優惠價
87517
海外經銷商無庫存,到貨日平均30天至45天
下單可得紅利積點 :15 點
商品簡介
名人推薦
目次

商品簡介

內容簡介
Go入門容易,精進難,如何才能像Go開發團隊那樣寫出符合Go思維和語言慣例的高質量代碼呢?
本書將從編程思維和實踐技巧2個維度給出答案,幫助你在Go進階的路上事半功倍。
編程思維層面
只有真正領悟了一門語言的設計哲學和編程思維,並能將之用於實踐,才算精通了這門語言。本書從Go語言設計者的視角對Go背後的設計哲學和編程思想進行了梳理和分析,指引讀者體會那些看似隨意實則經過深思熟慮的設計背後的秘密。
實踐技巧層面
實踐技巧源于對Go開發團隊和Go社區開發的高質量代碼的閱讀、挖掘和歸納,從項目結構、代碼風格、語法及其實現、接口、併發、同步、錯誤與異常處理、測試與調試、性能優化、標準庫、第三方庫、工具鏈、Z佳實踐、工程實踐等多個方面給出了改善Go代碼質量、寫出符合 Go 思維和慣例的代碼的有效實踐。
全書的內容覆蓋如下10個大類,共66個主題,字字珠璣,句句箴言。
(1)Go語言的一切
(2)項目結構、代碼風格與標識符命名
(3)聲明、類型、語句與控制結構
(4)函數與方法
(5)接口
(6)併發編程
(7)錯誤處理
(8)測試、性能剖析與調試
(9)標準庫、反射與cgo
(10)工具鏈與工程實踐
學完這本書,你將擁有和 Go專家一樣的編程思維,寫出符合Go慣例和風格的高質量代碼,從眾多 Go 初學者中脫穎而出,快速實現從Go新手到專家的轉變!

名人推薦

Go圈知名架構師和佈道者撰寫,3大Go社區力薦,哲學、思維、技巧等66個主題快速幫你寫出高質量代碼

目次

推薦序
前言
第一部分 熟知Go語言的一切
第1條 瞭解Go語言的誕生與演進2
1.1 Go語言的誕生2
1.2 Go語言的早期團隊和演進歷程4
1.3 Go語言正式發佈並開源4
第2條 選擇適當的Go語言版本6
2.1 Go語言的先祖6
2.2 Go語言的版本發佈歷史7
2.3 Go語言的版本選擇建議11
第3條 理解Go語言的設計哲學12
3.1 追求簡單,少即是多12
3.2 偏好組合,正交解耦15
3.3 原生併發,輕量高效17
3.4 面向工程,“自帶電池”21
第4條 使用Go語言原生編程思維來寫Go代碼26
4.1 語言與思維―來自大師的觀點26
4.2 現實中的“投影”27
4.3 Go語言原生編程思維29
第二部分 項目結構、代碼風格與標識符命名
第5條 使用得到公認且廣泛使用的項目結構32
5.1 Go項目的項目結構32
5.2 Go語言典型項目結構35
第6條 提交前使用gofmt格式化源碼40
6.1 gofmt:Go語言在解決規模化問題上的最佳實踐40
6.2 使用gofmt41
6.3 使用goimports43
6.4 將gofmt/goimports與IDE或編輯器工具集成44
第7條 使用Go命名慣例對標識符進行命名47
7.1 簡單且一致48
7.2 利用上下文環境,讓最短的名字攜帶足夠多的信息53
第三部分 聲明、類型、語句與
控制結構
第8條 使用一致的變量聲明形式56
8.1 包級變量的聲明形式56
8.2 局部變量的聲明形式59
第9條 使用無類型常量簡化代碼63
9.1 Go常量溯源63
9.2 有類型常量帶來的煩惱64
9.3 無類型常量消除煩惱,簡化代碼65
第10條 使用iota實現枚舉常量68
第11條 儘量定義零值可用的類型73
11.1 Go類型的零值73
11.2 零值可用75
第12條 使用複合字面值作為初值構造器78
12.1 結構體複合字面值79
12.2 數組/切片複合字面值80
12.3 map複合字面值81
第13條 瞭解切片實現原理並高效使用83
13.1 切片究竟是什麼83
13.2 切片的高級特性:動態擴容87
13.3 儘量使用cap參數創建切片90
第14條 瞭解map實現原理並高效使用92
14.1 什麼是map92
14.2 map的基本操作93
14.3 map的內部實現97
14.4 儘量使用cap參數創建map103
第15條 瞭解string實現原理並高效使用105
15.1 Go語言的字符串類型105
15.2 字符串的內部表示110
15.3 字符串的高效構造112
15.4 字符串相關的高效轉換115
第16條 理解Go語言的包導入120
16.1 Go程序構建過程121
16.2 究竟是路徑名還是包名127
16.3 包名衝突問題130
第17條 理解Go語言表達式的求值順序132
17.1 包級別變量聲明語句中的表達式求值順序133
17.2 普通求值順序136
17.3 賦值語句的求值139
17.4 switch/select語句中的表達式求值140
第18條 理解Go語言代碼塊與作用域143
18.1 Go代碼塊與作用域簡介143
18.2 if條件控制語句的代碼塊145
18.3 其他控制語句的代碼塊規則簡介148
第19條 瞭解Go語言控制語句慣用法及使用注意事項154
19.1 使用if控制語句時應遵循“快樂路徑”原則154
19.2 for range的避“坑”指南156
19.3 break跳到哪裡去了165
19.4 儘量用case表達式列表替代fallthrough167
第四部分 函數與方法
第20條 在init函數中檢查包級變量的初始狀態170
20.1 認識init函數170
20.2 程序初始化順序171
20.3 使用init函數檢查包級變量的初始狀態174
第21條 讓自己習慣於函數是“一等公民”179
21.1 什麼是“一等公民”179
21.2 函數作為“一等公民”的特殊運用183
第22條 使用defer讓函數更簡潔、更健壯192
22.1 defer的運作機制193
22.2 defer的常見用法194
22.3 關於defer的幾個關鍵問題199
第23條 理解方法的本質以選擇
正確的receiver類型206
23.1 方法的本質207
23.2 選擇正確的receiver類型208
23.3 基於對Go方法本質的理解巧解難題210
第24條 方法集合決定接口實現214
24.1 方法集合215
24.2 類型嵌入與方法集合216
24.3 defined類型的方法集合226
24.4 類型別名的方法集合227
第25條 瞭解變長參數函數的妙用230
25.1 什麼是變長參數函數230
25.2 模擬函數重載233
25.3 模擬實現函數的可選參數與默認參數236
25.4 實現功能選項模式238
第五部分 接口
第26條 瞭解接口類型變量的內部表示246
26.1 nil error值 != nil247
26.2 接口類型變量的內部表示248
26.3 輸出接口類型變量內部表示的詳細信息254
26.4 接口類型的裝箱原理258
第27條 儘量定義小接口263
27.1 Go推薦定義小接口263
27.2 小接口的優勢265
27.3 定義小接口可以遵循的一些點267
第28條 儘量避免使用空接口作為函數參數類型270
第29條 使用接口作為程序水平組合的連接點274
29.1 一切皆組合274
29.2 垂直組合回顧275
29.3 以接口為連接點的水平組合276
第30條 使用接口提高代碼的可測試性281
30.1 實現一個附加免責聲明的電子郵件發送函數282
30.2 使用接口來降低耦合283
第六部分 併發編程
第31條 優先考慮併發設計288
31.1 併發與並行288
31.2 Go併發設計實例290
第32條 瞭解goroutine的調度原理299
32.1 goroutine調度器299
32.2 goroutin

購物須知

大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。

特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。

無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。

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

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

優惠價:87 517
海外經銷商無庫存,到貨日平均30天至45天

暢銷榜

客服中心

收藏

會員專區