|
-- 會員 / 註冊 --
|
|
|
|
Go Web編程 ( 簡體 字) |
作者:謝孟軍 | 類別:1. -> 程式設計 -> Go語言 |
譯者: |
出版社:電子工業出版社 | 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 |
序: |
|