中图网(原中国图书网):网上书店,尾货特色书店,30万种特价书低至2折!

歡迎光臨中圖網 請 | 注冊
> >
進階GO語言高級編程

包郵 進階GO語言高級編程

出版社:人民郵電出版社出版時間:2018-05-01
開本: 其他 頁數: 365
中 圖 價:¥54.4(6.1折) 定價  ¥89.0 登錄后可看到會員價
加入購物車 收藏
開年大促, 全場包郵
?新疆、西藏除外
本類五星書更多>
買過本商品的人還買了

進階GO語言高級編程 版權信息

  • ISBN:9787115510365
  • 條形碼:9787115510365 ; 978-7-115-51036-5
  • 裝幀:簡裝本
  • 冊數:暫無
  • 重量:暫無
  • 所屬分類:>

進階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語言來實現進階學習的技術人員學習和參考。

進階GO語言高級編程 內容簡介

本書從實踐出發講解Go語言的進階知識。本書共6章,章簡單回顧Go語言的發展歷史;第2章和第3章系統地介紹CGO編程和Go匯編語言的用法;第4章對RPC和Protobuf技術進行深入介紹,并講述如何打造一個自己的RPC系統;第5章介紹工業級環境的Web系統的設計和相關技術;第6章介紹Go語言在分布式領域的一些編程技術。書中還涉及CGO和匯編方面的知識,其中CGO能夠幫助讀者繼承的軟件遺產,而在深入學習Go運行時,匯編對于理解各種語法設計的底層實現是必不可少的知識。此外,本書還包含一些緊跟潮流的內容,介紹開源界流行的gRPC及其相關應用,講述Go Web框架中的基本實現原理和大型Web項目中的技術要點,引導讀者對Go語言進行更深入的應用。
本書適合對Go語言的應用已經有一些心得,并希望能夠深入理解底層實現原理或者是希望能夠在Web開發方面結合Go語言來實現進階學習的技術人員學習和參考。

進階GO語言高級編程 目錄

目 錄





第 1章 語言基礎 1


1.1 Go語言創世紀 1


1.1.1 來自貝爾實驗室特有基因 3


1.1.2 你好,世界 4


1.2 “Hello, World”的革命 5


1.2.1 B語言——Ken Thompson, 1969 5


1.2.2 C語言——Dennis Ritchie,1972—1989 5


1.2.3 Newsqueak——Rob Pike, 1989 7


1.2.4 Alef——Phil Winterbottom, 1993 9


1.2.5 Limbo——Sean Dorward, Phil Winterbottom, Rob Pike, 1995 10


1.2.6 Go語言——2007—2009 11


1.2.7 你好,世界!——V2.0 13


1.3 數組、字符串和切片 13


1.3.1 數組 14


1.3.2 字符串 17


1.3.3 切片 21


1.4 函數、方法和接口 27


1.4.1 函數 27


1.4.2 方法 31


1.4.3 接口 35


1.5 面向并發的內存模型 39


1.5.1 Goroutine和系統線程 40


1.5.2 原子操作 40


1.5.3 順序一致性內存模型 44


1.5.4 初始化順序 45


1.5.5 Goroutine的創建 46


1.5.6 基于通道的通信 46


1.5.7 不靠譜的同步 48


1.6 常見的并發模式 49


1.6.1 并發版本的“Hello, World” 50


1.6.2 生產者/消費者模型 52


1.6.3 發布/訂閱模型 53


1.6.4 控制并發數 56


1.6.5 贏者為王 57


1.6.6 素數篩 58


1.6.7 并發的安全退出 59


1.6.8 context包 62


1.7 錯誤和異常 64


1.7.1 錯誤處理策略 65


1.7.2 獲取錯誤的上下文 67


1.7.3 錯誤的錯誤返回 69


1.7.4 剖析異常 70


1.8 補充說明 73


第 2章 CGO編程 74


2.1 快速入門 74


2.1.1 *簡CGO程序 74


2.1.2 基于C標準庫函數輸出字符串 75


2.1.3 使用自己的C函數 75


2.1.4 C代碼的模塊化 76


2.1.5 用Go重新實現C函數 77


2.1.6 面向C接口的Go編程 78


2.2 CGO基礎 79


2.2.1 import "C"語句 79


2.2.2 #cgo語句 81


2.2.3 build標志條件編譯 82


2.3 類型轉換 83


2.3.1 數值類型 83


2.3.2 Go字符串和切片 85


2.3.3 結構體、聯合和枚舉類型 86


2.3.4 數組、字符串和切片 89


2.3.5 指針間的轉換 91


2.3.6 數值和指針的轉換 92


