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

歡迎光臨中圖網 請 | 注冊
> >
Go語言編程之旅:一起用Go做項目

包郵 Go語言編程之旅:一起用Go做項目

作者:陳劍煜
出版社:電子工業出版社出版時間:2020-06-01
開本: 其他 頁數: 500
中 圖 價:¥53.9(5.0折) 定價  ¥108.0 登錄后可看到會員價
加入購物車 收藏
開年大促, 全場包郵
?新疆、西藏除外
本類五星書更多>

Go語言編程之旅:一起用Go做項目 版權信息

  • ISBN:9787121390746
  • 條形碼:9787121390746 ; 978-7-121-39074-6
  • 裝幀:一般膠版紙
  • 冊數:暫無
  • 重量:暫無
  • 所屬分類:>

Go語言編程之旅:一起用Go做項目 本書特色

適讀人群 :有一定Go語言基礎的讀者以及相關開發人員。本書針對Go語言中較為常用的命令行應用、HTTP應用、RPC應用、WebSocket 應用、進程內緩存進行了詳細的介紹,并開發了一系列小的適合程序員日常使用的工具。同時對項目開發、細節分析、運行時分析等核心內容進行了較為深入的剖析,提供了相對完整的項目實踐經驗。適合有一定語言類基礎的讀者閱讀。

Go語言編程之旅:一起用Go做項目 內容簡介

全書共分為6章,分別是命令行應用、HTTP應用、RPC應用、WebSocket 應用、進程內緩存和 Go語言中的大殺器,其中前5章是Go語言開發中很常見的項目類型。本書對項目開發、細節分析、運行時分析等核心內容進行了較為深入的剖析,提供了相對完整的項目實踐經驗。在項目迭代過程中,難免會遇到問題,因此本書針對Go語言的大殺器(分析工具)及常見問題進行了全面講解,幫助讀者對各類問題進行排查。本書適合有一定Go語言基礎的讀者以及相關開發人員閱讀。

Go語言編程之旅:一起用Go做項目 目錄

第1章 命令行應用:打造屬于自己的工具集 1
1.1 工具之旅 1
1.1.1 標準庫flag 1
1.1.2 初始化項目 1
1.1.3 示例 2
1.1.4 分析 4
1.1.5 定義參數類型 7
1.1.6 小結 8
1.2 單詞格式轉換 8
1.2.1 安裝Cobra 8
1.2.2 初始化cmd和word子命令 8
1.2.3 單詞轉換 9
1.2.4 word子命令 11
1.2.5 驗證 12
1.2.6 小結 13
1.3 便捷的時間工具 13
1.3.1 獲取時間 14
1.3.2 推算時間 14
1.3.3 初始化子命令 15
1.3.4 驗證 17
1.3.5 時區問題 17
1.3.6 參考時間的格式 20
1.3.7 小結 20
1.4 SQL語句到結構體的轉換 20
1.4.1 需要轉換的數據結構 21
1.4.2 生成結構體 21
1.4.3 表到結構體的轉換 24
1.4.4 初始化子命令 28
1.4.5 驗證 30
1.4.6 小結 31


