登入帳戶  | 訂單查詢  | 購物車/收銀台(0) | 在線留言板  | 付款方式  | 聯絡我們  | 運費計算  | 幫助中心 |  加入書簽
會員登入   新用戶註冊
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2023年度TOP分類閱讀雜誌 香港/國際用戶
最新/最熱/最齊全的簡體書網 品種:超過100萬種書,正品正价,放心網購,悭钱省心 送貨:速遞 / 物流,時效:出貨後2-4日

2024年10月出版新書

2024年09月出版新書

2024年08月出版新書

2024年07月出版新書

2024年06月出版新書

2024年05月出版新書

2024年04月出版新書

2024年03月出版新書

2024年02月出版新書

2024年01月出版新書

2023年12月出版新書

2023年11月出版新書

2023年10月出版新書

2023年09月出版新書

『簡體書』Go Web编程(Go语言性能好、语法简单、开发效率高!)

書城自編碼: 2058625
分類: 簡體書→大陸圖書→計算機/網絡程序設計
作者: 谢孟军
國際書號(ISBN): 9787121200915
出版社: 电子工业出版社
出版日期: 2013-06-01
版次: 1 印次: 1
頁數/字數: 329/330000
書度/開本: 16开 釘裝: 平装

售價:NT$ 605

我要買

share:

** 我創建的書架 **
未登入.



新書推薦:
中国古代妇女生活(中国古代生活丛书)
《 中国古代妇女生活(中国古代生活丛书) 》

售價:NT$ 214.0
你的认知正在阻碍你
《 你的认知正在阻碍你 》

售價:NT$ 296.0
我们身边的小鸟朋友:手绘观鸟笔记
《 我们身边的小鸟朋友:手绘观鸟笔记 》

售價:NT$ 356.0
拯救免疫失衡
《 拯救免疫失衡 》

售價:NT$ 254.0
收尸人
《 收尸人 》

售價:NT$ 332.0
大模型应用开发:RAG入门与实战
《 大模型应用开发:RAG入门与实战 》

售價:NT$ 407.0
不挨饿快速瘦的减脂餐
《 不挨饿快速瘦的减脂餐 》

售價:NT$ 305.0
形而上学与存在论之间:费希特知识学研究(守望者)(德国古典哲学研究译丛)
《 形而上学与存在论之间:费希特知识学研究(守望者)(德国古典哲学研究译丛) 》

售價:NT$ 504.0

建議一齊購買:

+

NT$ 531
《 第一本Docker书 》
+

NT$ 801
《 Go并发编程实战 》
+

NT$ 642
《 Go语言程序设计 》
+

NT$ 921
《 Clojure编程(国内首部Clojure技术书) 》
編輯推薦:
 Go语言性能好、语法简单、开发效率高!一起来探索Go语言吧!
特别适合从事PHPPythonRubyNode.js等Web开发的读者,通过《Go
Web编程》可以了解编译型语言怎么写Web应用开发,系统底层怎么进行网络通信。
还适合从事CC++Java等系统级别开发的读者,通过《Go
Web编程》可以了解到Web开发的一些知识,例如,如何处理表单,如何进行用户认证以及SessionCookie等各方面的Web应用。
內容簡介:
《Go
Web编程》介绍如何用Go语言进行Web应用的开发,将Go语言的特性与Web开发实战组合到一起,帮读者成功地构建跨平台的应用程序,节省Go语言开发Web的宝贵时间。有了这些针对真实问题的解决方案放在手边,大多数编程难题都会迎刃而解。
在《Go
Web编程》中,读者可以更加方便地找到各种编程问题的解决方案,内容涵盖文本处理、表单处理、Session管理、数据库交互、加解密、国际化和标准化,以及程序的部署维护等运维方面的知识,最后还介绍了一个快速开发的框架帮助您迅速进入Go语言的Web开发。
關於作者:
谢孟军,网名ASTA谢,现就职于盛大云,高级研究员,技术经理,主要从事盛大云分发的系统研发工作,努力为盛大游戏、盛大文学、酷六等提供更好的CDN服务。热爱技术,尤其关注实现服务器端高性能、高可用等相关技术。开发了beego、beedb等各类基于Go语言的开源框架和库,致力于Go语言的推广和研究。
目錄
第1章 GO语言环境配置
 1.1 Go语言安装
