Golang Gin实践 连载十三 优化你的应用结构和实现Redis缓存

2018-06-02
阅读 8 分钟
20.6k
原文地址:优化你的应用结构和实现Redis缓存项目地址:[链接] 如果对你有所帮助,欢迎点个 Star 👍 前言 之前就在想,不少教程或示例的代码设计都是一步到位的(也没问题) 但实际操作的读者真的能够理解透彻为什么吗?左思右想,有了今天这一章的内容,我认为实际经历过一遍印象会更加深刻 规划 在本章节,将介绍以下功...

Golang Gin实践 连载十二 优化配置结构及实现图片上传

2018-05-27
阅读 15 分钟
17k
原文地址:优化配置结构及实现图片上传项目地址:[链接] 如果对你有所帮助,欢迎点个 Star 👍 前言 一天,产品经理突然跟你说文章列表,没有封面图,不够美观,!)&¥!&)#&¥!加一个吧,几分钟的事 你打开你的程序,分析了一波写了个清单: 优化配置结构(因为配置项越来越多) 抽离 原 logging 的 File ...

panic: time: missing Location in call to Time.In

2018-05-22
阅读 2 分钟
15.8k
前提 1、docker 空镜像(或类似环境) 2、Go 应用中 使用了 loc, _ := time.LoadLocation("Asia/Chongqing") 问题 {代码...} 原因 时间的位置信息是从本地文件系统中提取的,大多数系统都支持它,但还是取决于当前系统。具体的配置存储路径: {代码...} 进入该目录就可以看到各时区的配置信息 {代码...} 但在空镜像(或...

Go 的 fake-useragent 了解一下

2018-05-21
阅读 4 分钟
12.4k
有的网站会根据 User-Agent 的不同,跳转到不同(PC、M)的站点,也有根据版本的不同给出不一样的提示等等,而 User-Agent 的变化更是爬虫里的基础姿势

Gin实践 连载十一 Cron定时任务

2018-04-29
阅读 5 分钟
30.9k
原文地址:Cron定时任务项目地址:[链接] 如果对你有所帮助,欢迎点个 Star 或赞 😄 在实际的应用项目中,定时任务的使用是很常见的。你是否有过 Golang 如何做定时任务的疑问,莫非是轮询? 在本文中我们将结合我们的项目讲述 Cron 介绍 我们将使用 cron 这个包,它实现了 cron 规范解析器和任务运行器,简单来讲就是包...

爬虫带你了解一下Golang的市场行情

2018-04-28
阅读 6 分钟
16.1k
原文地址:了解一下Golang的市场行情项目地址:[链接] 如果对你有所帮助,欢迎 Star,给文章来波赞,这样可以让更多的人看见 :) 目标 在工作中 Golang 已是一份子,想让大家了解一下 Golang 的市场行情,也想让更多的人熟悉它。因此主要是展示数据分析的结果 目标站点是 某招聘网站 的职位数据抓取和分析,爬取城市分别...

Gin实践 连载十 定制 GORM Callbacks

2018-04-15
阅读 6 分钟
23.6k
GORM itself is powered by Callbacks, so you could fully customize GORM as you want

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

2018-04-01
阅读 3 分钟
8k
原文地址:爬取汽车之家 二手车产品库项目地址:[链接] 目标 最近经常有人在耳边提起汽车之家,也好奇二手车在国内的价格是怎么样的,因此本次的目标站点是 汽车之家 的二手车产品库 分析目标源: 一页共24条 含分页,但这个老产品库,在100页后会存在问题,因此我们爬取99页 可以获取全部城市 共可爬取 19w+ 数据 开始 ...

Gin实践 番外 Golang交叉编译

2018-03-26
阅读 4 分钟
18k
项目地址:[链接] (快上车,支持一波) 原文地址:Golang交叉编译 前言 在 连载九 讲解构建Scratch镜像时,我们编译可执行文件用了另外一个形式的命令,不知道你有没有疑问? {代码...} 说明 我们将讲解命令各个参数的作用,希望你在阅读时,将每一项串联起来,你会发现这就是交叉编译相关的小知识 也就是 Golang 令人...

Gin实践 连载九 将Golang应用部署到Docker

