Google Go 语言的必备开源项目有哪些
本篇文章为大家展示了Google Go 语言的必备开源项目有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
Go 语言于 2009 年 11 月正式宣布推出,成为开放源代码项目,发展至今已经具有越来越广泛的影响力,今年更是在 TIOBE 编程语言排行榜中跻身 20 强。很多开发者也逐渐将目光投向这门语言。
关于 Go 语言:
Go 是 Google 开发的一种编译型,并发型,并具有垃圾回收功能的编程语言。由于其构建简化了并发运行代码的工作,存在并行编程模式,因此这一语言也被设计用来解决多处理器的任务。Go语言是基于Inferno操作系统所开发的,并在Linux及Mac OS X平台上进行了实现,后追加 Windows 系统下的实现。
Go 语言起源 2007 年,并于 2009 年正式对外发布。它从 2009 年 9 月 21 日开始作为谷歌公司 20% 兼职项目,即相关员工利用 20% 的空余时间来参与 Go 语言的研发工作。该项目的三位领导者均是著名的 IT 工程师:Robert Griesemer,参与开发 Java HotSpot 虚拟机;Rob Pike,Go 语言项目总负责人,贝尔实验室 Unix 团队成员,参与的项目包括 Plan 9,Inferno 操作系统和 Limbo 编程语言;Ken Thompson,贝尔实验室 Unix 团队成员,C 语言、Unix 和 Plan 9 的创始人之一,与 Rob Pike 共同开发了 UTF-8 字符集规范。这是一个由计算机领域 "发明之父" 所组成的黄金团队,他们对系统编程语言,操作系统和并行都有着非常深刻的见解。
一、入门篇
0. 开源图书 《Go Web编程》
一本开源的书籍《Go Web编程》《build web application with golang》。书中作者主要分享了Go写web应用的一些东西:
对于从php/python/ruby转过来的同学了解go怎么写web应用开发的
对于从c/c++转过来的同学了解web到底是怎么运行起来的
2. 视频语音教程《Go 编程基础》
《Go 编程基础》是一套针对 Google 出品的Go语言的视频语音教程,主要面向新手级别的学习者。每堂课都会建立一个文件(例如:lecture1.md)作为课堂笔记。课堂笔记中里面包含了该堂课所涵盖的知识点以及知识点开始讲解的时间点,方便学习者快速定位要了解的部分,节省不必要浪费的时间。此外,如果教程中因口误或其它原因使学习者产生迷惑的部分,同样会在课堂笔记中进行补充说明。
3.Go 的包文档中文翻译
这是 Go 语言的标准包和部分第三方包的包文档中文翻译。
项目源码:http://git.oschina.net/liudiwu/pkgdoc
在线浏览:http://mygodoc.oschina.mopaas.com/
二、开发篇
0. Go 语言开发工具 LiteIDE
LiteIDE 是一款开源、跨平台的轻量级Go语言集成开发环境(IDE)。
1. 基于 Web 的团队 Go 语言 IDE Wide
目前较为流行的 Go IDE 都有一些缺陷或遗憾:
文本编辑器类(vim/emacs/sublime/Atom 等):对于新手门槛太高,搭建复杂
插件类(goclipse 等):需要原 IDE 支持,不够专业
LiteIDE:界面不够 modern
没有团队开发体验
Go IDE 很少,用 Go 本身开发的 IDE 更是没有,而 Go IDE 这是一个很好的尝试。
在线体验:https://wide.b3log.org
2. Eclipse 的 Go 插件 GoClipse
GoClipse 是一个为Eclipse平台添加 Go 语言编程功能的 Eclipse 插件。GoClipse 的目的是为初学者创造一个开发 Go 语言的环境。平台发展比较缓慢,但一直在持续。
3. 代码编辑器 Lime
Fredrik Ehnbom 用 Go 语言开发了新代码编辑器 Lime Text,号称Sublime Text 的开源实现。其兼容Sublime Text的快捷键设置,兼容 Textmate 的颜色主题及语法定义。 Lime Text 的后端采用 Go 实现,前端则使用了 ermbox,Qt (QML) 及 HTML/JavaScript。
4. Go 的全堆栈 Web 框架 Revel
Revel 是一个高生产力的 Go 语言 Web 框架,其思路完全来自 Java 的 Play Framework。Revel 框架支持热编译,当编辑、保存和刷新源码时,Revel 会自动编译代码和模板;全栈特性,支持路由、参数解析、缓存、测试、国际化等功能。
5. Go 程序调试工具 godebug
godebug 是一个与众不同的 Go 程序调试工具,传统的编译型语言调试器使用底层系统调用并读取二进制文件用于调试各类符号。使用起来很麻烦而且很难移植。godebug 使用不同的方法,直接把源码作为目标程序,在每一行插入调试代码,然后编译并运行。结果就是一个全功能的调试器,完全可以移植到不同平台。事实上,由于有了 gopherjs ,你也可以在浏览器上进行调试。
三、应用篇
0. Linux 容器引擎 Docker
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app)。几乎没有性能开销,可以很容易地在机器和数据中心中运行。最重要的是,他们不依赖于任何语言、框架或包装系统。
2. 极易搭建的自助 Git 服务 Gogs
Gogs 的目标是打造一个最简单、最快速和最轻松的方式搭建自助 Git 服务。使用 Go 语言开发使得 Gogs 能够通过独立的二进制分发,并且支持 Go 语言支持的所有平台,包括 Linux、Mac OS X、Windows 以及 ARM 平台。
3 . Go 爬虫软件 Pholcus
Pholcus(幽灵蛛)是一款纯Go语言编写的支持分布式的高并发、重量级爬虫软件,定位于互联网数据采集,为具备一定 Go 或 JS 编程基础的人提供一个只需关注规则定制的功能强大的爬虫工具。
5. 开源消息系统 NSQ
NSQ 是无中心设计、节点自动注册和发现的开源消息系统。可作为内部通讯框架的基础,易于配置和发布。架构:
6. 时序、事件和指标数据库 InfluxDB
InfluxDB 是一个开源分布式时序、事件和指标数据库。使用 Go 语言编写,无需外部依赖。其设计目标是实现分布式和水平伸缩扩展。
7. 开源 PaaS 系统 Flynn
Flynn 是一个开源的 PaaS 系统,由 Docker 开发。采用 Go 语言编写。支持数据库包括 Postgres、Redis 和 MongoDB. Flynn 使用完全组件化模块化的设计,任何一个组件和模块都可以独立的进行替换。
开源中国组织翻译的 Flynn 中文文档:http://flynn.mydoc.io
9. 分布式 SQL 数据库 TiDB
TiDB 是国内 PingCAP 团队开发的一个分布式 SQL 数据库。其灵感来自于 Google 的 F1, TiDB 支持包括传统 RDBMS 和 NoSQL 的特性。
TiDB 的源码已经托管在 Git@OSC 上,详情请查看:http://git.oschina.net/ngaut/tidb
架构:
10. Go 开发的 IM 和推送服务 goim
goim 是一个支持集群的im及实时推送服务(支持websocket,http和tcp协议)。
不过虽然 Go 发展很快,开发者们还是应该根据自己的实际情况选择是否要深入了解这门语言及其应用。
上述内容就是Google Go 语言的必备开源项目有哪些,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。