Go语言的三种安装方式
Go语言源码安装
Go语言标准包安装
第三方工具安装
 1.2 GOPATH与工作空间
GOPATH设置
应用目录结构
编译应用
获取远程包
程序的整体结构
 1.3 Go语言命令
Go语言命令
go build
go clean
go fmt
go get
go install
go test
go doc
其他命令
 1.4 Go语言开发工具
LiteIDE
Sublime Text
Vim
Emacs
Eclipse
IntelliJ IDEA
 1.5 总结 
第2章 Go语言基础
 2.1 你好,Go
程序
详解
小结
 2.2 Go语言基础
定义变量
常量
内置基础类型
一些技巧
array、slice、map
 2.3 流程和函数
流程控制
函数
 2.4 struct类型
struct
 2.5 面向对象
method
 2.6 interface
interface
 2.7 并发
goroutine
channels
Buffered Channels
Range和Close
Select
超时
runtime goroutine
 2.8 总结
第3章 Web基础
 3.1 Web工作方式
URL和DNS解析
HTTP协议详解
请求实例
 3.2 GO语言搭建一个Web服务器
http包建立Web服务器
 3.3 Go语言如何使Web工作
Web工作方式的几个概念
分析http包运行机制
 3.4 Go语言的http包详解
Conn的goroutine
ServeMux的自定义
Go语言代码的执行流程
 3.5 总结
第4章 表单
 4.1 处理表单的输入
 4.2 验证表单的输入
必填字段
数字
中文
英文
电子邮件地址
手机号码
下拉菜单
单选按钮
复选框
日期和时间
身份证号码
 4.3 预防跨站脚本
 4.4 防止多次递交表单
 4.5 处理文件上传
客户端上传文件
 4.6 总结
第5章 访问数据库
 5.1 databasesql接口
sql.Register
driver.Driver
driver.Conn
driver.Stmt
driver.Tx
driver.Execer
driver.Result
driver.Rows
driver.RowsAffected
driver.Value
driver.ValueConverter
driver.Valuer
databasesql
 5.2 使用MySQL数据库
MySQL驱动
示例代码
 5.3 使用SQLite数据库
驱动
实例代码
 5.4 使用PostgreSQL数据库
驱动
实例代码
 5.5 使用beedb库进行ORM开发
安装
如何初始化
插入数据
更新数据
查询数据
删除数据
关联查询
Group By和Having
进一步的发展
 5.6 NOSQL数据库操作
redis
MongoDB
 5.7 总结
第6章 Session和数据存储
 6.1 Session和Cookie
Cookie
Session
小结
 6.2 Go语言如何使用Session
Session创建过程
Go语言实现Session管理
 6.3 Session存储
 6.4 预防Session劫持
Session劫持过程
Session劫持防范
 6.5 总结
第7章 文本处理
 7.1 XML处理
解析XML
输出XML
 7.2 JSON处理
解析JSON
生成JSON
 7.3 正则处理
通过正则判断是否匹配
通过正则获取内容
 7.4 模板处理
什么是模板
Go语言模板使用
模板中如何插入数据
Must操作
嵌套模板
小结
 7.5 文件操作
目录操作
文件操作
 7.6 字符串处理
字符串操作
字符串转换
 7.7 总结
第8章 Web服务
 8.1 Socket编程
什么是Socket
Socket如何通信
Socket基础知识
TCP Socket
UDP Socket
小结
 8.2 WebSocket
WebSocket原理
Go语言实现WebSocket
 8.3 REST
什么是REST
RESTful的实现
小结
 8.4 RPC
RPC工作原理
Go RPC
小结
 8.5 总结
第9章 安全与加密
 9.1 预防CSRF攻击
什么是CSRF
CSRF的原理
如何预防CSRF
总结
 9.2 确保输入过滤
识别数据
过滤数据
区分过滤数据
小结
 9.3 避免XSS攻击
什么是XSS
XSS的原理
如何预防XSS
小结
 9.4 避免SQL注入
