新書推薦:
《
重返马赛渔场:社会规范与私人治理的局限
》
售價:HK$
69.4
《
日子慢慢向前,事事慢慢如愿
》
售價:HK$
55.8
《
场景供应链金融:将风口变成蓝海
》
售價:HK$
111.8
《
汗青堂丛书146·布鲁克王朝:一个英国家族在东南亚的百年统治
》
售價:HK$
91.8
《
人生是旷野啊
》
售價:HK$
72.8
《
甲骨文丛书· “安国之道”:英国的殖民情报系统及其在亚洲的扩张
》
售價:HK$
88.5
《
台北人(2024版)
》
售價:HK$
87.4
《
让孩子更有力量:赋权型家庭教育指南
》
售價:HK$
67.0
|
編輯推薦: |
Go语言高级开发与实战聚焦Go语言的高级开发技巧和应用实战。高级进阶、重点解析Go语言高级开发知识;源码再用,随书源码可直接二次开发进行实战部署。作者廖显东,高级软件架构师,全栈开发者,技术极客,Gopher,开源爱好者。对Go、Rust等流行开发语言有深入实践和研究。对大型电子商务系统开发、高并发架构、分布式架构、微服务、大数据、人工智能算法等领域有深入实践和研究。建议采用以线上销售为主、线上线下相结合的营销方式推广。
|
內容簡介: |
Go语言高级开发与实战聚焦Go语言的高级开发技巧和应用实战。《Go语言高级开发与实战 》共6章,分别为Go语言基础实战、Go语言高级编程技巧、Go Web编程、Go语言并发编程、分布式系统、Go语言秒杀系统实战。Go语言高级开发与实战简洁而不失技术深度,内容丰富全面,以极简的文字介绍了复杂的案例,是学习Go语言高级开发的实用教程。
Go语言高级开发与实战适合Go语言初学者、Go语言中高级开发人员、Web开发工程师阅读,还可作为大中专院校相关专业和培训学校师生的学习用书。
|
關於作者: |
廖显东
高级软件架构师,全栈开发者,技术极客,Gopher,开源爱好者。多年软件开发与团队管理经验,精通Java、C/C /C#、Python、PHP等开发语言。对Go、Rust等流行开发语言有深入实践和研究。对大型电子商务系统开发、高并发架构、分布式架构、微服务、大数据、人工智能算法等领域有深入实践和研究。
|
目錄:
|
目录
前言
Go语言基础实战/
1.1Go语言基础/
1.1.1基础语法/
1.1.2变量/
1.1.3常量/
1.1.4运算符/
1.1.5流程控制语句/
1.2字符串实战技巧/
1.2.1字符串基础/
1.2.2中文字符串的截取/
1.2.3按单词或字节反转字
符串/
1.2.4生成随机字符串/
1.2.5控制大小写/
1.2.6去除字符串首尾的空格/
1.2.7生成CSV数据/
1.2.8解析CSV数据/
1.2.9获取中文字符串/
1.2.10按指定函数分割字符串/
1.2.11合并与分割字符串/
1.2.12按照指定函数截取字
符串/
1.2.13【实战】生成可下载的CSV
文件/
1.2.14【实战】用Go运行Shell脚本
程序/
1.3数组和切片基础技巧/
1.3.1数组和切片基础/
1.3.2迭代处理数组/
1.3.3从数组中删除元素/
1.3.4将数组转换为字符串/
1.3.5检查某个值是否在数
组中/
1.3.6查找一个元素在数组中的
位置/
1.3.7查找数组中值或小值
元素/
1.3.8随机打乱数组/
1.3.9删除数组中重复的元素/
1.4数组高级技巧/
1.4.1一维数组的排序/
1.4.2二维数组的排序/
1.4.3多维数组声明/
1.4.4多维数组遍历/
1.4.5多维数组的查询/
1.4.6多维数组的修改/
1.4.7三维数组生成器/
1.4.8【实战】从数据库中获取数据并
进行合并处理和导出/
1.5map常见实战技巧/
1.5.1map基础/
1.5.2检查一个键是否在
map中/
1.5.3json与map互相转化/
1.5.4map排序示例/
1.5.5map高级使用技巧/
1.5.6map排序技巧/
1.5.7【实战】从数据库中获取数据
并导出特定CSV文件/
1.6结构体的使用技巧/
1.6.1结构体基础/
1.6.2结构体初始化/
1.6.3继承/
1.6.4结构体组合/
1.6.5匿名结构体/
1.6.6结构体嵌套/
1.6.7结构体字段标签/
1.6.8Go语言面向对象编程/
1.6.9【实战】模拟二维矢量移动
小游戏/
1.7接口常用技巧/
1.7.1接口的赋值/
1.7.2接口的查询/
1.7.3接口的组合/
1.7.4接口的常见应用/
1.7.5接口使用注意事项/
目录
Go语言高级开发与实战1.8Go语言模块管理/
1.9通道实战技巧/
1.9.1通道基础/
1.9.2创建定时通知/
1.9.3使用通道传送通道/
1.9.4检查通道的长度和容量/
1.9.5速率限制/
1.10回顾和启示/
Go语言高级编程技巧/
2.1函数与指针技巧/
2.1.1递归函数/
2.1.2匿名变量和匿名函数/
2.1.3指针/
2.1.4函数的参数传递/
2.1.5函数使用的常见
注意事项/
2.2反射应用技巧/
2.2.1反射原理/
2.2.2反射3大法则简介/
2.3Go语言编译/
2.3.1编译基础知识/
2.3.2Go语言编译原理/
2.3.3Go语言编译器入口/
2.3.4编译器调试/
2.4CGO编程技巧/
2.4.1CGO基础使用/
2.4.2CGO使用的问题和挑战/
2.5错误和异常处理技巧/
2.5.1错误和异常简介/
2.5.2错误处理的技巧/
2.5.3异常处理的技巧/
2.6密码学算法技巧/
2.6.1Hash算法/
2.6.2对称与非对称加密算法/
2.6.3椭圆曲线加密算法/
2.6.4字符串编码与解码/
2.7性能剖析与事件追踪/
2.7.1pprof性能剖析/
2.7.2trace事件追踪/
2.8回顾和启示/
Go Web编程/
3.1Go Web基础/
3.1.1Go语言接收HTTP请求/
3.1.2Go语言处理HTTP请求/
3.2Go HTTP2编程/
3.2.1HTTP简介/
3.2.2Go HTTP2编程实例/
3.3Go HTTP3编程/
3.3.1HTTP3简介/
3.3.2Go HTTP3编程实例/
3.4Go Socket编程/
3.4.1什么是Socket/
3.4.2TCP Socket/
3.4.3UDP Socket/
3.4.4【实战】用Socket开发简易
聊天程序/
3.5Go MySQL使用技巧/
3.5.1Go 使用MySQL/
3.5.2MySQL常见ORM/
3.6Go Redis使用技巧/
3.6.1Go Redis常见处理技巧/
3.6.2使用Go Redis实现排行榜
功能/
3.7Go gRPC使用/
3.7.1什么是gRPC/
3.7.2Go gRPC的使用/
3.8【实战】使用gRPC开发一个简易分
布式爬虫系统/
3.9回顾和启示/
Go语言并发编程/
4.1并发编程基础/
4.2计算机常见并发模型/
4.2.1线程和锁/
4.2.2演员模型/
4.2.3通信顺序进程/
4.3Go语言并发模型/
4.4Go语言常见并发设计模式/
4.4.1屏障模式/
4.4.2未来模式/
4.4.3管道模式/
4.4.4扇出和扇入模式/
4.4.5协程池模式/
4.4.6发布-订阅模式/
4.5同步常用技巧/
4.5.1竞态/
4.5.2互斥锁/
4.5.3读写互斥锁/
4.5.4只执行一次/
4.5.5等待组/
4.5.6竞态检测器/
4.5.7并发安全字典/
4.6goroutine使用技巧/
4.6.1限制并发数量/
4.6.2节拍器/
4.6.3使用select多路复用/
4.7【实战】开发一个并发任务
系统/
4.8回顾和启示/
分布式系统/
5.1分布式系统原理/
5.1.1什么是分布式系统/
5.1.2分布式系统的常见一致性
算法/
5.2负载均衡简介/
5.3常见负载均衡算法/
5.3.1轮询调度算法/
5.3.2随机算法/
5.3.3一致性哈希算法/
5.3.4键值范围算法/
5.4分布式锁/
5.4.1分布式锁简介/
5.4.2基于MySQL数据库表实现
分布式锁/
5.4.3用ZooKeeper实现分布
式锁/
5.4.4使用Redis的SETNX实现
分布式锁/
5.4.5使用etcd实现分布式锁/
5.4.5分布式锁的选择/
5.5Go实现常见的分布式应用/
5.5.1用Snowflake框架生成分布
式ID/
5.5.2Go 语言实现 Paxos一致性
算法/
5.6Go语言常见分布式框架/
5.6.1Go Micro框架/
5.6.2Consul框架/
5.7回顾和启示/
Go语言秒杀
|
內容試閱:
|
前言
Go语言简介
Go语言是Google于2009年开源的一门新的系统编程语言,可以在不损失应用程序性能的情况下极大地降低代码的复杂性。相比其他编程语言,简洁、快速、安全、并行、有趣、开源、编译迅速是其特色。Go语言在高性能分布式系统、服务器编程、分布式系统开发、云平台开发、区块链开发等领域有广泛应用。近几年,很多公司,特别是云计算公司开始用Go语言重构它们的基础架构,很多都是直接采用Go语言进行架构开发。特别是Docker、Kubernetes等重量级应用的持续火热,更是让Go语言成为当下热门的编程语言之一。
为什么写这Go语言高级开发与实战
由于喜欢开源,从2009年至今,编者研究了大量的开源代码,其中包括C、Java、PHP、Python、Go、Rust、Docker、Vue、Spring、Flutter等各种流行的源码,并创立“源码大数据”公众号分享部分算法和心得。
近几年,编者在工作之余编写了大量Go语言开源项目,并发布了其中一小部分到“码云”和GitHub上,部分开源项目在社区深受欢迎。由于市场上关于Go语言高级开发的书不多,特别是讲解分布式和高并发等相关的高级开发和技巧的书更少,所以编者想写一本有关Go语言高级开发与实战方面的书来回馈Go语言社区的朋友们。这既是对自己多年编程经验的总结,也希望给更多的人提供帮助。于是,2020年下半年,编者便在工作之余开启了本书的写作之旅。
Go语言高级开发与实战特色
Go语言高级开发与实战聚焦Go语言高级开发的知识进行全面深入的讲解,具有如下特色。
1.一线技术,突出实战
Go语言高级开发与实战以实战为核心,一线技术贯穿整Go语言高级开发与实战,所有代码均采用Go语言版本(1.16.2)编写。
2.零基础入门,循序渐进
初、中、高级程序员都可以从本书中学到干货。先从Go语言的基础学起,再学习Go语言的核心技术,然后学Go语言的高级应用,后再进行项目实战。全书从基础的知识讲解,一步一步到热门的秒杀系统实战开发,真正帮助读者实现从基础向开发实战高手的迈进。
前言
Go语言高级开发与实战3.极客思维,极致效率
Go语言高级开发与实战以极客思维来深入Go语言底层进行探究,帮助读者了解其背后的原理。全书言简意赅,以帮助读者提升开发效率为导向,同时尽可能帮助读者缩短阅读本书的时间。
4.由易到难,重难点标注并重点解析
Go语言高级开发与实战编排由易到难,内容基本覆盖Go 语言高级开发的主流前沿技术。同时对重难点进行重点讲解,对易错点和注意点进行了提示说明,帮助读者克服学习过程中的困难。
5.突出实战,关注前沿技术
Go语言高级开发与实战的实例代码绝大部分都是来自的企业实战项目。配套源代码可以直接下载运行,让读者通过实践来加深理解。
技术交流
读者在阅读本书的过程中有任何疑问,可扫描右侧二维码,关注“源码大数据”公众号,按照提示输入问题,编者会时间与读者进行交流回复;输入“go advanced”即可获得本书源代码、学习资源、面试题库等;输入“更多源码”,可以免费获得大量其他学习资源。
由于编者水平有限,书中难免有纰漏之处,欢迎读者批评指正。
致谢
感谢Go语言社区所有的贡献者,没有他们多年来对开源的贡献,就没有Go语言社区的繁荣。谨以此书献给所有喜欢Go语言的朋友们。
感谢我的妻子清荷,她在工作之余也参与了Go语言高级开发与实战的文字校正工作,同时,她给予了我许多意见和建议,并坚定地支持我,才使得我更加专注和坚定地写作。没有她的支持,这本书不会这么快完稿。
廖显东
|
|