第2章 HTTP應用:寫一個完整的博客后端 32
2.1 博客之旅 32
2.1.1 gin 32
2.1.2 初始化項目 32
2.1.3 安裝gin 32
2.1.4 快速啟動 33
2.1.5 驗證 34
2.1.6 源碼分析 34
2.1.7 小結 38
2.2 項目設計 39
2.2.1 目錄結構 39
2.2.2 數據庫 40
2.2.3 創建model 42
2.2.4 路由 43
2.2.5 處理程序 44
2.2.6 啟動接入 45
2.2.7 驗證 46
2.2.8 小結 46
2.3 公共組件 46
2.3.1 錯誤碼標準化 47
2.3.2 配置管理 50
2.3.3 數據庫連接 55
2.3.4 日志寫入 56
2.3.5 響應處理 62
2.3.6 小結 65
2.4 接口文檔 65
2.4.1 Swagger簡介 65
2.4.2 OpenAPI和Swagger 66
2.4.3 安裝 Swagger 66
2.4.4 寫入注解 66
2.4.5 生成 68
2.4.6 路由 68
2.4.7 查看接口文檔 69
2.4.8 源碼分析 70
2.4.9 存在的問題 72
2.4.10 小結 73
2.5 接口校驗 73
2.5.1 validator介紹 73
2.5.2 業務接口校驗 74
2.5.3 國際化處理 75
2.5.4 二次封裝 77
2.5.5 驗證 78
2.5.6 小結 79
2.6 模塊開發:標簽管理 80
2.6.1 新建model方法 80
2.6.2 處理model回調 81
2.6.3 新建dao方法 84
2.6.4 新建service方法 85
2.6.5 新增業務錯誤碼 86
2.6.6 新增路由方法 87
2.6.7 驗證接口 89
2.6.8 發現問題 89
2.6.9 解決問題 90
2.6.10 小結 91
2.7 模塊開發:文章管理 91
2.7.1 新建model方法 91
2.7.2 新建dao方法 95
2.7.3 新建service方法 98
2.7.4 新增業務錯誤碼 100
2.7.5 新增路由方法 101
2.7.6 驗證接口 103
2.7.7 發現問題 103
2.7.8 解決問題 104
2.8 上傳圖片和文件服務 105
2.8.1 新增配置 105
2.8.2 上傳文件 105
2.8.3 新建service方法 109
2.8.4 新增業務錯誤碼 109
2.8.5 新增路由方法 110
2.8.6 驗證接口 111
2.8.7 文件服務 111
2.8.8 源碼分析 111
2.8.9 小結 112
2.9 API訪問控制 112
2.9.1 JWT簡介 113
2.9.2 JWT的使用場景 115
2.9.3 安裝JWT 115
2.9.4 配置JWT 115
2.9.5 處理JWT令牌 116
2.9.6 獲取JWT令牌 118
2.9.7 處理應用中間件 121
2.9.8 小結 123
2.10 常見應用中間件 123
2.10.1 訪問日志記錄 124
2.10.2 異常捕獲處理 125
2.10.3 服務信息存儲 130
2.10.4 接口限流控制 131
2.10.5 統一超時控制 134
2.10.6 注冊中間件 136
2.11 鏈路追蹤 137
2.11.1 OpenTracing規范 137
2.11.2 Jaeger的使用 138
2.11.3 在應用中注入追蹤 139
2.11.4 驗證跟蹤情況 141
2.11.5 實現日志追蹤 142
2.11.6 實現SQL追蹤 145
2.11.7 小結 146
2.12 應用配置問題 147
2.12.1 配置讀取 147
2.12.2 配置熱更新 151
2.12.3 小結 153
2.13 編譯程序應用 153
2.13.1 編譯簡介 154
2.13.2 交叉編譯 158
2.13.3 編譯緩存 158
2.13.4 編譯文件大小 159
3.13.5 編譯信息寫入 160
2.13.6 小結 162
2.14 優雅重啟和停止 163
2.14.1 遇到的問題 163
2.14.2 解決方案 164
2.14.3 常用的快捷鍵 164
2.14.4 實現優雅重啟和停止 165
2.14.5 小結 166
2.15 思考 167
2.15.1 總結 167
2.15.2 作業 167


