Posts

Golang模块代理goproxy.io源码研读

goproxy.io是一款很好用的Golang Module Proxy,解决了国内用户无法直接下载Golang模块依赖的问题。 本文准备研读一下其开源代码github.com/goproxyio/goproxy,了解下其实现原理。 goproxy工程的主要目录结构如下:

阅读更多

Golang 模块获取包modfetch研读

自Go 1.11引入Modules以来,其内置命令已集成包查询、下载等功能。 之前专门写过一篇Golang Modules的文章,介绍了Module的使用方式。 如一个Module工程,使用命令构建时会自动获取依赖,如:

阅读更多

Golang 优雅的终止一个服务

采用常规方式启动一个 Golang http 服务时,若服务被意外终止或中断,即未等待服务对现有请求连接处理并正常返回且亦未对服务停止前作一些必要的处理工作,这样即会造成服务硬终止。这种方式不是很优雅。 参看如下代码,该 http 服务请求路径为根路径,请求该路径,其会在 2s 后返回 hello。

阅读更多

LeetCode 55 跳跃游戏

1 题目描述 给定一个非负整数数组,您初始位于数组的第一个位置。 数组中的每个元素,代表您在该位置可以跳跃的最大长度。 请判断您能否抵达数组的最后一个位置。

阅读更多

LeetCode 946 校验栈序列

1 题目描述 给定两个序列pushed与popped,每个序列内的值均是不同的。对于一个空的栈,当前仅当其是有效的push与pop操作序列时返回true。 例子1: 输入:pushed = [1,2,3,4,5], popped = [4,5,3,2,1]

阅读更多