什么是SQL注入
SQL注入实例
如何预防SQL注入
小结
 9.5 存储密码
普通方案
进阶方案
专家方案
总结
 9.6 加密和解密数据
base64加解密
高级加解密
小结
 9.7 总结
第10章 国际化和本地化
 10.1 设置默认地区
什么是Locale
设置Locale
小结
 10.2 本地化资源
本地化文本信息
本地化日期和时间
本地化货币值
本地化视图和资源
小结
 10.3 国际化站点
管理多个本地包
自动加载本地包
template mapfunc
小结
 10.4 总结
第11章 错误处理,调试和测试
 11.1 错误处理
Error类型
自定义error
错误处理
小结
 11.2 使用GDB调试
GDB调试简介
常用命令
调试过程
小结
 11.3 Go语言怎么写测试用例
如何编写测试用例
如何编写压力测试
小结
 11.4 总结
第12章 部署与维护
 12.1 应用日志
seelog介绍
基于seelog的自定义日志处理
发生错误发送邮件
使用应用日志
小结
 12.2 网站错误处理
错误处理的目标
如何处理错误
如何处理异常
小结
 12.3 应用部署
daemon
Supervisord
小结
 12.4 备份和恢复
应用备份
MySQL备份
MySQL恢复
redis备份
redis恢复
小结
 12.5 总结
第13章 如何设计一个Web框架
 13.1 项目规划
gopath以及项目设置
应用程序流程图
目录结构
框架设计
总结
 13.2 自定义路由器设计
HTTP路由
默认的路由实现
beego框架路由实现
 13.4 日志和配置设计
日志和配置的重要性
beego的日志设计
beego的配置设计
应用指南
 13.5 实现博客的增删改
博客目录
博客路由
数据库结构
控制器
model层
view层
 13.6 总结
第14章 扩展Web框架
 14.1 静态文件支持
beego静态文件实现和设置
Bootstrap集成
 14.2 Session支持
Session集成
Session使用
 14.3 表单及验证支持
表单和验证
表单类型
表单验证
 14.4 用户认证
HTTP Basic和HTTP Digest认证
oauth和oauth2的认证
自定义认证
 14.5 多语言支持
i18n集成
多语言开发使用
 14.6 pprof支持
beego支持pprof 使用入门
 14.7 小结
 附录A 参考资料
內容試閱
推荐序一
很高兴听到谢孟军的《Go
Web编程》要出版。当谢孟军找我写推荐序时,尽管工作非常繁忙,我还是一口应承下来了。原因很简单,作为国内首家完全采用Go语言开发的公司,七牛非常乐意见到Go语言社区的繁荣。去年在Google
Trends上Golang关键字的搜索指数,中国排在全球首位(比美国多3倍),这是整个中国Go语言社区共同努力的结果。
远在2007年第2届ECUG大会,我讲了《我为什么选择了Erlang》的议题。其中提到了我对未来软件产业趋势的判断:
? 存储与计算向服务端转移
?
从“PC单机”到“强悍的服务器+多元化的终端”(手机、PC、PDA、电视机顶盒、车载终端)

这个趋势判断对我职业生涯的影响非常重大。它促使我放弃了近10年的桌面开发经验(包括大学时期),转向服务端开发。正如我在《我为什么选择了Erlang》中建议的那样:
? 要么就不写程序,要么就写服务器端的程序
?
当然,你也可以去撰写移动终端设备上的代码,在PC平台上做开发的空间很小
于是,我开始了长达四、五年之久的服务端开发最佳实践的探索。直到有一天,我遇到了Go语言。

我从来不认为自己是一个预言师,但关注过我的人可能都知道,我在新浪微博、《Go语言编程》一书中都非常高调地下了一个论断:Go语言将超过C语言、Java,成为未来十年最流行的语言。

为什么我可以如此坚定地相信,选择Go语言不会有错,并且相信Go语言会成为未来十年最流行的语言?除了Go语言的并发编程模型深得我心外,Go语言的各种语法特性显得那么深思熟虑、卓绝不凡,其对软件系统架构的领悟,让我深觉无法望其项背,处处带给我惊喜。
Go语言给我的第一个惊喜,是大道至简的设计哲学。

Go语言是非常简约的语言。简约的意思是少而精,少就是指数级的多。Go语言极力追求语言特性的最小化,如果某个语法特性只是少写几行代码,但对解决实际问题的难度不会产生本质的影响,那么这样的语法特性就不会被加入。Go语言更关心的是如何解决程序员开发上的心智负担。如何减少代码出错的机会,如何更容易写出高品质的代码,是Go语言设计时极度关心的问题。

Go语言追求显式表达。任何封装都是有漏洞的,最佳的表达方式就是用最直白的表达方式。所以也有人称Go语言为“所写即所得”的语言。

Go语言也是非常追求自然(nature)的语言。Go不只是提供极少的语言特性,并极力追求语言特性最自然的表达,也就是这些语法特性被设计成恰如多少人期望的那样,尽量避免争议。事实上Go语言的语法特性上的争议非常少,这些也让Go语言的入门门槛变得非常低。
Go语言给我的第二个惊喜,是最对胃口的并行支持。

我对服务端开发的探索,始于Erlang语言,并且认为Erlang风格并发模型的精髓是轻量级进程模型。然而Erlang除了语言本身不容易被程序员接受外,其基于进程邮箱做消息传递的并发编程模型也小有瑕疵。我曾经在C++中实现了一个名为CERL的网络库,刚开始在C++中完全模仿Erlang风格的并发编程手法,然而在我拿CERL库做云存储服务的实践中,发现了该编程模型的问题所在并做了相应的调整,这就是后来的CERL
2.0版本。有意思的是,CERL
2.0与Go语言的并行编程思路不谋而合。某种程度上来说,这种默契也是我创办七牛时,Go语言语法特性甚至都还没有完全稳定,我们技术选型就坚决地采纳了Go语言的重要原因。
Go语言给我的第三个惊喜,是interface。

Go语言的interface,并非是你在Java和C#中看到的interface,尽管看起来有点像。Go语言的interface是非侵入式的接口,具体表现在实现一个接口不需要显式地进行声明。不过,让我意外的不是Go语言的非侵入式接口,非侵入式接口只是我接受Go语言的基础。在接口(或契约)的表达上,我一直认为Java和C#这些主流的静态类型语言都走错了方向。C++的模板尽管机制复杂,但是走在了正确的方向上。C++0x(后来的C++11)呼声很高的concept提案被否,着实让不少人伤了心。但Go语言的interface远不是非侵入式接口那么简单,它是Go语言类型系统的纲,这表现在:
1.只要某个类型实现了接口要的方法,那么我们说该类型实现了此接口。该类型的对象可赋值给该接口。
2.作为1的推论,任何Go语言的内置对象都可以赋值给空接口interface{}。

3.支持接口查询。如果你曾经是Windows程序员,你会发现COM思想在Go语言中通过interface优雅呈现。并且Go语言吸收了其中最精华部分,而COM中对象生命周期管理的负担,却因为Go语言基于GC(垃圾回收机制)方式的内存管理而不复存在。
Go语言给我的第四个惊喜,是极度简化但完备的“面向对象编程(OOP)”方法。

Go语言废弃大量的OOP特性,如继承、构造析构函数、虚函数、函数重载、默认参数等,简化的符号访问权限控制、将隐藏的this指针改为显式定义的receiver对象。Go语言让我看到了OOP编程核心价值原来如此简单——只是多数人都无法看透。
Go语言带给我的第五个惊喜,是它的错误处理规范。
Go语言引入了内置的error类型及defer关键字来编写异常安全代码,让人拍案叫绝。下面这个例子,我在多个场合都提过。
f, err := os.Openfile
if err != nil {
...
error processing

return
  }
  deferf.Close

... process file data
Go语言带给我的第六个惊喜,是它功能的内聚。

一个最典型的案例是Go语言的组合功能。对于多数语言来说,组合只是形成复合类型的基本手段,这一点只要想想C语言的struct就清楚了。但Go语言引入了匿名组合的概念,它让其他语言原本需要引入继承这一新概念来完成事情,统一又到了组合这样的一个基础上。
在C++中,你需要这样定义一个派生类。
class Foo : public Base {
...
};
在Go语言中你只要
type Foo struct {
Base
...
}
更有甚者,Go语言的匿名组合允许组合一个指针。
type Foo struct {
*Base
...
}

这个功能可以实现C++中一个无比晦涩难懂的特性,叫“虚拟继承”。但同样的问题,换从组合角度来表达,直达问题的本质,清晰易懂。
Go语言带给我的第七个惊喜,是消除了堆与栈的边界。

在Go语言之前,程序员是清楚地知道哪些变量在栈上,哪些变量在堆上。堆与栈是基于现代计算机系统的基础工作模型上形成的概念,Go语言屏蔽了变量定义在堆还是栈上这样的物理结构,相当于封装了一个新的计算机工作模型。这一点看似与Go语言显式表达的设计哲学不太一致,但我个人认为这是一项了不起的工作,而且与Go语言的显式表达并不矛盾。Go语言强调的是对开发者的程序逻辑(语义)的显式表达,而非对计算机硬件结构的显示表达。对计算机硬件结构的高度抽象,将更有助于Go语言适应未来计算机硬件发展的变化。
Go语言带给我的第八个惊喜,是Go语言对C语言的支持。

可以这么说,Go语言是除了Objective-C、C++这两门以兼容C为基础目标的语言之外的所有语言中,对C语言支持最友善的一个。什么语言可以直接嵌入C代码?没有,除了Go语言。什么语言可以无缝调用C函数?没有,除了Go语言。对C语言的完美支持,是Go语言快速崛起的关键支撑。还有比C语言更让人觊觎的社区财富么?那是一个取之不尽的金矿。

总而言之,Go语言是一门非常具变革性的语言。尽管这四十多年来(从1970年C语言诞生开始算起)出现的语言非常之多,各有各的特色,让人眼花缭乱。但是我个人固执地认为,谈得上突破了C语言思想,将编程理念提高到一个新高度的,仅有Go语言而已。
Go语言很简单,但是具备极强的表现力。从目前的状态来说,Go语言主要关注服务器领域的开发,但这不会是Go语言的完整使命。
我们说Go语言适合服务端开发,仅仅是因为它的标准库支持方面,目前是向服务端开发倾斜:
? 网络库(包括socket、http、rpc等)
? 编码库(包括json、xml、gob等)
? 加密库(各种加密算法、摘要算法,极其全面)
? Web(包括template、html支持)
而作为桌面开发的常规组件:GDI和UI系统与事件处理,基本没有涉及。

尽管Go还很年轻,Go语言1.0版本在2012年3月底发布,到现在才1年多,然而Go语言已经得到了非常普遍的认同。在国外,有人甚至提出“Go语言将制霸云计算领域”。在国内,几乎所有你听到过名字的大公司(腾讯、********、京东、360、网易、新浪、金山、豆瓣等等),都有团队对Go做服务端开发进行了小范围的实践。这是不能不说是一个奇迹。
与之相反的是,因为年轻,Go语言的资料,尤其是中文资料极度匮乏。在这样的背景下,《Go
Web编程》这样一本有非常强的实践背景的图书出版了,这绝对是雪中送炭。
《Go
Web编程》围绕做一个Web服务相关的一个个问题域展开:表单处理、数据库、会话(Session)、安全、国际化和本地化、日志、部署与维护。最后,结合作者的实践,本书给出了一个参考的Web编程框架,以简化Web编程,提升开发效率。
无论是对那些只是听过Go语言而打算开始了解的朋友,还是对那些已经进行Go语言开发的朋友,本书都极具参考价值。
另外值得一提的是,除了《Go
Web编程》一书外,谢孟军也发起了Go语言标准库文档的翻译工作,这是一项艰苦的工作,但可以预期将对Go语言的发展起到重要作用,读者如果有意对开源贡献自己的一份力量,欢迎你能够积极参与其中。
七牛云存储CEO 许式伟
2013年4月

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 台灣用户 | 香港/海外用户
megBook.com.tw
Copyright (C) 2013 - 2024 (香港)大書城有限公司 All Rights Reserved.