2018-03-24
阅读 8 分钟
40.1k
项目地址:[链接] (快上车,支持一波)原文地址:将Golang应用部署到Docker 注: 开始前你需要安装好 docker,配好镜像源 本章节源码在 f-20180324-docker 分支上 从本章节开始 项目目录都以 go-gin-example 为基准(请配合自己本地项目灵活变动) 介绍 在这里简单介绍下Docker,建议深入学习 Docker 是一个开源的轻量...

Golang爬虫 爬取最简单的豆瓣电影 Top250

2018-03-21
阅读 2 分钟
7.5k
爬虫是标配了,看数据那一刻很有趣。第一个就从最最最简单最基础的爬虫开始写起吧! 原文地址:爬取最简单的豆瓣电影 Top250项目地址:[链接] 目标 我们的目标站点是 豆瓣电影 Top250,估计大家都很眼熟了 本次爬取8个字段,用于简单的概括分析。具体的字段如下: 简单的分析一下目标源 一页共25条 含分页(共10页)且分...

Gin实践 连载八 为它加上Swagger

2018-03-18
阅读 3 分钟
43.7k
一个好的 API's,必然离不开一个好的API文档 要开发纯手写 API 文档,不存在的 :=) 原文地址:为它加上Swagger项目地址:[链接] 安装 swag 1、go get {代码...} 若 $GOPATH/bin 没有加入$PATH中,你需要执行将其可执行文件移动到$GOBIN下 {代码...} 2、gopm get 该包有引用golang.org上的包,若无科学上网,你可以使用 g...

Gin实践 连载七 Golang优雅重启HTTP服务

2018-03-15
阅读 6 分钟
29.3k
优雅的重启服务 在前面编写案例代码时,我相信你会想到 每次更新完代码,更新完配置文件后就直接这么 ctrl+c 真的没问题吗,ctrl+c到底做了些什么事情呢? 在这一节中我们简单讲述 ctrl+c 背后的信号以及如何在Gin中优雅的重启服务,也就是对 HTTP 服务进行热更新 原文地址:Golang优雅重启HTTP服务项目地址:[链接] ctr...

聊一聊,Golang “相对”路径问题

2018-03-13
阅读 3 分钟
25k
原文地址:聊一聊,Golang “相对”路径问题 前言 Golang 中存在各种运行方式,如何正确的引用文件路径成为一个值得商议的问题 以 gin-blog 为例,当我们在项目根目录下,执行 go run main.go 时能够正常运行(go build也是正常的) {代码...} 那么在不同的目录层级下,不同的方式运行,又是怎么样的呢,带着我们的疑问去...

Go依赖管理工具 - dep

2018-03-06
阅读 3 分钟
13k
Go依赖管理工具 Go dependency management tool 环境要求 Golang >= 1.9 Dep 目前版本: {代码...} Latest release为v0.4.1 安装 {代码...} 若$GOPATH/bin不在PATH下,则需要将生成的dep文件从$GOPATH/bin移动至$GOBIAN下 验证 {代码...} 初始化 在项目根目录执行初始化命令,dep在初始化时会分析应用程序所需要的所...

dep - Solving failure: No versions/No more versions of xxx

2018-03-06
阅读 1 分钟
6k
前言 如果你正在使用Golang的dep工具,我相信你可能会遇到这个问题 dep 版本 {代码...} 当前Latest release为v0.4.1 问题 使用dep包管理工具时,无论执行dep init -v或是dep ensure 总是报版本错误(no more versions、no versions)的问题 {代码...} 原因 算是一个bug,是由于缓存的错误没有得到正确的更新 解决方案 {...

Grpc+Grpc Gateway实践三 Swagger了解一下

2018-03-04
阅读 7 分钟
21.5k
在上一节,我们完成了一个服务端同时支持Rpc和RESTful Api后,你以为自己大功告成了,结果突然发现要写Api文档和前端同事对接= = 。。。

如此,用dep获取私有库

2018-03-01
阅读 2 分钟
10.9k
如此,用dep获取私有库 介绍 dep是一个依赖管理工具。它需要1.9或更新的Golang版本才能编译 dep已经能够在生产环节安全使用,但还在官方的试验阶段,也就是还不在go tool中。但我想是迟早的事 :=) 指南和参考资料,请参阅文档 获取私有库 我们常用的git方式有两种,第一种是通过ssh,第二种是https 本文中我们以gitlab.c...

