Vscod拉取项目报错解决 今天在使用VScode拉取项目的时候报错,“fatal: unable to access ‘https://github.com/aceld/zinx.git/‘: Recv failure: Connection was reset”,试了网上最常用的方法, try 1 该方法也是最常见的方法,那就是在终端执行: git config --global --unset http.proxy 2023-11-06 错误解决
面试准备-标准库 面试准备-标准库1、context1.1 context有什么作用Go常被用来写后台服务,在Go的sever里,通常每来一个请求就会启动若干个goroutine来同时工作:有些去数据库拿数据,有些去下游接口获取相关数据 但是这些goroutine会共享一些请求的基本数据,例如登录token,处理请求的最大超时时间等等。当请被取消的时候,所有为这个请求工作的那些协程都要快速退出,因为他们的结果已经 2023-11-05 Go面试
面试准备-编译 编译逃逸分析怎么进行逃逸分析是编译器在执行代码分之后,为了对内存分配进行简化和优化,去决定一个变量是分配到栈上还是分配到堆上。 C和C++中调用malloc和new函数可以在堆上分配一块内存,这块内存的使用和销毁的责任都在程序员。所以很容易发生内存泄露。但是在Go语言中,因为GC的原因,我们基本不用担心内存泄露的问题。虽然也有new函数,但是使用new函数得到的内存不一定就在堆上。 Go语言逃逸分 2023-11-05 Go面试
面试准备-通道 面试准备-通道1、什么是CSP(Communicating Sequential Processes)CSP是一种发编程模型,它是一种用于描述并发系统中独立进程之间通信和同步的形式化模型。它描述了两个独立的并发实体通过共享的通讯 channel(管道)实现并发的并发模型。Go是第一个将CSP思想引入并融入到语言的核心里。相较于java,python等通过共享内存的同步访问等实现并发编程,Go 的并 2023-11-05 Go面试
Hello World Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub. Quick 2023-11-05
单元测试 单元测试单元测试不允许有任何的外部依赖,我们不会在测试代码中连接数据库,调用api等。这些外部依赖在执行的时候都需要被模拟(mock/stub)。 常见依赖 网络依赖-函数执行依赖于网络请求,比如第三方http-api,rpc服务,消息队列等等 数据库依赖 I/o依赖(文件) Mock和Stub区别 Mock(模拟)和Stub(桩)是在测试过程中,模拟外部依赖行为 2023-11-05
Etcd服务发现与注册、自定义负载均衡 Etcd服务发现与注册、自定义负载均衡1、什么是服务发现与注册服务注册和发现的基本原理如下: 服务注册 指服务实例启动的时候将自身的信息注册到服务注册与发现中心,并在运行的时候通过心跳的方式向服务注册发现中心汇报自身服务状态 服务发现 指服务实例向服务注册与发现中心获取的其他服务实例信息,用于进行后续的远程调用。 2、服务注册和发现的作用1、管理实例信息 管理当前注册到服务注册与发现中心的微服务实 2023-11-05 Go学习
多线程实现交替打印 多线程实现交替打印首先提出该问题的面试官主要是考察,你对协程之间相互通信和协程的生命周期管理的考察,所以我们首先想到的是用chan进行协程之间通信,用sync.WaitGroup来管理协程的生命周期 两个协程交替打印错误解法: func main() { var ch1 = make(chan int) var ch2 = make(chan int) var ch3 = make 2023-11-05 常见Go面试题思考
面试准备-Go接口 面试准备-Go接口1、值接收者与指针接受者的区别以及两者的使用时机 我们都知道,如果要实现一个接口,必须实现这个接口提供的所有方法,但是实现方法的时候,我们可以使用指针接收者实现,也可以使用值接收者实现,这两者是有区别的 下面是一个例子 package main import "fmt" type coder interface { co 2023-11-05 Go面试