-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

Go Web編程

( 簡體 字)
作者:謝孟軍類別:1. -> 程式設計 -> Go語言
譯者:
出版社:電子工業出版社Go Web編程 3dWoo書號: 35494
詢問書籍請說出此書號!

缺書
不接受訂購

出版日:6/1/2013
頁數:352
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
不接受訂購
ISBN:9787121200915
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

自序
緣起
自從一年半之前看到許式偉的博客,我認識了Go這一門語言,發現Go是C系的,個人又偏愛C語言,所以就開始了Go語言的學習之路,用三天時間學習了Go語言的所有語法和基礎知識。恰逢當時手上有一些小項目練手,在項目開發中筆者進一步發現Go語言具有三大優點:第一,性能好,我的Mac能夠跑2萬左右的并發;第二,語法簡單,對于以前有C語言基礎的人來說非常容易上手,我僅用一天時間就熟悉了基本語法,Go語言是一個上手即用的語言;第三,開發效率高,目前有很多編輯器支持Go語言,對于開發效率有很大的提升,一般的小項目半天就能解決。通過一年多來對Go語言項目的實戰累積,我越來越覺得Go是一門工程語言,而不是其他學院派。無論是開發、測試、部署、項目規模的擴展,或者是團隊協作,Go語言考慮都非常周到;而且其語法恰當好處,不多不少,夠用就是它的設計原則,所以Go語言非常適合項目的開發。
選擇Go語言,還有一部分是緣于我的個人崇拜,Go語言的作者不乏鼎鼎大名的牛人:Robert Griesemer、Rob Pike 和 Ken Thompson,他們當年設計C語言和Unix系統,后來隸屬Plan9團隊。重要的是在Go語言的完全開源中,很多名人都參與了進來,使得這個項目越來越完善:目前Go1.1出來后,性能提升了30-50%,而且GC已經達到了非常高的水準。相信在開源社區和大牛的共同推動下,Go語言會茁壯成長。
Go Web
我以前是PHP開發者,有十年左右的Web開發經驗,但在Go語言的顯著優勢下,逐漸走向了Go語言的開發之路。我發現Go語言雖然有很強大的網絡編程庫,但是在Web編程方面沒有詳細的介紹,也缺少一些比較實用的庫,所以結合我先前的Web開發經驗,以及Go語言本身的網絡編程庫,開始了這本書的創作過程,希望更多同行能夠加入到Go語言的開發行列。
這本書主要分三部分,第一部分是Go語言的基礎語法,主要介紹了Go語言的一些語法特性、環境配置和開發工具。第二部分是Web開發,主要介紹了Go Web的基本原理、表單處理、數據庫操作、Session和cookie處理、文本處理、Socket編程、安全加密、國際化和本地化、錯誤處理和調試、如何部署和維護等知識點,并且針對整個Web開發中需要用到的知識點,結合Go語言代碼的原理進行了詳細的介紹,針對Go語言在Web開發方面不存在的工具,提供了詳細的實現方式。第三部分是應用框架beego,主要介紹了beego框架的設計、實現及應用。目前書中提到的一些功能都可以在筆者的github找到相應的代碼,方便讀者進行深入的研究。
這是一本關于Web的書,我覺得特別適合以下幾種開發者:
如果你是 PHP或者其他動態語言愛好者,Go語言不一定能帶給你很大的驚喜,因為原本速度不是根本問題。但如果是類似API應用方面,使用Go語言之后,你會發現性能得到了一個量的提升,這本書中就有詳細介紹API開發的實例。
如果你是C語言愛好者,強烈建議你學習和使用Go語言。Go語言稱為21世紀的C語言,它不僅可以調用C語言程序,又可以提供足夠的便利;雖然速度上稍有犧牲,但無關大雅。大部分場景下,Go語言都能帶給你與C語言媲美的性能,對于某些確實性能關鍵的場合,我們也可以通過cgo,讓Go語言和C語言搭配使用。
如果你是Java愛好者,那么也建議你學習一下Go語言,因為Java能給你的,Go語言能給得更好。
如果你是C++愛好者,那么趕緊來看看Go語言吧,因為光學習C++特性的時間,已經可以開發多個Go語言項目了。
致謝
這本書的最后完成,讓我要感謝的人太多了:Go社區里的同仁們給了我很大的支持,如果沒有他們的反饋和幫助,我就不能順利完成編寫。所以我要感謝:四月份平民、Hong Ruiqi、BianJiang、Oling Cat、Wenlei Wu、polaris、雨痕等網友的熱心指導,還有很多github中的貢獻者,這本書是在大家共同協作努力的情況下才得以完成。
我還要感謝符隆美編輯對我的重要支持,當我才思枯竭、延期脫稿時,她經常鼓勵我、開導我,使我在壓力下完成此書并最終出版。
最后要感謝家庭對我的莫大支持,妻子劉玉娟幫我收集資料,幫忙完成了此書的大部分整理工作,兒子們傾聽我的思路想法,沒有他們,我也沒有毅力完成整本書,謝謝他們。