2.3.7 切片間的轉換 93


2.4 函數調用 94


2.4.1 Go調用C函數 94


2.4.2 C函數的返回值 94


2.4.3 void函數的返回值 95


2.4.4 C調用Go導出函數 96


2.5 內部機制 97


2.5.1 CGO生成的中間文件 97


2.5.2 Go調用C函數 98


2.5.3 C調用Go函數 101


2.6 實戰:封裝qsort 103


2.6.1 認識qsort()函數 103


2.6.2 將qsort()函數從Go包導出 104


2.6.3 改進:閉包函數作為比較函數 106


2.6.4 改進:消除用戶對unsafe包的依賴 108


2.7 CGO內存模型 110


2.7.1 Go訪問C內存 110


2.7.2 C臨時訪問傳入的Go內存 111


2.7.3 C長期持有Go指針對象 113


2.7.4 導出C函數不能返回Go內存 115


2.8 C 類包裝 117


2.8.1 C 類到Go語言對象 117


2.8.2 Go語言對象到C 類 121


2.8.3 徹底解放C 的this指針 125


2.9 靜態庫和動態庫 126


2.9.1 使用C靜態庫 126


2.9.2 使用C動態庫 128


2.9.3 導出C靜態庫 129


2.9.4 導出C動態庫 131


2.9.5 導出非main包的函數 131


2.10 編譯和鏈接參數 133


2.10.1 編譯參數:CFLAGS/CPPFLAGS/CXXFLAGS 133


2.10.2 鏈接參數:LDFLAGS 133


2.10.3 pkg-config 133


2.10.4 go get鏈 134


2.10.5 多個非main包中導出C函數 135


2.11 補充說明 135


第3章 Go匯編語言 136


3.1 快速入門 136


3.1.1 實現和聲明 136


3.1.2 定義整數變量 137


3.1.3 定義字符串變量 138


3.1.4 定義main()函數 141


3.1.5 特殊字符 141


3.1.6 沒有分號 142


3.2 計算機結構 142


3.2.1 圖靈機和BrainFuck語言 143


3.2.2 《人力資源機器》游戲 144


3.2.3 X86-64體系結構 145


3.2.4 Go匯編中的偽寄存器 146


3.2.5 X86-64指令集 147


3.3 常量和全局變量 150


3.3.1 常量 150


3.3.2 全局變量 150


3.3.3 變量的內存布局 156


3.3.4 標識符規則和特殊標志 157


3.3.5 小結 158


3.4 函數 158


3.4.1 基本語法 158


3.4.2 函數參數和返回值 160


3.4.3 參數和返回值的內存布局 161


3.4.4 函數中的局部變量 163


3.4.5 調用其他函數 165


3.4.6 宏函數 166


3.5 控制流 167


3.5.1 順序執行 167


3.5.2 if/goto跳轉 169


3.5.3 for循環 171


3.6 再論函數 172


3.6.1 函數調用規范 172


3.6.2 高級匯編語言 173


3.6.3 PCDATA和FUNCDATA 176


3.6.4 方法函數 177


3.6.5 遞歸函數: 1到n求和 178


3.6.6 閉包函數 180


3.7 匯編語言的威力 182


3.7.1 系統調用 182


3.7.2 直接調用C函數 184


3.7.3 AVX指令 185


3.8 例子:Goroutine ID 187


3.8.1 故意設計沒有goid 187


3.8.2 純Go方式獲取goid 187


3.8.3 從g結構體獲取goid 189


3.8.4 獲取g結構體對應的接口對象 190


3.8.5 goid的應用:局部存儲 192


3.9 Delve調試器 194


3.9.1 Delve入門 194


3.9.2 調試匯編程序 198


3.10 補充說明 201


第4章 RPC和Protobuf 203


4.1 RPC入門 203


4.1.1 RPC版“Hello, World” 203


4.1.2 更安全的RPC接口 205


4.1.3 跨語言的RPC 207


4.1.4 HTTP上的RPC 209


4.2 Protobuf 210


4.2.1 Protobuf入門 210


4.2.2 定制代碼生成插件 212


4.2.3 自動生成完整的RPC代碼 215


4.3 玩轉RPC 218


4.3.1 客戶端RPC的實現原理 218


4.3.2 基于RPC實現監視功能 220


4.3.3 反向RPC 222


4.3.4 上下文信息 223


4.4 gRPC入門 224


4.4.1 gRPC技術棧 225


4.4.2 gRPC入門 225


4.4.3 gRPC流 227


4.4.4 發布和訂閱模式 229


4.5 gRPC進階 233


4.5.1 證書認證 233


4.5.2 Token認證 236


4.5.3 截取器 238