第3章 RPC應用:啟動你的RPC服務 169
3.1 gRPC和Protobuf 169
3.1.1 gRPC簡介 169
3.1.2 Protobuf簡介 170
3.1.3 gRPC的優點和缺點 172
3.1.4 小結 174
3.2 Protobuf的使用 174
3.2.1 安裝Protobuf 174
3.2.2 初始化Demo項目 175
3.2.3 編譯和生成proto文件 176
3.2.4 更多的數據類型支持 178
3.2.5 小結 180
3.3 gRPC的使用 180
3.3.1 安裝gRPC 180
3.3.2 gRPC的調用方式 180
3.3.3 Unary和Streaming RPC 187
3.3.4 客戶端與服務端是如何交互的 188
3.3.5 小結 193
3.4 運行一個gRPC服務 194
3.4.1 初始化項目 194
3.4.2 編譯和生成proto文件 194
3.4.3 編寫gRPC方法 196
3.4.4 編寫啟動文件 198
3.4.5 調試gRPC接口 198
3.4.6 gRPC的錯誤處理 199
3.4.7 源碼分析 204
3.5 gRPC服務間的內調 205
3.5.1 進行gRPC調用 206
3.5.2 grpc.Dial做了什么 206
3.6 提供HTTP接口 209
3.6.1 支持其他協議 209
3.6.2 另起端口監聽HTTP 209
3.6.3 在同端口監聽HTTP 211
3.6.4 同端口同方法提供雙流量支持 213
3.6.5 其他方案 221
3.7 接口文檔 221
3.7.1 安裝和下載 221
3.7.2 靜態資源轉換 221
3.7.3 Swagger UI的處理和訪問 222
3.7.4 Swagger描述文件的生成和讀取 223
3.7.5 查看接口文檔 224
3.7.6 小結 224
3.8 gRPC攔截器 225
3.8.1 攔截器的類型 225
3.8.2 客戶端和服務端攔截器 225
3.8.3 實現一個攔截器 226
3.8.4 實現多個攔截器 227
3.8.5 “用”多個攔截器 228
3.8.6 常用服務端攔截器 230
3.8.7 常用客戶端攔截器 232
3.8.8 演示 235
3.9 metadata和RPC自定義認證 237
3.9.1 metadata介紹 237
3.9.2 metadata是如何傳遞的 239
3.9.3 對RPC方法做自定義認證 240
3.9.4 小結 242
3.10 鏈路追蹤 242
3.10.1 注入追蹤信息 243
3.10.2 初始化Jaeger 243
3.10.3 metadata的讀取和設置 244
3.10.4 服務端 245
3.10.5 客戶端 246
3.10.6 實現HTTP追蹤 247
3.10.7 驗證 248
3.10.8 小結 249
3.11 gRPC服務注冊和發現 249
3.11.1 服務注冊和發現 250
3.11.2 gRPC負載均衡策略 251
3.11.3 實現服務注冊和發現 254
3.11.4 其他方案 257
3.12 實現自定義的protoc插件 257
3.12.1 插件的內部邏輯 258
3.12.2 generator.Plugin接口 259
3.12.3 FileDescriptor屬性 259
3.12.4 實現一個簡單的自定義插件 262
3.12.5 實現定制化的gRPC自定義插件 265
3.12.6 小結 272
3.13 對gRPC接口進行版本管理 272
3.13.1 接口變更 273
3.13.2 可兼容性修改 273
3.13.3 破壞性修改 273
3.13.4 設計gRPC接口 273
3.13.5 版本號管理 274
3.14 常見問題討論 274
3.14.1 Q&A 274
3.14.2 小結 276


第4章 WebSocket應用:聊天室 277
4.1 基于 TCP 的聊天室 277
4.1.1 代碼實現 277
4.1.2 簡單客戶端 281
4.1.3 演示 281
4.1.4 改進 282
4.1.5 小結 283
4.2 認識 WebSocket 283
4.2.1 WebSocket簡介 283
4.2.2 WebSocket 的優點 284
4.2.3 選擇一個合適的庫 285
4.2.4 nhooyr.io/websocket的介紹和使用 287
4.2.5 抓包分析協議 289
4.2.6 小結 292
4.3 聊天室需求分析和設計 293
4.3.1 聊天室的主要需求 293
4.3.2 技術選擇 294
4.3.3 總體設計思路和流程 294
4.4 項目結構組織和基礎代碼框架 295
4.4.1 項目結構組織 295
4.4.2 基礎代碼框架 297
4.5 核心流程 299
4.5.1 前端關鍵代碼 299
4.5.2 后端流程關鍵代碼 303
4.5.3 小結 310
4.6 廣播器 311
4.6.1 單例模式 311
4.6.2 廣播器的實現 316
4.7 非核心功能 325
4.7.1 @ 提醒功能 325
4.7.2 敏感詞處理 328
4.7.3 離線消息處理 332
4.7.4 小結 341
4.8 關鍵性能分析和優化 341
4.8.1 測試工具 341
4.8.2 性能測試 344
4.8.3 小結 350
4.9 Nginx部署 350
4.10 總結 351