謝孟軍
2013年4月于上海
內容簡介:

本書介紹如何使用Go語言編寫Web,包含了Go語言的入門、Web相關的一些知識、Go中如何處理Web的各方面設計(表單、session、cookie等)、數據庫以及如何編寫Go Web應用等相關知識。通過本書的學習能夠讓讀者了解Go的運行機制,如何用Go編寫Web應用,以及Go的應用程序的部署和維護等,讓讀者對整個的Go的開發了如指掌

目錄:

第1章 GO語言環境配置 1
1.1 Go語言安裝 1
Go語言的三種安裝方式 1
Go語言源碼安裝 2
Go語言標準包安裝 2
第三方工具安裝 5
1.2 GOPATH與工作空間 5
GOPATH設置 5
應用目錄結構 6
編譯應用 7
獲取遠程包 8
程序的整體結構 8
1.3 Go語言命令 9
Go語言命令 9
go build 10
go clean 10
go fmt 11
go get 11
go install 12
go test 12
go doc 12
其他命令 12
1.4 Go語言開發工具 13
LiteIDE 13
Sublime Text 16
Vim 19
Emacs 20
Eclipse 23
IntelliJ IDEA 26
1.5 總結 29
第2章 Go語言基礎 30
2.1 你好,Go 30
程序 30
詳解 31
結論 31
2.2 Go語言基礎 32
定義變量 32
常量 33
內置基礎類型 33
一些技巧 36
array、slice、map 37
2.3 流程和函數 44
流程控制 44
函數 48
2.4 struct類型 57
struct 57
2.5 面向對象 62
method 62
2.6 interface 70
interface 70
2.7 并發 80
goroutine 80
channels 81
Buffered Channels 82
Range和Close 83
Select 84
超時 85
runtime goroutine 85
2.8 總結 85
第3章 Web基礎 87
3.1 Web工作方式 87
URL和DNS解析 88
HTTP協議詳解 90
請求實例 95
3.2 GO語言搭建一個Web服務器 95
http包建立Web服務器 96
3.3 Go語言如何使Web工作 97
Web工作方式的幾個概念 97
分析http包運行機制 98
3.4 Go語言的http包詳解 100
Conn的goroutine 100
ServeMux的自定義 100
Go語言代碼的執行流程 102
3.5 總結 103
第4章 表單 104
4.1 處理表單的輸入 104
4.2 驗證表單的輸入 107
必填字段 107
數字 108
中文 108
英文 109
電子郵件地址 109
手機號碼 109
下拉菜單 109
單選按鈕 110
復選框 110
日期和時間 111
身份證號碼 111
4.3 預防跨站腳本 112
4.4 防止多次遞交表單 113
4.5 處理文件上傳 115
客戶端上傳文件 117
4.6 總結 119
第5章 訪問數據庫 120
5.1 database/sql接口 120
sql.Register 120
driver.Driver 121
driver.Conn 122
driver.Stmt 122
driver.Tx 123
driver.Execer 123
driver.Result 123
driver.Rows 123
driver.RowsAffected 124
driver.Value 124
driver.ValueConverter 124
driver.Valuer 125
database/sql 125
5.2 使用MySQL數據庫 125
MySQL驅動 126
示例代碼 126
5.3 使用SQLite數據庫 129
驅動 129
實例代碼 129
5.4 使用PostgreSQL數據庫 131
驅動 131
實例代碼 132
5.5 使用beedb庫進行ORM開發 134
安裝 134
如何初始化 135
插入數據 136
更新數據 136
查詢數據 137
刪除數據 138
關聯查詢 138
Group By和Having 139
進一步的發展 139
5.6 NOSQL數據庫操作 139
redis 140
MongoDB 141
5.7 總結 143
第6章 Session和數據存儲 144
6.1 Session和Cookie 144
Cookie 146
Session 147
小結 148
6.2 Go語言如何使用Session 148
Session創建過程 149
Go語言實現Session管理 149
6.3 Session存儲 154
6.4 預防Session劫持 157
Session劫持過程 157
Session劫持防范 160
6.5 總結 161
第7章 文本處理 162
7.1 XML處理 162
解析XML 163
輸出XML 165
7.2 JSON處理 168
解析JSON 168
生成JSON 171
7.3 正則處理 173
通過正則判斷是否匹配 174
通過正則獲取內容 175
7.4 模板處理 179
什么是模板 179
Go語言模板使用 180
模板中如何插入數據 180
Must操作 186
嵌套模板 186
小結 188
7.5 文件操作 188
目錄操作 188
文件操作 189
7.6 字符串處理 191
字符串操作 191
字符串轉換 193
7.7 總結 194
第8章 Web服務 195
8.1 Socket編程 195
什么是Socket 196
Socket如何通信 196
Socket基礎知識 197
TCP Socket 198
UDP Socket 202
小結 204
8.2 WebSocket 204
WebSocket原理 205
Go語言實現WebSocket 206
8.3 REST 209
什么是REST 209
RESTful的實現 211
小結 213
8.4 RPC 213
RPC工作原理 214
Go RPC 215
小結 223
8.5 總結 223
第9章 安全與加密 224
9.1 預防CSRF攻擊 224
什么是CSRF 224
CSRF的原理 225
如何預防CSRF 226
總結 227
9.2 確保輸入過濾 228
識別數據 228
過濾數據 228
區分過濾數據 229
小結 230
9.3 避免XSS攻擊 230
什么是XSS 230
XSS的原理 231
如何預防XSS 232
小結 232
9.4 避免SQL注入 232
什么是SQL注入 232
SQL注入實例 233
如何預防SQL注入 234
小結 234
9.5 存儲密碼 235
普通方案 235
進階方案 236
專家方案 237
總結 237
9.6 加密和解密數據 237
base64加解密 238
高級加解密 238
小結 240
9.7 總結 240
第10章 國際化和本地化 241
10.1 設置默認地區 241
什么是Locale 241
設置Locale 242
小結 244
10.2 本地化資源 244
本地化文本信息 244
本地化日期和時間 246
本地化貨幣值 246
本地化視圖和資源 247
小結 248
10.3 國際化站點 248
管理多個本地包 248
自動加載本地包 249
template mapfunc 250
小結 252
10.4 總結 252
第11章 錯誤處理,調試和測試 253
11.1 錯誤處理 253
Error類型 254
自定義error 255
錯誤處理 256
小結 258
11.2 使用GDB調試 258
GDB調試簡介 259
常用命令 259
調試過程 261
小結 264
11.3 Go語言怎么寫測試用例 264
如何編寫測試用例 265
如何編寫壓力測試 267
小結 268
11.4 總結 268
第12章 部署與維護 269
12.1 應用日志 269
seelog介紹 269
基于seelog的自定義日志處理 270
發生錯誤發送郵件 272
使用應用日志 273
小結 273
12.2 網站錯誤處理 273
錯誤處理的目標 274
如何處理錯誤 275
如何處理異常 277
小結 277
12.3 應用部署 278
daemon 278
Supervisord 280
小結 282
12.4 備份和恢復 283
應用備份 283
MySQL備份 284
MySQL恢復 287
redis備份 287
redis恢復 287
小結 287
12.5 總結 287
第13章 如何設計一個Web框架 289
13.1 項目規劃 289
gopath以及項目設置 289
應用程序流程圖 290
目錄結構 291
框架設計 291
小結 291
13.2 自定義路由器設計 292
HTTP路由 292
默認的路由實現 292
beego框架路由實現 293
13.4 日志和配置設計 298
日志和配置的重要性 298
beego的日志設計 298
beego的配置設計 301
應用指南 303
13.5 實現博客的增刪改 303
博客目錄 304
博客路由 304
數據庫結構 304
控制器 305
model層 306
view層 307
13.6 總結 309
第14章 擴展Web框架 310
14.1 靜態文件支持 310
beego靜態文件實現和設置 310
Bootstrap集成 311
14.2 Session支持 312
Session集成 312
Session使用 314
14.3 表單及驗證支持 315
表單和驗證 315
表單類型 316
表單驗證 316
14.4 用戶認證 318
HTTP Basic和HTTP Digest認證 318
oauth和oauth2的認證 319
自定義認證 321
14.5 多語言支持 324
i18n集成 324
多語言開發使用 325
14.6 pprof支持 326
beego支持pprof 326
使用入門 327
14.7 小結 329
附錄A 參考資料 330
序: