描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787121408007
本书涵盖从Go语言入门到Go Web开发高手所需的核心知识、方法和技巧,共分4篇。
第1篇“Go语言入门”,介绍Go语言的基础语法,既使没有Go语言基础的读者也可以学习本书。
第2篇“Go Web基础入门”,包括3章:Go Web开发基础、接收和处理Go Web请求、用Go访问数据库。本篇能使读者快速掌握用Go语言进行Web开发的基础知识。
第3篇“Go Web高级应用”,包括4章:Go高级网络编程、Go文件处理、Go并发编程、Go RESTful API接口开发。本篇能使读者用Go语言快速开发各种Web应用。
第4篇“Go Web项目实战”,包括2章:【实战】开发一个B2C电子商务系统、【实战】用Docker部署Go Web应用。本篇通过实例介绍了开发一个B2C电子商务系统的全过程,包括开发商品展示、购物车、结算、支付等模块的详细讲解,让读者真正了解大型B2C电子商务系统的架构原理及实现方法,并开放了源代码;用Docker实战部署Go Web应用,帮助读者向Go Web开发“精通”级别迈进。
本书可作为Go语言初学者、Web开发工程师的自学用书,也可作为培训机构和相关院校的教材。
序
一
回望时光,从2009年11月 Go语言个版本发布时起,我就开始持续关注Go语言。当时是因为Go语言是Google公司开发的一门语言,所以我便格外关注。结果,从看到Go语言的天起,我就被这门语言深深吸引了。
毕业后我进入苏宁易购从事软件开发,在平时工作中,使用Java和PHP编程居多。后来公司的一些项目开发也陆续使用过Python、C#等开发语言。对比之下,Go语言更加简洁、高效、优雅。所以在工作之余,我一直在学习研究Go语言,并尝试开发了一些小项目。
2015年8月Go 1.5发布,这个版本被认为是历史性的。完全移除C语言部分,实现Go语言自举,这让我真正地意识到Go语言在未来有可能取代C语言。恰好公司的项目开始尝试用Go语言进行重构,从此我开始深度使用Go语言进行项目实战开发。在使用Go语言重构之后,我们公司的开发效率得到了极大的提升。
二
由于喜欢开源,从2009年至今,我研究了大量的开源代码,其中包括Java、PHP、Python、Go、Rust、Docker、Vue、Spring、Flutter等各种流行的源码,并将一些心得在我的个人博客上面发表。后来我也创立了个人公众号“源码大数据”来将好的算法、流行的框架和代码进行分享。遗憾的是由于这几年平时比较忙,公众号很少打理。(之后我会花更多时间来分享精品知识和源码,感兴趣的读者可以关注一下。)
近几年我在工作之余编写了大量Go语言开源项目,并发布其中一小部分到码云和GitHub上,其中有代表性的是:(1)Go支付合集;(2)Go汉语拼音合集包;(3)Go验证码合集;(4)PHP微信支付合集;(5)Go-WiFi智能插头。读者可以去GitHub网站上按名称搜索。
三
由于我的部分Go语言开源项目深受Go语言社区的欢迎,加上市场上关于Go Web开发的书很少,且书中很少有实战的知识。所以我想写一本Go语言实战方面的书来回馈Go语言社区的朋友们,也希望给更多的人以帮助。于是,2019年下半年我便在工作之余开启了本书的写作之旅。
到了2020年,由于公司项目比较紧,写书的事便一直搁浅。直到2020年7月,电子工业出版社的吴宏伟编辑找到我,邀请我写书。恰好正在写第2章,我想这应该是和吴宏伟编辑有缘吧,便欣然答应。从此我开始舍弃的业余时间,全力写作。
特别感谢吴宏伟编辑,在我写书过程中他提出了许多宝贵的意见和建议,并和我反复沟通、修改。经过反复修改打磨,咬文嚼字,本书才得以完稿。
四
特别感谢Go语言社区的所有的贡献者,没有他们的无私奉献,就没有Go语言社区的繁荣。仅以此书献给所有喜欢Go语言的朋友们。
后,我要感谢对我20多年的学习生涯产生重要影响的老师、长辈和家人,没有他们的影响,我就不会写出这本书。
感谢我的秀安叔叔,他的求知精神深深影响到我,同时他的书法和绘画作品对我影响也很大。是他在我9岁时,告诉我只有读书才能改变我的命运,让我从此更加专注于学习。
感谢廖邦遐先生,他花费近10年主持编撰出了近800页的《廖氏宗谱》,让我很敬佩,也让我坚定了写作本书的决心。
感谢我从幼儿园到大学的所有的老师,是他们把我带进知识的神圣殿堂。包括丁年平老师、赵广成老师、侯春燕老师、谭联举老师、黄向党老师、陈代全老师、孟祥斌博士、祁晓玲教授等对我的学习和思维方式都产生了很大的影响。
特别感谢侯红锦老师,是她开启我英语学习生涯,让我爱上英语。是她无微不至的关心和帮助,开启我求知的热情,我希望我永远是她的骄傲。
特别感谢高中班主任兼语文老师任佑平老师,他的敬业精神深深地让我敬佩。他在我们高中毕业时,赠送我们班的同学每人一本《老人与海》,教会我要勇敢地面对社会的大浪。
感谢我的姐姐秋林,小时候她教我识字、陪我学习,共同进步,对我小时候的学习和思维产生了重要影响。
感谢我的爸爸秀刚、妈妈克平。生为农民的他们,有着中国农民朴质的勤劳精神。他们生我养我,20年如一日,送我读完大学,在我心中他们很伟大。
感谢我的妻子清荷,我的知音知己。学汉语言文学的她让我熟读各种文学著作,也因此爱上写作。在她的影响下,我熟读《道德经》等经典文学著作,让我在展翅翱翔的同时懂得保持谦卑和知进退。在我写作期间,是她在背后默默地支持和付出,才使得这本书能够顺利完稿。
廖显东
2021.01.15 于成都
/////
前言
Go语言是Google于2009年开源的一门编程语言。它可以在不损失应用程序性能的情况下极大地降低代码的复杂性。相比于其他编程语言,简洁、快速、安全、并行、有趣、开源、内存管理、数组安全、编译迅速是其特色。
Go语言在设计之初就被定位为“运行在Web服务器、存储集群或类似用途的巨型中央服务器中的系统编程语言”,在云计算、Web高并发开发领域中具有无可比拟的优势。Go语言在高性能分布式系统、服务器编程、分布式系统开发、云平台开发、区块链开发等领域有着广泛使用。
近几年,很多公司(特别是云计算公司)开始用Go重构他们的基础架构,也有很多公司直接采用Go进行业务开发。Docker、Kubernetes等重量级应用的持续火热,更是让Go语言成为当下热门编程语言之一。
1. 本书特色
本书聚焦Go Web开发领域,对Go Web知识进行全面深入地讲解。本书有如下特色:
(1)一线技术,突出实战。
本书中穿插了大量的实战内容,且所有代码采用目前的Go版本(1.15.3)编写。
(2)精雕细琢,阅读性强。
全书的语言经过多次打磨,力求精确。同时注重阅读体验,让没有任何基础的读者也可以很轻松地读懂本书。
(3)零基础入门,循序渐进,让读者快速从菜鸟向实战高手迈进。
本书以Go入门级程序员为主要对象,初级、中级、高级程序员都可以从书中学到干货。先介绍Go的基础,然后介绍Go Web的基础,介绍Go Web的高级应用,介绍B2C电子商务系统实战开发,后介绍应用的Docker实战部署,真正帮助读者从基础入门向开发高手迈进。
(4)极客思维,极致效率;
本书以极客思维深入Go语言底层进行探究,帮助读者了解底层的原理。全书言简意赅,以帮助读者提升开发效率为导向,同时尽可能帮助读者缩短阅读本书的时间。
(5)由易到难,重点和难点标注并重点解析。
本书编排由易到难,内容基本覆盖Go Web的主流前沿技术。同时对重点和难点进行重点讲解,对易错点和注意点进行了提示说明,帮助读者克服学习过程中的困难。
(6)突出实战,快速突击。
本书的实例代码绝大部分都是来自于的企业实战项目。购买本书的读者可以通过网络下载书中的所有的源代码,下载后即可运行,通过实践来加深理解。
(7)实战方案,可直接二次开发进行实战部署。
本书以实战为主,所有的示例代码拿来即可运行。特别是第9章,购买本书的读者可以直接获得B2C电子商务系统的全部源代码。可以直接对其进行二次开发,用于自己的项目。读者购买本书不仅可以学习本书的各种知识,也相当于购买一个版的Go语言电商系统解决方案及项目源码。
2. 阅读本书,您能学到什么
? 系统学习Go语言基础语法;
? 掌握HTTP基本原理;
? 掌握Go Web 底层原理;
? 掌握Go访问MySQL、Redis、MongoDB的方法和技巧;
? 掌握Gorm、Beego ORM的使用方法和技巧;
? 掌握Go Socket编程的方法和技巧;
? 掌握用gRPC实现微服务调用;
? 掌握Go 文件处理的方法和技巧;
? 掌握Go生成与解析JSON、XML文件的方法和技巧;
? 掌握Go正则表达式的处理方法和技巧;
? 掌握Go 日志处理的方法和技巧;
? 掌握从数据库中导出一个CSV文件的实战法;
? 掌握Go并发编程的底层原理;
? 掌握常见Go并发Web应用的实战开发方法和技巧;
? 掌握Go开发并发的Web爬虫的方法和技巧;
? 掌握Gin框架、Beego框架的使用方法和技巧;
? 掌握流行架构风格RESTful API接口的开发;
? 掌握用Go开发OAuth2.0接口的技巧;
? 掌握Elasticsearch的使用方法;
? 掌握微信支付、支付宝支付的接口对接方法;
? 掌握用Go语言开发B2C电子商务系统的整个流程方案及源码;
? 掌握Docker实战部署方法;
? 掌握Docker Compose实战部署方法。
希望通过本书的学习,能够让读者快速、系统地掌握Go Web开发的各种方法和技巧,帮助读者在Go 语言Web开发中,快速从基础入门向精通级的实战派高手迈进。
3. 读者对象
本书既适合Go语言初学者,也适合想进一步提升的中高级Go语言开发者。初级、中级、高级开发人员都能从本书学到干货。
本书读者对象如下:
初学编程的自学者; 培训机构的老师和学员;
Go语言初学者; 相关专业的大学毕业学生;
Go语言中高级开发人员; Web前端开发人员;
Web开发工程师; 测试工程师;
编程爱好者; DevOps运维人员;
高等院校的老师和学生; Web中高级开发人员。
4. 技术交流
如果读者在阅读本书的过程中有任何疑问,请用手机微信扫描右侧的二维码,关注“源码大数据”公众号,输入读者遇到的问题,作者会尽快与读者进行交流及回复。
关注“源码大数据”公众号后输入“go web源码”,即可获得本书源代码、学习资源、面试题库等。
读者也可以加入QQ群(QQ群号码:771844527)进行交流沟通,作者会尽快进行回复。
尽管作者在本书写作过程中尽可能地追求严谨,但仍难免有纰漏之处,欢迎读者通过“源码大数据”公众号或者QQ群等方式批评与指正。
评论
还没有评论。