4.5.4 和Web服務共存 240


4.6 gRPC和Protobuf擴展 241


4.6.1 驗證器 241


4.6.2 REST接口 244


4.6.3 Nginx 246


4.7 pbgo:基于Protobuf的框架 246


4.7.1 Protobuf擴展語法 246


4.7.2 插件中讀取擴展信息 248


4.7.3 生成REST代碼 249


4.7.4 啟動REST服務 250


4.8 grpcurl工具 251


4.8.1 啟動反射服務 251


4.8.2 查看服務列表 252


4.8.3 服務的方法列表 253


4.8.4 獲取類型信息 253


4.8.5 調用方法 254


4.9 補充說明 255


第5章 Go和Web 256


5.1 Web開發簡介 256


5.2 請求路由 260


5.2.1 httprouter 260


5.2.2 原理 262


5.2.3 壓縮檢索樹創建過程 263


5.3 中間件 267


5.3.1 代碼泥潭 267


5.3.2 使用中間件剝離非業務邏輯 269


5.3.3 更優雅的中間件寫法 272


5.3.4 哪些事情適合在中間件中做 273


5.4 請求校驗 274


5.4.1 重構請求校驗函數 275


5.4.2 用請求校驗器解放體力勞動 276


5.4.3 原理 277


5.5 Database 和數據庫打交道 279


5.5.1 從database/sql講起 279


5.5.2 提高生產效率的ORM和


SQL Builder 281


5.5.3 脆弱的數據庫 283


5.6 服務流量限制 285


5.6.1 常見的流量限制手段 287


5.6.2 原理 289


5.6.3 服務瓶頸和 QoS 291


5.7 常見大型Web項目分層 291


5.8 接口和表驅動開發 297


5.8.1 業務系統的發展過程 297


5.8.2 使用函數封裝業務流程 298


5.8.3 使用接口來做抽象 298


5.8.4 接口的優缺點 301


5.8.5 表驅動開發 303


5.9 灰度發布和A/B測試 303


5.9.1 通過分批次部署實現灰度發布 304


5.9.2 通過業務規則進行灰度發布 305


5.9.3 如何實現一套灰度發布系統 306


5.10 補充說明 310


第6章 分布式系統 311


6.1 分布式ID生成器 311


6.1.1 worker_id分配 312


6.1.2 開源實例 313


6.2 分布式鎖 316


6.2.1 進程內加鎖 317


6.2.2 嘗試鎖 317


6.2.3 基于Redis的setnx 319


6.2.4 基于ZooKeeper 321


6.2.5 基于etcd 321


6.2.6 如何選擇合適的鎖 322


6.3 延時任務系統 323


6.3.1 定時器的實現 323


6.3.2 任務分發 325


6.3.3 數據再平衡和冪等考量 326


6.4 分布式搜索引擎 327


6.4.1 搜索引擎 328


6.4.2 異構數據同步 336


6.5 負載均衡 337


6.5.1 常見的負載均衡思路 337


6.5.2 基于洗牌算法的負載均衡 338


6.5.3 ZooKeeper集群的隨機節點挑選問題 340


6.5.4 負載均衡算法效果驗證 340


6.6 分布式配置管理 341


6.6.1 場景舉例 341


6.6.2 使用etcd實現配置更新 342


6.6.3 配置膨脹 345


6.6.4 配置版本管理 345


6.6.5 客戶端容錯 345


6.7 分布式爬蟲 346


6.7.1 基于colly的單機爬蟲 346


6.7.2 分布式爬蟲 347


6.7.3 結合nats和colly的消息生產 350


6.7.4 結合colly的消息消費 352


6.8 補充說明 353


附錄A 使用Go語言常遇到的問題 354


附錄B 有趣的代碼片段 363







展開全部

進階GO語言高級編程 作者簡介

柴樹杉,國內較早的一批Go語言愛好者,Go語言代碼貢獻者。對WebAssembly技術有一定研究,除本書外還著有《WebAssembly標準入門》一書。GitHub賬號為chai2010。
曹春暉,在Web 領域工作多年,開源愛好者。對大型網站系統的架構和相關工具的實現很感興趣,并且有一些研究成果。目前在滴滴平臺技術部工作。

