第01节 Go语言简介
本节内容:
- Go简介。
- Go语言应用。
- Go成功的项目。
- 为什么选择Go语言。
- Go语言特点总结。
1.1 Go简介
**Go (或 Golang )**是 Google 2007 年开发的一种开源编程语言。
2009年11月10日,Google Open Source Blog向全球发布了这款语言。
Go 的主要目标是:兼具 Python 等动态语句的开发速度和C/C++等编译型语言的性能与安全性。
1.2 Go语言应用
-
服务器编程,以前你如果使用C或者C++做的那些事情,用Go来做很合适,例如处理日志、数据打包、虚拟机处理、文件系统等。
-
分布式系统,数据库代理器等。
-
网络编程,这一块目前应用最广,包括Web应用、API应用、下载应用。
-
内存数据库,前一段时间google开发的groupcache,couchbase的部分组建。
-
云平台,目前国外很多云平台在采用Go开发,CloudFoundy的部分组建,前VMare的技术总监自己出来搞的apcera云平台。
1.3 Go成功的项目
-
nsq:bitly开源的消息队列系统,性能非常高,目前他们每天处理数十亿条的消息。
-
docker:基于lxc的一个虚拟打包工具,能够实现PAAS平台的组建。
-
packer:用来生成不同平台的镜像文件,例如VM、vbox、AWS等,作者是vagrant的作者。
-
skynet:分布式调度框架。
-
Doozer:分布式同步工具,类似ZooKeeper。
-
Heka:mazila开源的日志处理系统。
-
cbfs:couchbase开源的分布式文件系统。
-
tsuru:开源的PAAS平台,和SAE实现的功能一模一样。
-
groupcache:memcahe作者写的用于Google下载系统的缓存系统。
-
god:类似redis的缓存系统,但是支持分布式和扩展性。
-
gor:网络流量抓包和重放工具。
1.4 为什么选择Go语言
C/C++的问题:
- 开发效率低,对开发者要求高
- libc只向后兼容,运维难度偏大
Lua/Python的问题:
- 动态语言,缺少编译过程,低级错误频出
- 缺少有效的性能分析及调试工具
1.5 Go语言特点总结
- 有C基础,学Golang非常轻松。
- 同步方式轻松实现高并发。
- 代码简洁,格式统一,阅读方便。
- 性能强劲的同时,开发效率又不差于Python等动态语言。
Go语言学习课程:
Go语言零基础手把手入门