序言和目录
WARNING: 翻译草稿 未定稿!
# Go中文文档
Go编程语言是一个开源项目,旨在提高程序员的工作效率。
Go表现力强、简洁、干净、高效。它的并发机制使编写程序变得容易,从而最大限度地利用多核和网络机器,而它的新型系统则实现了灵活和模块化的程序构建。Go可以快速编译为机器代码,但同时具有垃圾收集的便利性和运行时反射的功能。这是一种快速、静态类型化、编译的语言,感觉就像是一种动态类型化、解释的语言。
# 从此开始
# Go语言的下载和安装
有关下载和安装Go的说明。->
# 教程:从Hello World入门
一个简短的Hello,World入门教程。了解一些Go代码、工具、包和模块。->
# 教程:创建模块
介绍函数、错误处理、数组、映射、单元测试和编译的简短主题教程。->
# 教程:使用Go和Gin开发RESTful API
介绍了使用Go和GinWebFramework编写RESTful web服务API的基础知识。
# 编写Web应用程序
构建一个简单的web应用程序。
# 如何编写Go代码
本文档解释了如何在模块中开发一组简单的Go包,并展示了如何使用Go命令来构建和测试包。
# Go语言之旅
Go语言的互动介绍分为三个部分。第一部分介绍了基本语法和数据结构;第二部分讨论了方法和接口;第三部分介绍了Go的并发原语。每一节都以一些练习作为结束,这样你就可以练习你所学到的东西。您可以在线参观,也可以使用以下软件在本地安装:
$go get golang.org/x/tour
这将把编译后的二进制文件放在工作区的bin目录中。
# 使用和理解Go语言
# Go高效编程
一份文档,提供了编写清晰、惯用的Go代码的技巧。对于任何新的Go语言程序员来说都是必读之作。它扩充了tour和语言规范,这两个规范都应该先阅读。
# 编辑器插件和IDE
一份文档,总结了常用的编辑器插件和支持Go的IDE。
# Go语言调试
总结了Go程序中诊断问题的工具和方法。
# Go语言相关性管理
当您的代码使用外部包时,这些包(作为模块分发)将成为Go程序的依赖项。
# 访问数据库
# 教程:访问关系数据库
介绍使用Go和标准库中的数据库/sql包访问关系数据库的基本知识。
# 访问关系数据库
Go的数据访问功能概述。
# 操作数据库
您可以使用Go语言来执行数据库操作。打开带有数据库连接资源的操作对象后,该操作对象表示您管理的连接池。
# 执行不返回数据的SQL语句
对于可能更改数据库的SQL操作,包括SQL INSERT、UPDATE和DELETE,可以使用Exec方法。
# 查询数据
对于使用query或QueryRow方法从查询返回数据的SELECT语句。
# 使用准备好的报表
定义一个准备好的语句以供重复使用,可以避免每次代码执行数据库操作时重新创建语句的开销,从而帮助代码更快地运行。
# 执行数据库事务
sql.Tx导出表示事务特定语义的方法,包括Commit和Rollback,以及用于执行常见数据库操作的方法。
# 取消正在进行的数据库操作
使用context.context,您可以让应用程序的函数调用和服务提前停止工作,并在不再需要处理时返回错误。
# 管理连接
对于某些高级程序,您可能需要调整连接池参数或显式处理连接。
# 避免SQL注入风险
通过提供SQL参数值作为SQL包函数参数,可以避免SQL注入风险。
# 模块的开发
# 开发和发布模块
您可以将相关的包收集到模块中,然后发布模块供其他开发人员使用。本主题概述了模块的开发和发布。
# 模块发布和版本控制工作流程
当您开发供其他开发人员使用的模块时,您可以遵循有助于确保使用该模块的开发人员获得可靠、一致的体验的工作流程。本主题介绍了该工作流中的高级步骤。
# 管理模块源
当您开发要发布的模块以供其他人使用时,您可以通过遵循本主题中描述的存储库约定来帮助确保您的模块更易于其他开发人员使用。
# 开发主要版本更新
主要版本更新可能会对模块的用户造成很大的破坏,因为它包括中断更改并代表新模块。在本主题中了解更多信息。
# 发布模块
当你想让其他开发人员可以使用一个模块时,你可以发布它,以便Go工具可以看到它。发布模块后,导入其包的开发人员将能够通过运行go-get等命令来解决对模块的依赖。
# 模块版本编号
模块的开发人员使用模块版本号的每一部分来表示版本的稳定性和向后兼容性。对于每个新版本,模块的发布版本号具体反映了自上一版本以来模块更改的性质。
# 常见问题解答
Go语言常见问题解答。
# 参考资源
# 标准包文档
Go标准库的文档。
# Go命令文档
Go Cmd命令工具的文档。
# 语言规范
官方Go语言规范。
# Go模块参考
Go依赖关系管理系统的详细参考手册。
# go.mod文件引用
go.mod文件中包含的指令的参考。
# Go内存模型
一个指定条件的文档,在该条件下,可以保证在一个goroutine中读取一个变量,以观察在另一个gorroutine中写入同一变量所产生的值。
# 发布历史记录
Go版本之间的更改摘要。
# Go项目导游
GO项目导游。
- Go的第一个类函数
- 生成任意文本:一种马尔可夫链算法
- 通过通信共享内存
# Go语言博文精选
Go语言官方博客,以Go开发团队和嘉宾的深度文章为特色。
# Go语言
- JSON-RPC:接口的故事
- Go的定义语法
- Go语言错误处理的Defer, Panic, 和Recover
- Go并发模式:超时,继续
- Go语言切片:Slice的用法和内部结构
- GIF解码器:Go语言界面开发练习
- Go语言和错误处理
- 组织Go代码
# Go语言包
- JSON和Go————使用JSON包。
- gob包的数据采集操作-gob包的设计和使用。
- 反射的规则-reflect 包的基本原理。
- Go图像包-图像包的基本原理。
- Go图像/绘图软件包-图像/绘图程序包的基本原理。
# Go模块
- 使用Go模块-介绍如何在一个简单的项目中使用模块。
- 迁移到Go模块-将现有项目转换为使用模块。
- 发布Go模块-如何向其他人提供新版本的模块。
- Go模块:v2和Beyond-创建和发布主要版本2及更高版本。
- 保持模块兼容-如何保持模块与以前的次要/补丁版本兼容。
# Go语言工具
- 关于Go命令——我们为什么写它,它是什么,它不是什么,以及如何使用它。
- 使用GDB调试Go代码
- 数据竞赛检测器-数据竞赛检测器手册。
- Go汇编程序快速指南-介绍Go语言使用的汇编程序。
- C语言来加油!-使用cgo链接C代码。
- Godoc:编写Go代码——为Godoc编写好的文档。
- 评测Go程序
- race detector检测器简介-race detector检测器简介。
# Go语言Wiki
Go Wiki由Go社区维护,包括有关Go语言、工具和其他资源的文章。
有关更多Go语言学习资源,请参阅Wiki上的“学习”页面。
# Go语言讲座
# Go语言之旅视频
让Go快速、有趣、高效的三件事是:接口、反射和并发。构建一个玩具网络爬虫来演示这些。
# 优雅自然的代码编写
Go的主要设计目标之一是代码适应性;采用一个简单的设计并以一种干净自然的方式构建它应该很容易。在这次演讲中,Andrew Gerrand描述了一个简单的“聊天轮盘赌”服务器,它匹配成对的传入TCP连接,然后使用Go的并发机制、接口和标准库,通过web接口和其他功能对其进行扩展。虽然程序的功能发生了巨大变化,但Go的灵活性在其发展过程中保留了原始设计。
# Go并发模式
并发性是设计高性能网络服务的关键。Go的并发原语(goroutines和channel)提供了一种简单高效的方式来表达并发执行。在这次演讲中,我们将看到如何用简单的Go代码优雅地解决棘手的并发问题。
# 高级Go并发模式
本次讲座扩展了Go并发模式讲座,以深入了解Go的并发原语。
# 更多
请参阅Go Talks网站和wiki页面了解更多Go Talks。
# 非英语文档
有关本地化文档,请参阅Wiki上的非英语页面。