CentOS 生成SSH-KEY

2018-02-28
阅读 1 分钟
18.3k
一、检查SSH-KEY是否已经生成过 {代码...} 二、生成新的SSH-KEY {代码...} 三、生成成功 {代码...} 四、查看生成成功的KEY {代码...} {代码...} 五、将id_rsa.pub的内容添加到GitLab

Grpc+Grpc Gateway实践二 有些复杂的Hello World

2018-02-27
阅读 18 分钟
30.7k
由于本实践偏向Grpc+Grpc Gateway的方面,我们的需求是同一个服务端支持Rpc和Restful Api,那么就意味着http2、TLS等等的应用,功能方面就是一个服务端能够接受来自grpc和Restful Api的请求并响应

Grpc+Grpc Gateway实践一 介绍与环境安装

2018-02-23
阅读 5 分钟
37.1k
原文地址:介绍与环境安装 假定我们有一个项目需求,希望用Rpc作为内部API的通讯,同时也想对外提供Restful Api,写两套又太繁琐不符合 于是我们想到了Grpc以及Grpc Gateway,这就是我们所需要的 准备环节 在正式开始我们的Grpc+Grpc Gateway实践前,我们需要先配置好我们的开发环境 Grpc Protoc Plugin Protocol Buffer...

Gin实践 连载六 编写一个简单的文件日志

2018-02-16
阅读 6 分钟
15.6k
原文地址:编写一个简单的文件日志 在上一节中,我们解决了API's可以任意访问的问题,那么我们现在还有一个问题。 就是我们的日志,都是输出到控制台上的,这显然对于一个项目来说是不合理的,因此我们这一节简单封装log库,使其支持简单的文件日志! 项目地址:[链接] 新建logging包 我们在pkg下新建logging目录,新建f...

Gin实践 连载五 使用JWT进行身份校验

2018-02-16
阅读 7 分钟
33.4k
原文地址:使用JWT进行身份校验 在前面几节中,我们已经基本的完成了API's的编写 但是,还存在一些非常严重的问题,例如,我们现在的API是可以随意调用的,这显然还不够完美,是有问题的 那么我们采用 jwt-go (GoDoc)的方式来简单解决这个问题 项目地址:[链接] 下载依赖包 首先,我们下载jwt-go的依赖包 {代码...} 编...

Gin实践 连载四 搭建Blog API's(三)

2018-02-16
阅读 12 分钟
17.3k
编写Article的API's、Models 项目地址:[链接] 定义接口 本节编写文章的逻辑,我们定义一下接口吧! 获取文章列表:GET("/articles") 获取指定文章:POST("/articles/:id") 新建文章:POST("/articles") 更新指定文章:PUT("/articles/:id") 删除指定文章:DELETE("/articles/:id") 编写路由逻辑 在routers的v1版本下,...

Gin实践 连载三 搭建Blog API's(二)

2018-02-16
阅读 9 分钟
27.8k
编写Tag的API's、Models 项目地址:[链接] 本大节将会涉及到以下知识点: gin:Golang的一个微框架,性能极佳 beego-validation:本节采用的beego的表单验证库,中文文档 gorm,对开发人员友好的ORM框架,英文文档 com,工具包 业务逻辑的编写 我们开始编写业务代码,博客文章会有标签的概念, 定义接口 本节正是编写标...

Gin实践 连载二 搭建Blog API's(一)

2018-02-16
阅读 11 分钟
54.3k
若有任何问题或建议,欢迎及时交流和碰撞。我的公众号是 【脑子进煎鱼了】,GitHub 地址:[链接]。Gin搭建Blog API's (一)项目地址:[链接]思考首先,在一个初始项目开始前,大家都要思考一下各种的程序配置写在代码中,好吗API的错误码硬编在程序中,合适吗db句柄谁都去Open,好吗获取分页等公共参数,不统一管理起来...

Gin实践 连载一 Golang介绍与环境安装

2018-02-16
阅读 4 分钟
42k
Gin is a HTTP web framework written in Go (Golang). It features a Martini-like API with much better performance -- up to 40 times faster. If you need smashing performance, get yourself some Gin.