除了 Java,Python 和 JavaScript 之外, 如果要开始学习一门新语言的话, 我想应该是 Go!
Go 语言正在被越来越多的公司使用. 我们公司的后端服务已经全面采用 Go 语言实现了.
最开始接触 Go 语言是去年将一份 Go 代码 "翻译" 成 Python 并集成到测试平台上, 说来也挺神奇, 我从来没学过 Go 却完成了这个工作, 这也侧面反应了 Go 的语法还是很平易近人的.
今年, 调岗之后已经没有太多时间写代码了, 但如果要开始学习一个新的语言或技术的话, 我最想学的是 Go!
目前来看, Go 似乎还并没有太多测试人员使用的场景, 不过, 我之前介绍过的 BDD 行为驱动框架 gauge 是由 Go 开发的, 当然, 它也支持使用 Go 来编写 BDD 测试代码.
对于, 已经有一定开发经验的同学, 如何快速的开始学习 Go 语言呢? 我这里给一些思路.
第一步: 下载和安装
下载地址: https://studygolang.com/dl
在配置环境的时候你需要重点了解 GOROOT,GOPATH 的作用.
你还要准备一款称手的编辑器, 如果你像我一样, 一直都在使用 VS Code 的话, 那么就它就可以了.
第二步: 从 hello world 开始
先运行一个 hello world 程序, 认识 Go 语言的语法.
- package main
- import (
- "fmt"
- )
- func main(){
- fmt.Println("helloworld!")
- }
第三步: 熟悉 Go 的语法
接下来, 你可能要花一周左右的时间熟悉 Go 语言的语法. 比如, 变量定义, if/for, 函数, Map, 跨文件的程序调用... 等, 当然, 还有一些 Go 特有的知识.
我是看不进去厚厚的编程书, 所以一般会找简单的教程.
菜鸟教程: https://www.runoob.com/go/go-tutorial.html
当然, 我更喜欢看视频教程, 虽然质量参差不齐, 但我仍然觉得看视频比我自己看书更有效率.
腾讯课堂: https://ke.qq.com/course/list/go
网易云课堂: https://study.163.com/courses-search?keyword=go
熟悉一段 Go 代码:
- package main
- import"fmt"
- func myFunc() {
- i := 0
- Here: // 这行的第一个词, 以冒号结束作为标签
- fmt.Println(i)
- i++
- if i <10{
- goto Here // 跳转到 Here 去
- }
- }
- func main() {
- // 调用函数
- myFunc()
- }
第四步: Go 如何做单元测试
针对 Go 做测试也非常简单. 比如, 这是一个被测试文件: add.go.
- package test_demo
- func Add(a int, b int) int{
- return a + b
- }
下面针对 Add() 函数编写测试用例, test_add.go
- package test_demo
- import (
- "testing"
- )
- func TestAdd1(t *testing.T){
- r:= Add(1, 2)
- if r !=3{
- t.Errorf("Add(1, 2)failed. Got %d, expected 3.", r)
- }
- }
- func TestAdd2(t *testing.T){
- r:= Add(2, 2)
- if r !=4{
- t.Errorf("Add(2, 2)failed. Got %d, expected 4.", r)
- }
- }
你只需要执行 go test 命令就可以运行上面的测试了.
第五步: 从哪儿找第三方库
当然, 你只学习 go 语言本身, 基本是做不了什么事的, 必须要使用第三方扩展库.
https://awesome-go.com/
这里罗列了 Go 语言的第三方库, 通过这些第三方库的介绍, 我们也可以大概知道 Go 可以用来干什么.
https://go-search.org/
如果你知道库的名字的话, 也可以在这个网站上搜索.
据我了解, Go 的第三方库大多都在 GitHub 上面.
第六步: 用 Go 做 web 开发
Go 是静态语言, 而且支持并发编程, 所以, 他有天然的性能优势, 大多公司主要使用 Go 也是开发后端服务 (即 API).
终于到了实战阶段, 如果我们真的要掌握一门语言, 那么一定要用它来开发一个项目出来. 这个过程大概需要一个月.
Beego: https://beego.me/
Beego 是 Go 下在主流的 Web 开发框架, 资料相对比较丰富, 而且有完善的文档. 你可为此制定一个目标, 比如用它来开发一个 Blog, 为此, 你需要详细阅读 Beego 文档, 以及学习相关的 Web 开发技术.
等你完成这个项目的时候, 我想你已经会使用 Go 语言了.
来源: https://www.cnblogs.com/fnng/p/10903271.html