首页 go

go

  • golang单元测试之mock

    golang单元测试之mock

    golang单元测试之mock 序言 前面介绍了golang的一般单元测试,以及如何使用vscode进行高效的go单元测试开发。同时也说过一般单元测试重点在于cpu和内存类型的测试,而对io类型的测试是比较敏感的。那么针对这类测试就没法做单元测试了吗?有的,肯定是有的,这就是mock技术。 mock测试不但可以支持io类型的测试,比如:数据库,网络API请求,文件访问等。mock测试还可以做为未开发服务的模拟、服务压力测试支持、对未知复杂的服务进行模拟,比如开发阶段我们依赖的服务还没有开发好,那么就可以使用m...

    linux 应用 2019-02-01 272 0 go
  • Golang UnitTest单元测试

    Golang UnitTest单元测试

    Golang UnitTest单元测试 单元测试是程序开发者适用一段代码来验证另外一段代码写的是否符合预期的一种相对高效的自我测试方法。 对于程序开发来说,经过长期的积累和方法总结,单元测试是一种比较好的开发程序验证方式,但是单元测试却是在正真的软件开发之外要写的额外的代码,而且编写和管理维护都有比较大的成本。但是单元测试确实能够提高程序开发的质量,所以基本上各种语言都有相应的单元测试框架来支持更为方便编写和管理单元测试。 golang也是一样,不过golang的测试框架的支持是自生就提供了,不像C/C++,...

    linux 应用 2019-01-25 194 1 go
  • Golang官方依赖管理工具dep学习使用笔记

    Golang官方依赖管理工具dep学习使用笔记

    golang的之前的版本一直缺乏官方的包管理,第三方的包管理个人感觉还是比较麻烦的,但是看到dep现在样子之后还是有了很大的兴趣,使用了之后发现也确实方便了很多。推荐使用dep Golang官方依赖管理工具:dep 今天在看一个内部项目的时候发现内部一个项目的体积非常大,一看原来是vendor占了很大空间。里面的库都是静态提交到git库的,更新和管理都很不方便,想想java开发中的maven多好用啊。之前也知道golang一直在开发类似的东西,借这个机会了解了一下,golang也已经有了这样的工具了:gode...

    linux 应用 2019-01-25 223 0 go
  • golang的struct和interface

    golang的struct和interface

    struct struct 用来自定义复杂数据结构,可以包含多个字段(属性),可以嵌套;go中的struct类型理解为类,可以定义方法,和函数定义有些许区别;struct类型是值类型。 struct定义 type User struct { Name string Age int32 mess string } var user User var user1 *User = &User{} var user2 *User = new(User)...

    linux 应用 2018-03-22 146 1 go
  • Golang信号处理和如何实现进程的优雅退出

    Golang信号处理和如何实现进程的优雅退出

    Linux系统中的信号类型 各操作系统的信号定义或许有些不同。下面列出了POSIX中定义的信号。 在linux中使用34-64信号用作实时系统中。 命令 man 7 signal 提供了官方的信号介绍。也可以是用kill -l来快速查看 列表中,编号为1 ~ 31的信号为传统UNIX支持的信号,是不可靠信号(非实时的),编号为32 ~ 63的信号是后来扩充的,称做可靠信号(实时信号)。不可靠信号和可靠信号的区别在于前者不支持排队,可能会造成信号丢失,而后者不会。 Linux支持的标准信号有以下一些,一个信...

    linux 应用 2018-03-15 195 0 go
  • Goroutine+Channel+WaitGroup使用

    Goroutine+Channel+WaitGroup使用

    介绍 goroutine golang语言中最有特色之一的东东就是这个goroutine了,很多时候问起别人为什么golang的好用,golang的网络性能可以那么好,一般都会多多少少想到goroutine,提起goroutine。在linux中内核的调度最小单位是就是thread,同一个进程中的多个thread线程就对应内核中的多个thread实体。所以thread是内核级的,而gorountine是一个不同于thread的概念,gorountine是一个用户态,另外一种说法也就携程,是用户态的一种调度粒...

    linux 应用 2018-03-02 167 1 go
  • golang网络编程笔记

    golang网络编程笔记

    网络编程类型 我们一般提到的网络编程类型有两种:tcp和udp,都属于网络传输层协议支持下的协议,而且在目前也是网络编程中最基础的。这其中具体说来有有个socket的概念,tcp和udp都是协议,而socket就是一个具体的实现了,所以有tcp socket和udpsocket。golang是自身就带有网络库的net的,使用非常方便。 同时我这里还会简单介绍一下另外一种协议,用户态的,基于udp的,但是具有tcp的连接回话管理,重传确认等机制-kcp。 网络编程主要的目的是进行通信,所以就会涉及到至少2个...

    linux 应用 2018-02-12 124 1 goudpkcpflink
  • golang grpc简单使用

    golang grpc简单使用

    gRPC是一个高性能、通用的开源RPC框架,基于ProtoBuf(Protocol Buffers)序列化协议开发,且支持众多开发语言。 1、相关包安装 1)protobuf 在下面的链接下载之后源码安装, https://github.com/google/protobuf 安装过程也比较简单: ./autogen.sh ./configure ./make && make install 就可以安装好。 2)安装protoc的golang插件 设置好go...

  • golang的httpserver优雅重启

    golang的httpserver优雅重启

    去年在做golangserver的时候,内部比较头疼的就是在线服务发布的时候,大量用户的请求在发布时候会被重连,在那时候也想了n多的方法,最后还是落在一个github上的项目,facebook的一个golang项目grace,那时候简单研究测试了一下可以就直接在内部使用了起来,这段时间突然想起来,又想仔细研究一下这个项目了。 从原理上来说是这样一个过程: 1)发布新的bin文件去覆盖老的bin文件 2)发送一个信号量,告诉正在运行的进程,进行重启 3)正在运行的进程收到信...

    linux 应用 2018-01-24 130 1 gogrpc
1