大家好,今天将梳理出的 Go语言知识普及内容,分享给大家。 请多多指教,谢谢。
前面已将基础语法、数据类型、函数使用内容介绍完成,相信大家已经有了Go基础。此篇内容主要谈一下对Go这门语言的背景和特性内容,还有一些编程规范和大家分享一下。
Go语言是由谷歌公司在2007年开发的一门语言,目的是能在多核心时代高效编写网络应用程序。 Go语言的创始人 Robert Griesemer、Rob Pike 和 Ken Thompson都是在计算机发展过程中作出过重要贡献的人。 自从2009年11月正式公开发布后,Go语言迅速席卷了整个互联网后端开发领域,其社区里不断涌现出类似vitess、Docker、etcd、Consul等重量级的开源项目。
Go语言开发团队花了很长时间来解决当今软件开发人员面对的问题。 开发人员在为项目选择语言时,不得不在快速开发和性能之间作出选择。 C和C++这类语言提供了很快的执行速度,而Ruby和Python这类语言则擅长快速开发。 Go语言在这两者间架起了桥梁,不仅提供了高性能的语言,同时也让开发更快速。
1. 开发速度
编译一个大型的C或者C++项目所花费的时间甚至比去喝杯咖啡的时间还长。
Go语言使用了更加智能的编译器,并简化了解决依赖的算法,最终提供了更快的编译速度。 编译Go程序时,编译器只会关注哪些直接被引用的库,而不是像Java、C和C++那样,要遍历依赖链中所有依赖的库。因此,很多Go程序可以在1秒内编译完。 在现代硬件上,编译整个Go语言源码树只需要20秒。
2. Runtime
Golang Runtime是go语言运行所需要的基础设施,主要作用:
说明:
此部分内容参考 腾讯技术工程发布的Runtime文章 https://zhuanlan.zhihu.com/p/95056679
3. 内存管理
不当的内存管理会导致程序崩溃或者内存泄漏,甚至让整个操作系统崩溃。 Go语言拥有现代化的垃圾回收机制,可以有效的解决这个难题。核心的目的是把无趣的内存管理交给专业的编译器去做,而让程序员更专注与更有趣的事情。
总体来说,所面临的业务要求高并发、性能要求强、处理敏捷等特性,都可以首先考虑用Go来做。
包命名
保持package的名字和目录保持一致,尽量采取有意义的包名,简短,有意义,尽量和标准库不要冲突。包名应该为小写单词,不要使用下划线或者混合大小写。
文件命名
变量命名
接口命名
type Reader interface {…}
type WriteFlusher interface {…}
type Car interface {…}
推荐使用gofmt, goimports
多写关键函数的注释,活用 //TODO
,//FIXME
func (c *Client) GetUserName() string
参考材料
《Go语言实战》书籍
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。