


垃圾回收是释放掉那些不再被使用的的内存空间的过程。换句话说,垃圾回收器会去检查哪些对象超出范围并且不会再被引用到,然后它会去释放掉那些对象占用的内存空间。其实这个过程是在Go程序运行中也是以并发的方式去进行的。
编译和链接到机器代码的速度极快,一般情况下构建一个程序的时间只需要数百毫秒到几秒,整个 Go 语言标准库的编译时间一般都在 20 秒以内。这不仅极大地提升了开发者的生产力,同时也使得软件开发过程中的代码测试环节更加紧凑,而不必浪费大量的时间在等待程序的构建上。
Go 语言是一门类型安全和内存安全的编程语言。虽然 Go 语言中仍有指针的存在,但并不允许进行指针运算。
Go 语言的另一个目标是对于网络通信、并发和并行编程的极佳支持,从而更好地利用大量的分布式和多核的计算机。这个特性显然是 Go 语言最强有力的部分,不仅支持了日益重要的多核与多处理器计算机,也弥补了现存编程语言在这方面所存在的不足。
Go 语言从设计之初就是为了应对高性能分布式领域的问题,在面对复杂事件处理上,Go 语言无疑比大多数其它语言有着更高的开发效率。现如今Go语言在云计算、边缘计算、大数据、微服务、物联网、高并发领域应用得越来越广泛。
作为21世纪的C语言,之前C或者C++做的事情,用Go来做都很合适,例如处理日志、数据打包、虚拟机处理、文件系统等方面
网络编程这一块目前应用最广,包括Web应用、API应用、下载应用,而且Go内置的net/http包基本上把我们平常用到的网络功能都实现了,Go的生态起步较晚,但是发展速度是非常快的,而且Go的主流Web开发框架也有很多,比如 gin、beego、iris 等等。
微服务是一种软件开发技术,属于 SOA(面向服务的架构)的一种形式。它的作用是,将应用程序构建为许多松耦合的服务的集合。与其他语言相比,Go有很多优势,用 Go 编写的程序更加健壮,它们能够承受程序使用运行的服务构建的繁重负载,微服务架构的用处大部分体现在当程序需要伸缩(scalable)时,Go继承自 C-family 编程语言,用 Go 编写的组件更容易与同一家族中其他语言编写的组件相结合。
基于Go语言的云平台组件开发,例如:Docker/k8s等,以及云原生服务的开发,云服务很多都是采用Go进行开发,比如国内著名的七牛云是全站采用Go开发,还有如盛大CDN、阿里云CDN,华为云等。
可用于分布式计算、分布式存储、分布式读写等场景开发,例如分布式调度框架,分布式文件系统等
由于其占用资源较少、跨平台、高效率等优势,且其高效编译、高效执行、易于编程的特点,把Go语言作为嵌入应用开发语言大厂越来越多
Docker: 一种操作系统层面的虚拟化技术,可以在操作系统和应用程序之间进行隔离,也可以称之为容器。Docker 可以在一台物理服务器上快速运行一个或多个实例。例如,启动一个 CentOS 操作系统,并在其内部命令行执行指令后结束,整个过程就像自己在操作系统一样高效
Kubernetes: Google 公司开发的构建于 Docker 之上的容器调度服务,用户可以通过 Kubernetes 集群进行云端容器集群管理。系统会自动选取合适的工作节点来执行具体的容器集群调度处理工作。其核心概念是 Container Pod(容器仓)。
Hertz: 字节跳动服务框架团队研发的超大规模的企业级微服务 HTTP 框架,具有高易用性、易扩展、低时延等特点
Kitex: Kitex 字节跳动内部的 Golang 微服务 RPC 框架,具有高性能、强可扩展的特点
Nsq: 由Go语言开发的高性能、高可用消息队列系统
Skynet: 分布式调度框架
Doozer: 分布式同步工具,类似ZooKeeper
Heka: mazila开源的日志处理系统
Cbfs: couchbase开源的分布式文件系统