目标:
1、掌握语言特性、语法、数据结构、异常、调试、IO;
2、性能分析、热更新、脚本;
总结:存在难以调试、不能热更的问题,将会使开发期不便测试和运行期异常处理不及时。
一、特性
像反射这种其他语言支持更好的特性就不提了
1、简洁强大的语法糖,灵活;
2、函数多返回值;
3、类型接口type、interface;
4、goroutine和channel并行支持;
5、package 路径管理和使用。
二、应用
1、nsq:bitly开源的消息队列系统,性能非常高,目前他们每天处理数十亿条的消息
2、docker:基于lxc的一个虚拟打包工具,能够实现PAAS平台的组建。
3、packer:用来生成不同平台的镜像文件,例如VM、vbox、AWS等,作者是vagrant的作者
4、skynet:分布式调度框架
5、Doozer:分布式同步工具,类似ZooKeeper
6、Heka:mazila开源的日志处理系统
7、cbfs:couchbase开源的分布式文件系统
8、tsuru:开源的PAAS平台,和SAE实现的功能一模一样
9、groupcache:memcahe作者写的用于Google下载系统的缓存系统
10、god:类似redis的缓存系统,但是支持分布式和扩展性
11、gor:网络流量抓包和重放工具。
三、环境和IDE
四、开源
1、各种开源存储服务器
2、排名前列的开源系统
Awesome Go ,这又是一个 Awesome XXX 系列的资源整理,由 avelino 发起和维护。
内容包括:Web框架、模板引擎、表单、身份认证、数据库、ORM框架、图片处理、文本处理、自然语言处理、机器学习、日志、代码分析、教程和(电子)书等。
3、静态网站系统
4、http,websocket Server
5、区块链文件存储
6、go区块链源码
7、数据库
8、网络库:
9、平滑重启
五、用途指南
- 服务器编程,以前你如果使用C或者C++做的那些事情,用Go来做很合适,例如处理日志、数据打包、虚拟机处理、文件系统等。
- 分布式系统,数据库代理器等
- 网络编程,这一块目前应用最广,包括Web应用、API应用、下载应用、
- 内存数据库,前一段时间google开发的groupcache,couchbase的部分组建
- 云平台,目前国外很多云平台在采用Go开发,CloudFoundy的部分组建,前VMare的技术总监自己出来搞的apcera云平台。