gorilla/mux

JetBrains 发布 2020 年 Go 语言调查报告

给你一囗甜甜゛ 提交于 2020-07-29 05:04:06
有63%的人Go主要用于工作,28%的人用于个人项目 大多数人同时使用多个版本的Go,我估计是要维护不同版本下的项目,下面这个数据印证了这个猜测。 71%的Go开发者主要用来做微服务,排在Scala之后。 GOPATH影响深远啊,74%的人还是只使用一个全局GOPATH,其实最佳实践是分两个,一个用来下载第三方库,另一个用来做项目,但是目前引入新的module之后基本上不用GOPATH了。 版本管理基本上都已经切换到modules,dep和godep紧跟其后,我估计后面这些都是老版本维护工具了 大多数人还是使用Gin为主,echo和beego紧跟其后,44%的人不使用框架。 很多人使用gorilla/mux做路由,但是不可思议的居然有30%的人使用原生的。 大多数人使用内置的testing框架做测试,testify和gomock使用的人也很多,但是还是有20%左右的人不写test,还得继续努力啊 大多数项目看上去都不大,50%左右codebase的文件在100以内。 自从有了modules之后基本上可以脱离GOPATH,而且从数据也可以说明大多数人也是在GOPATH之外新建项目 modules虽好,但是也是存在很多bug或者问题,一半一半的人,一些人愿意,一半人不愿意。 从这个图可以看出来大多数人还是在网站开发,和我们之前调研的结果一样,国内外开发者还是主要在这一块。 来源:

利用docker来部署go应用程序

你说的曾经没有我的故事 提交于 2020-02-27 11:30:00
利用docker实现go程序的快速部署 最近很长一段时间一直通过各种渠道去了解国内外有关devops方面的实践,感受很多的知识点都特别的分散,所以想通过系统的整理来巩固相应的知识体系。接下来会撰写一系列有关容器化的文章。 1、 利用docker部署一个简单的go程序,并且利用阿里云的平台,进行镜像的生成 2、 利用docker-compose部署一个复杂的go程序,同时部署包含多个不同子容器的集成 3、 利用gitlab和Harbor来做ci/cd 容器 是独立的软件包,能够将应用程序以及所有的依赖项、工具、库、配置文件 以及运行该应用程序所需要的所有的其他内容捆绑在一起。 通过docker可以实现将您 的应用环境从运行的物理操作系统上面抽象一层虚拟操作环境。从而保证你的程序从开发到测试以及现场的部署,保证了环境 的一致性问题。 创建一个简单的Go项目 在开始演习之前,我们通过下面命令来创建一个新的目录,接下来我们所有的文件都将存放在这个目录当中。 mkdir go-docker 在创建完成目录之后,我们需要用go的原生命令来初始化相应的go模块。go mod是go11新增加的功能,在这之前出现很好几种模块化的解决方案,在go11之后官方终于给出了自己的解决方案. cd go-docker go mod init github.com/wenchangshou2/go-docker