了解一下Golang的市场行情

项目地址:https://github.com/go-crawler/lagou_jobs 如果对你有所帮助,欢迎 Star,给文章来波赞,这样可以让更多的人看见 :) 目标 在工作中 Golang 已是一份子,想让大家了解一下 Golang 的市场行情,也想让更多的人熟悉它。因此主要是展示数据分析的结果 目标站点是 某招……

阅读全文

「连载十」定制 GORM Callbacks

涉及知识点 GORM 本文目标 GORM itself is powered by Callbacks, so you could fully customize GORM as you want GORM 本身是由回调驱动的,所以我们可以根据需要完全定制 GORM,以此达到我们的目的,如下: 注册一个新的回调 删除现有的回调 替换现有的回调 注册回调的顺序 在 GORM 中包含以上四类 Callbacks,我们结合项目选用 “替换现有的回调” 来解决一个小痛……

阅读全文

爬取汽车之家 二手车产品库

项目地址:https://github.com/go-crawler/car-prices 目标 最近经常有人在耳边提起汽车之家,也好奇二手车在国内的价格是怎么样的,因此本次的目标站点是 汽车之家 的二手车产品库 分析目标源: 一页共 24 条 含分页,但这个老产品库,在 100 页后会存在问题,因此我们爬……

阅读全文

「番外」Golang 交叉编译

知识点 跨平台编译 本文目标 在 连载九 讲解构建 Scratch 镜像时,我们编译可执行文件用了另外一个形式的命令,如下: $ CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o go-gin-example . 我想你可能会有疑问,今天本文会针对这块进行讲解。 说明 我们将讲解命令各个参数的作用,希望你在阅读时,将每一项串联起来,你会发现这就是交叉编译相关的小知识 也就是 Golang 令……

阅读全文

「连载九」将Golang应用部署到Docker

涉及知识点 Go + Docker 本文目标 将我们的 go-gin-example 应用部署到一个 Docker 里,你需要先准备好如下东西: 你需要安装好 docker。 如果上外网比较吃力,需要配好镜像源。 Docker 在这里简单介绍下 Docker,建议深入学习 Docker 是一个开源的轻量级容器技术,让开发者可以打包他们的应用以及应用运行的上下文环境到一个可移植的镜……

阅读全文

爬取豆瓣电影 Top250

爬虫是标配了,看数据那一刻很有趣。第一个就从最最最简单最基础的爬虫开始写起吧! 项目地址:https://github.com/go-crawler/douban-movie 目标 我们的目标站点是 豆瓣电影 Top250,估计大家都很眼熟了 本次爬取 8 个字段,用于简单的概括分析。具体的字段……

阅读全文

「连载八」为它加上Swagger

涉及知识点 Swagger 本文目标 一个好的 API's,必然离不开一个好的API文档,如果要开发纯手写 API 文档,不存在的(很难持续维护),因此我们要自动生成接口文档。 安装 swag $ go get -u github.com/swaggo/swag/cmd/swag@v1.6.5 若 $GOROOT/bin 没有加入$PATH中,你需要执行将其可执行文件移动到$GOBIN下 mv $GOPATH/bin/swag /usr/local/go/bin 验证是否安装成功 检查 $GOBIN 下是否有 swag 文件,如……

阅读全文

「连载七」优雅的重启服务

知识点 信号量的了解。 应用热更新。 本文目标 在前面编写案例代码时,我相信你会想到,每次更新完代码,更新完配置文件后,就直接这么 ctrl+c 真的没问题吗,ctrl+c到底做了些什么事情呢? 在这一节中我们简单讲述 ctrl+c 背后的信号以及如何在Gin中优雅的重启服务,也就是对 HTTP 服务进行热更新。 ctrl + c 内核在某……

阅读全文

聊一聊,Go 的相对路径问题

前言 Golang 中存在各种运行方式,如何正确的引用文件路径成为一个值得商议的问题 以 gin-blog 为例,当我们在项目根目录下,执行 go run main.go 时能够正常运行(go build也是正常的) [$ gin-blog]# go run main.go [GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production. - using env: export GIN_MODE=release - using code: gin.SetMode(gin.ReleaseMode) [GIN-debug] GET /api/v1/tags --> gin-blog/routers/api/v1.GetTags (3 handlers) ... 那么在不同的目录层级下,不同的方式运行,又是怎么样的呢,带……

阅读全文

「连载三」Swagger了解一下

在上一节,我们完成了一个服务端同时支持Rpc和RESTful Api后,你以为自己大功告成了,结果突然发现要写Api文档和前端同事对接= = 。。。 你寻思有没有什么组件能够自动化生成Api文档来解决这个问题,就在这时你发现了Swagger,一起了解一下吧! 介绍 Swagger Swagger是全球最大……

阅读全文