商品評論(0條)
暫無評論……
書友推薦
本類暢銷
編輯推薦
返回頂部
中圖網
在線客服
主站蜘蛛池模板: 碳化硅,氮化硅,冰晶石,绢云母,氟化铝,白刚玉,棕刚玉,石墨,铝粉,铁粉,金属硅粉,金属铝粉,氧化铝粉,硅微粉,蓝晶石,红柱石,莫来石,粉煤灰,三聚磷酸钠,六偏磷酸钠,硫酸镁-皓泉新材料 | 智慧钢琴-电钢琴-便携钢琴-数码钢琴-深圳市特伦斯乐器有限公司 | 临朐空调移机_空调维修「空调回收」临朐二手空调 | 反渗透水处理设备|工业零排放|水厂设备|软化水设备|海南净水设备--海南水处理设备厂家 | 风化石头制砂机_方解石制砂机_瓷砖石子制砂机_华盛铭厂家 | 压力变送器-上海武锐自动化设备有限公司| 锂电叉车,电动叉车_厂家-山东博峻智能科技有限公司 | 淄博不锈钢无缝管,淄博不锈钢管-鑫门物资有限公司 | 航拍_专业的无人机航拍摄影门户社区网站_航拍网 | 青岛侦探_青岛侦探事务所_青岛劝退小三_青岛婚外情取证-青岛王军侦探事务所 | 塑钢课桌椅、学生课桌椅、课桌椅厂家-学仕教育设备首页 | 气弹簧定制-气动杆-可控气弹簧-不锈钢阻尼器-工业气弹簧-可调节气弹簧厂家-常州巨腾气弹簧供应商 | Magnescale探规,Magnescale磁栅尺,Magnescale传感器,Magnescale测厚仪,Mitutoyo光栅尺,笔式位移传感器-苏州连达精密量仪有限公司 | 岛津二手液相色谱仪,岛津10A液相,安捷伦二手液相,安捷伦1100液相-杭州森尼欧科学仪器有限公司 | 减速机三参数组合探头|TSM803|壁挂式氧化锆分析仪探头-安徽鹏宸电气有限公司 | 硬度计,金相磨抛机_厂家-莱州华煜众信试验仪器有限公司 | J.S.Bach 圣巴赫_高端背景音乐系统_官网 | 武汉印刷厂-不干胶标签印刷厂-武汉不干胶印刷-武汉标签印刷厂-武汉标签制作 - 善进特种标签印刷厂 | 暴风影音| 西子馋火锅鸡加盟-太原市龙城酉鼎餐饮管理有限公司 | 订做不锈钢_不锈钢定做加工厂_不锈钢非标定制-重庆侨峰金属加工厂 | 海德莱电力(HYDELEY)-无功补偿元器件生产厂家-二十年专业从事电力电容器 | 单电机制砂机,BHS制砂机,制沙机设备,制砂机价格-正升制砂机厂家 单级/双级旋片式真空泵厂家,2xz旋片真空泵-浙江台州求精真空泵有限公司 | 免费网站网址收录网_海企优网站推荐平台 | RV减速机-蜗轮蜗杆减速机-洗车机减速机-减速机厂家-艾思捷 | 首页|光催化反应器_平行反应仪_光化学反应仪-北京普林塞斯科技有限公司 | 镀锌角钢_槽钢_扁钢_圆钢_方矩管厂家_镀锌花纹板-海邦钢铁(天津)有限公司 | 运动木地板_体育木地板_篮球馆木地板_舞台木地板-实木运动地板厂家 | 万师讲师网-优质讲师培训师供应商,讲师认证,找讲师来万师 | 广州番禺搬家公司_天河黄埔搬家公司_企业工厂搬迁_日式搬家_广州搬家公司_厚道搬迁搬家公司 | 制氮设备-变压吸附制氮设备-制氧设备-杭州聚贤气体设备制造有限公司 | 深圳诚暄fpc首页-柔性线路板,fpc柔性线路板打样生产厂家 | 滤芯,过滤器,滤油机,贺德克滤芯,精密滤芯_新乡市宇清流体净化技术有限公司 | 深圳离婚律师咨询「在线免费」华荣深圳婚姻律师事务所专办离婚纠纷案件 | 移动机器人产业联盟官网| 幂简集成 - 品种超全的API接口平台, 一站搜索、试用、集成国内外API接口 | 玻璃钢型材-玻璃钢风管-玻璃钢管道,生产厂家-[江苏欧升玻璃钢制造有限公司] | 包塑丝_高铁绑丝_地暖绑丝_涂塑丝_塑料皮铁丝_河北创筹金属丝网制品有限公司 | 刑事律师_深圳著名刑事辩护律师_王平聚【清华博士|刑法教授】 | Magnescale探规,Magnescale磁栅尺,Magnescale传感器,Magnescale测厚仪,Mitutoyo光栅尺,笔式位移传感器-苏州连达精密量仪有限公司 | 房车价格_依维柯/大通/东风御风/福特全顺/江铃图片_云梯搬家车厂家-程力专用汽车股份有限公司 |