第5章 進程內緩存 352
5.1 緩存簡介 352
5.2 緩存淘汰算法 353
5.2.1 初始化項目 353
5.2.2 緩存接口 353
5.2.3 FIFO算法 354
5.2.4 LFU算法 360
5.2.5 LRU算法 366
5.3 進程內緩存 368
5.3.1 支持并發讀寫 368
5.3.2 緩存庫主體結構TourCache 369
5.3.3 測試 371
5.4 緩存的性能和優化思路 373
5.4.1 基準測試 373
5.4.2 優化方案 376
5.4.3 小結 378
5.5 高性能緩存庫――BigCache 378
5.5.1 簡單使用 378
5.5.2 優化技巧 380
5.5.3 小結 386
5.6 進程內緩存的優化版 386
5.6.1 分片技術的應用 386
5.6.2 測試 390
5.6.3 GC耗時驗證 391
5.6.4 小結 393


第6章 Go語言中的大殺器 394
6.1 Go大殺器之性能剖析PProf(上) 394
6.1.1 PProf簡介 394
6.1.2 PProf的使用 395
6.1.3 通過測試用例做剖析 405
6.1.4 通過Lookup寫入文件做剖析 407
6.1.5 為什么要初始化net/http/pprof 409
6.1.6 小結 409
6.2 Go大殺器之性能剖析PProf(下) 409
6.2.1 場景 410
6.2.2 措施 410
6.2.3 排查 410
6.2.4 發現根源、解決問題 413
6.2.5 小結 414
6.3 Go大殺器之跟蹤剖析trace 414
6.3.1 trace簡介 415
6.3.2 實戰演練 420
6.3.3 小結 422
6.4 用GODEBUG看調度跟蹤 422
6.4.1 GODEBUG基礎知識 423
6.4.2 GODEBUG 424
6.4.3 小結 429
6.5 用GODEBUG看GC 429
6.5.1 GC基礎知識 429
6.5.2 GODEBUG 430
6.5.3 案例 432
6.5.4 涉及術語 433
6.5.5 小結 433
6.6 Go進程診斷工具gops 433
6.6.1 gops的基本使用 433
6.6.2 常規命令 434
6.6.3 源碼分析 437
6.6.4 需要注意的一點 439
6.6.5 小結 439
6.7 公開和發布度量指標 439
6.7.1 expvar標準庫 439
6.7.2 Prometheus技術棧 444
6.7.3 小結 446
6.8 逃逸分析 447
6.8.1 思考 447
6.8.2 堆和棧 447
6.8.3 逃逸分析簡介 447
6.8.4 需要逃逸分析的原因 448
6.8.5 逃逸分析判斷 448
6.8.6 逃逸案例 448
6.6.7 小結 452


附錄A Go modules的入門和使用 453
附錄B goroutine與panic、recover的小問題 469
附錄C Go在容器運行時要注意的細節 477
附錄D 讓Go“恐慌”的十種方法 479

展開全部

Go語言編程之旅:一起用Go做項目 作者簡介

陳劍煜(網名:煎魚) 微信公眾號 “腦子進煎魚了” 的作者,“Go夜讀” SIG小組成員,對Go語言有一定的興趣和經驗。在社區連載過一系列 Go 語言相關的技術文章,其中“跟煎魚學Go”系列廣受歡迎。 徐新華(網名:polaris) Go語言中文網站長,目前在北京一家創業公司擔任CTO。2011年北京大學碩士畢業,先后在開心網、奇虎360工作。一直從事服務端相關工作,有著豐富的經驗。在Go1.0正式發布時開始接觸Go語言,并將其用于工作中,。8年來一直致力于推廣Go語言在國內的發展,致力構建國內Go語言中文社區。

