Fork me on GitHub

startover's blog

9月 14, 2016

Python 程序员的 Golang 学习指南(V): 测试篇

这篇文章我们介绍下 Go 语言中如何进行测试。

单元测试

  • 功能测试

Go 语言内置测试框架,其通过 testing 包以及 go test 命令来提供测试功能。

编写测试代码需遵循以下原则

  1. 文件名必须是 _test.go 结尾的,这样在执行 go test 的时候才会执行到相应的代码。
  2. 你必须 import testing 这个包。
  3. 所有的测试用例函数必须是 Test 开头。
  4. 测试用例会按照源代码中写的顺序依次执行。
  5. 测试函数 TestXxx() 的参数是 testing.T,我们可以使用该类型来记录错误或者是测试状态。
  6. 测试格式:func TestXxx (t *testing.T), Xxx 部分可以为任意的字母数字的组合,但是首字母不能是小写字母 [a-z] ,例如 Testintdiv 是错误的函数名 ...

9月 07, 2016

Python 程序员的 Golang 学习指南(IV): 包管理篇

第一篇文章我们有提到,Golang 官方并没有推荐最佳的包管理方案,对于像我这样习惯了 Python 包管理的开发者,自然还是希望有像 pip 一样好用的工具,帮助我们进行依赖管理,下面就让我们对 Golang 的包管理机制一探究竟。

Golang 包管理机制

Go 语言的包管理系统是去中心化的,我们可以通过 go get 命令获取存放在远程仓库的代码协议。实际上,go get 支持以下 VCS 协议:

名称 主命令 说明
Mercurial hg Mercurial是一种轻量级分布式版本控制系统,采用Python语言实现,易于学习和使用,扩展性强。
Git git Git最开始是Linux Torvalds为了帮助管理 Linux 内核开发而开发的一个开源的分布式版本控制软件。但现在已被广泛使用。它是被用来进行有效、高速的各种规模项目的版本管理。
Subversion svn Subversion是一个版本控制系统 ...

8月 30, 2016

Python 程序员的 Golang 学习指南(III): 入门篇

基础语法

类型和关键字

  • 类型
// 基础类型
布尔类型: bool
整型: int8,uint8,int16,uint16,int32,uint32,int64,uint64,int,rune,byte,complex128, complex64,其中,byte 是 int8 的别名
浮点类型: float32 、 float64
复数类型: complex64 、 complex128
字符串: string
字符类型: rune(int32的别名)
错误类型: error

// 复合类型
指针(pointer)
数组(array)
切片(slice)
字典(map)
通道(chan)
结构体 ...

8月 22, 2016

Python 程序员的 Golang 学习指南(II): 开发环境搭建

上一篇文章我们已经对 Golang 有了初步的了解,这篇主要介绍如何在 Ubuntu 14.04 上搭建 Golang 开发环境。

安装 Golang

这里就按照官方文档进行安装即可,如下:

  • 下载并解压安装包到指定目录
$ wget https://storage.googleapis.com/golang/go1.6.3.linux-amd64.tar.gz
$ tar -C /usr/local -xzf go1.6.3.linux-amd64.tar.gz
  • 设置 PATH
$ echo "export PATH=$PATH:/usr/local/go ...

8月 15, 2016

Python 程序员的 Golang 学习指南(I): Go 之初体验

Go 语言简介

Go,又称 golang,是 Google 开发的一种静态强类型,编译型,并发型,并具有垃圾回收功能的编程语言。

Go 语言于2009年11月正式宣布推出,自2012年发布1.0,最新稳定版1.7。目前,Go的相关工具和生态已逐渐趋于完善,也不乏重量级项目,如 Docker, Kubernetes, Etcd, InfluxDB 等。

Go 语言能解决什么样的问题

同绝大多数通用型编程语言相比,Go 语言更多的是为了解决我们在构建大型服务器软件过程中所遇到的软件工程方面的问题而设计的。乍看上去,这么讲可能会让人感觉 Go 非常无趣且工业化,但实际上,在设计过程中就着重于清晰和简洁,以及较高的可组合性,最后得到的反而会是一门使用起来效率高而且很有趣的编程语言,很多程序员都会发现,它有极强的表达力而且功能非常强大。

总结为以下几点:

  • 清晰的依赖关系
  • 清晰的语法
  • 清晰的语义
  • 偏向组合而不是继承
  • 提供简单的编程模型(垃圾回收、并发)
  • 强大的内置工具 ...
Next → Page 1 of 2