一、Go编程语言概述
Go语言也叫Golang,是由谷歌(Google)公司在2007年推出的一款静态编译型语言。主要将其用于服务端开发、并发编程和网络编 程等。
1.1 Go语言特性及应用场景
1.容易上手
2.编程速度快
3.原生支持并发
Go语言最主要的特性就是从语言层面原生支持并发,无须任何第三方库。Go的并发基于
goroutine,可以理解为一种微线程。与Python的多线程性能限制于GIL全局锁不同,Go语言的并发
可以充分利用CPU的资源,将goroutine合理地分配到每个CPU中,最大限度地使用CPU的性能。
goroutine之间的通信可以使用Go语言的sync包和channel机制来实现。
4.垃圾回收
5.代码风格清晰
1.2使用Go语言的项目
1.docker
网址:https://github.com/docker/docker-ce
Docker是一个开源的应用容器引擎,基于Go语言开发并遵从Apache 2.0协议开源。Docker可以
让开发者打包他们的应用和依赖包到一个轻量级、可移植的容器中,也可以实现虚拟化,更重要
的是容器性能开销极低。
2.Kubernetes
网址:https://github.com/kubernetes/kubernetes
Kubernetes是自动化容器操作的开源平台,使用Kubernetes可以进行自动化容器的部署和复
制、随时扩展或收缩容器规模和容器间的负载均衡等。
3.Beego项目
网址:https://github.com/astaxie/beego
Beego是一个使用Go编写的极轻量级、高可伸缩性和高性能的Web应用框架。
4.Golang项目
网址:https://github.com/golang/go
Go语言自1.5版本后,可以完全使用Go语言自身来实现。对Go语言的源码研究有助于深入理解
Go的底层实现,想对Go语言有持续深入了解的读者可阅读此项目。
5.Codis项目
网址:https://github.com/CodisLabs/codis
Codis是一个国产开源的分布式redis解决方案,对于上层的应用透明,就像连接到原生的redis
服务器那样。
1.3常用软件和网站
1.开发工具(IDE或编辑器)
Go开发工具有许多,其中IDE(Integrated Development Environment,集成开发环境)功能比 较强大,会提供代码提示、文件和目录管理、代码搜索和替换、查找函数等功能。一 般会通过IDE进行代码开发。
Visual Studio Code,是一个由微软开发的,同时支持Windows、Linux和Mac OS操作系统并且开 放源代码的文本编辑器。它支持调试,并内置了Git版本控制功能,同时也具有开发环境功能,例 如代码补全、代码片段、代码重构等。该编辑器支持用户自定义配置,例如改变主题颜色、键盘 快捷方式、编辑器属性和其他参数,还支持扩展程序并在编辑器中内置了扩展程序管理的功能。
GoLand是JetBrains推出的一款新型商用IDE,旨在为Go开发提供符合人体工程学的环境。新的 IDE扩展了IntelliJ平台,提供Go语言特有的编码辅助和工具集成,强大的静态代码分析和人体工程 学设计使开发更高效。
2.代码管理工具
开发人员通过代码管理工具进行权限控制,能防止代码混 乱,提高安全性,防止一些不必要的损失和麻烦。
SVN(Subversion)是一个开源的集中式版本控制系统,管理随时间改变的数据,所有数据集 中存放在中央仓库(repository)。repository就好比一个普通的文件服务器,不过它会记住每一次文 件的变动,这样你就可以把Java文件恢复成旧的版本,或是浏览Java文件的变动历史。
GIT,是一个开源的分布式版本控制系统,和SVN功能类似,但GIT的每台电脑都相当于一个 服务器,代码是最新的,比较灵活,可以有效、高速地处理项目版本管理。全球最大的代码托管 平台GitHub网站,采用的也是GIT技术
3.其他工具
Jira,是Atlassian公司出品的项目与事务跟踪工具,可以进行网站bug管理、缺陷跟踪、任务跟 踪和敏捷管理等.
Redmine,是由Ruby编程语言开发的一套跨平台项目管理系统,通过“项目(Project)”的形 式把成员、任务(问题)、文档、讨论以及各种形式的资源组织在一起,让大家参与更新任务、 文档等内容来推动项目的进度,同时利用时间线索和各种动态的报表形式来自动给成员汇报项目 进度,并提供Wiki、新闻台等,还可以集成其他版本管理系统和bug跟踪系统.
XMind,是一款实用的思维导图软件,可以用来绘制产品架构图、项目流程图、功能分解图 等。XMind简单易用、界面美观、功能强大,拥有高效的可视化思维模式,具备可扩展、跨平台、 稳定性强等性能,真正帮助用户提高生产率,促进有效沟通及协作。
TeamCola,是由国内团队开发的时间管理工具,能较好地解决时间问题,而其管理颗粒度为 半小时,也不会过多增加管理成本
4.网站资源
CSDN:创立于1999年,是中国最大的IT社区和服务平台。
网址:https://www.csdn.net/
Go官方文档
网址:https://golang.org/doc/
Go语言官方包索引与搜索引擎
网址:https://godoc.org/
Stack Overflow:一个与程序相关的IT技术问答网站。用户可以在网站免费提交问题,浏览
问题,索引相关内容。一般情况下,一些在CSDN找不到答案的问题都可以在Stack Overflow
上找到。
网址:https://stackoverflow.com/
GitHub:一个面向开源及私有软件项目的托管平台,目前已被微软收购。可在GitHub上搜
索到开源的Go源代码和第三方库,提交issue或修改有问题的代码。
网址:https://github.com
1.4 总结
Go语言也叫Golang,是由谷歌公司在2007年推出的一款静态编译型语言。Go语言高效、简 洁且容易上手,有高并发和自带垃圾回收的特性。
主要将其用于服务端开发、并发编程和网 络编程等。
Go语言起源于2007年,于2009年正式对外发布。Go语言项目主要由肯·汤普逊、罗布·派 克和罗伯特·格里泽默参与开发。