商品評論(0條)
暫無評論……
書友推薦
本類暢銷
編輯推薦
返回頂部
中圖網
在線客服
主站蜘蛛池模板: 贴片电容-贴片电阻-二三极管-国巨|三星|风华贴片电容代理商-深圳伟哲电子 | 工业胀紧套_万向节联轴器_链条-规格齐全-型号选购-非标订做-厂家批发价格-上海乙谛精密机械有限公司 | 基业箱_环网柜_配电柜厂家_开关柜厂家_开关断路器-东莞基业电气设备有限公司 | 踏板力计,制动仪,非接触多功能速度仪,逆反射系数测试仪-创宇 | 涂层测厚仪_光泽度仪_uv能量计_紫外辐照计_太阳膜测试仪_透光率仪-林上科技 | 行吊_电动单梁起重机_双梁起重机_合肥起重机_厂家_合肥市神雕起重机械有限公司 | 皮带机-带式输送机价格-固定式胶带机生产厂家-河南坤威机械 | 护腰带生产厂家_磁石_医用_热压护腰_登山护膝_背姿矫正带_保健护具_医疗护具-衡水港盛 | 掺铥光纤放大器-C/L波段光纤放大器-小信号光纤放大器-合肥脉锐光电技术有限公司 | 无锡网站建设_企业网站定制-网站制作公司-阿凡达网络 | 润东方环保空调,冷风机,厂房车间降温设备-20年深圳环保空调生产厂家 | 工业冷却塔维修厂家_方形不锈钢工业凉水塔维修改造方案-广东康明节能空调有限公司 | 东莞市天进机械有限公司-钉箱机-粘箱机-糊箱机-打钉机认准东莞天进机械-厂家直供更放心! | 蒜肠网-动漫,二次元,COSPLAY,漫展以及收藏型模型,手办,玩具的新媒体.(原变形金刚变迷TF圈) | _网名词典_网名大全_qq网名_情侣网名_个性网名 | 全自动烧卖机厂家_饺子机_烧麦机价格_小笼汤包机_宁波江北阜欣食品机械有限公司 | TPE_TPE热塑性弹性体_TPE原料价格_TPE材料厂家-惠州市中塑王塑胶制品公司- 中塑王塑胶制品有限公司 | 大连海岛旅游网>>大连旅游,大连海岛游,旅游景点攻略,海岛旅游官网 | 山东集装箱活动房|济南集装箱活动房-济南利森集装箱有限公司 | 上海软件开发-上海软件公司-软件外包-企业软件定制开发公司-咏熠科技 | 换网器_自动换网器_液压换网器--郑州海科熔体泵有限公司 | 权威废金属|废塑料|废纸|废铜|废钢价格|再生资源回收行情报价中心-中废网 | 列管冷凝器,刮板蒸发器,外盘管反应釜厂家-无锡曼旺化工设备有限公司 | 北京软件开发_软件开发公司_北京软件公司-北京宜天信达软件开发公司 | 逗网红-抖音网红-快手网红-各大平台网红物品导航 | 细石混凝土泵_厂家_价格-烟台九达机械有限公司 | 贴片电容-贴片电阻-二三极管-国巨|三星|风华贴片电容代理商-深圳伟哲电子 | 北京普辉律师事务所官网_北京律师24小时免费咨询|法律咨询 | LED太阳能中国结|发光红灯笼|灯杆造型灯|节日灯|太阳能灯笼|LED路灯杆装饰造型灯-北京中海轩光电 | 山东成考网-山东成人高考网 | 赛尔特智能移动阳光房-阳光房厂家-赛尔特建筑科技(广东)有限公司 | 门禁卡_智能IC卡_滴胶卡制作_硅胶腕带-卡立方rfid定制厂家 | 艺术涂料_进口艺术涂料_艺术涂料加盟_艺术涂料十大品牌 -英国蒙太奇艺术涂料 | 旋转/数显粘度计-运动粘度测定仪-上海平轩科学仪器 | 脱硝喷枪-氨水喷枪-尿素喷枪-河北思凯淋环保科技有限公司 | 蓄电池在线监测系统|SF6在线监控泄露报警系统-武汉中电通电力设备有限公司 | 商秀—企业短视频代运营_抖音企业号托管 | 车件|铜件|车削件|车床加工|五金冲压件-PIN针,精密车件定制专业厂商【东莞品晔】 | 液压油缸-液压缸厂家价格,液压站系统-山东国立液压制造有限公司 液压油缸生产厂家-山东液压站-济南捷兴液压机电设备有限公司 | 口信网(kousing.com) - 行业资讯_行业展会_行业培训_行业资料 | 电地暖-电采暖-发热膜-石墨烯电热膜品牌加盟-暖季地暖厂家 |