ThinkGo 是一个轻量级的 Go 语言 MVC 框架,目前支持路由、中间件、控制器、请求、响应、Session、视图、日志等 web 框架应该具备的基本功能,致力于让代码简洁、富于表达力,帮助开发者快速构建一个 We…
分类:go教程
mock go 程序的新方法
一直以来,我都认为在 go 里面 mock 是非常困难的。不像动态语言或者跑在 VM 上的语言,go 要求在开发的时候就给 mock 介入预留空间,不然测试的时候会不得其门而入。开发的时候需要头疼的事情可多了,还要求再考…
Golang gRPC实践 连载二 Hello gRPC
Hello gRPC 按照惯例,这里从一个Hello项目开始,本项目定义了一个Hello Service,客户端发送包含字符串名字的请求,服务端返回Hello消息。 流程: 编写.proto描述文件 编译生成.pb.go…
Golang gRPC实践 连载三 Protobuf语法
Protobuf语法 gRPC推荐使用proto3,本节只介绍常用语法,更多高级使用姿势请参考官方文档 Message定义 一个message类型定义描述了一个请求或相应的消息格式,可以包含多种类型字段。例如定义一个搜索…
[golang] 结构体json序列化时,如何自定义时间格式
最近开发一个公司项目,发现Go语言结构体Json转换时,存在时间格式不一样问题。在网上找了很久也没有找到一个很好的方案。即结构体序列化后的格式是`1993-01-01T20:08:23.000000028+08:00`。…
go标准库之flag包
命令行参数常用来为命令行程序指定选项。比如在 wc -l 命令中 -l 就是命令行参数。golang 提供了 flag 包来支持基本的命令行参数解析。 命令行语法 命令行语法如下: -flag -flag=x -flag…
你不知道的go channel
最近在开发过程当中遇到了几个goroutine通信的问题,我觉得这几个问题非常具有代表性,因此拿出来和大家分享一下。 检查channel是否关闭 开发过程当中有遇到这样的一种情况,需要检查channel是否关闭,如果关闭…
golang使用redis对文章进行投票
最近在学redis,本人菜鸟.代码是过程式的,没考虑优化.就是发篇文章记录一下.感觉redis还是很强大的. 规则 评分 = 支持票数*(86400/200)+时间戳, 文章获得为200票就可以在首页展示一天,随着时间的…
【go同步编程】
锁 互斥锁 函数write中的这条defer语句保证了在该函数被执行结束之前互斥锁mutex一定会被解锁。 var mutex sync.Mutex func write() { mutex.Lock() defer m…
基于go的反射实现查询生成器
基于go的反射实现查询生成器 参考go系列教材反射章节,源代码没有实现输出字段,我根据对反射的理解实现了对字段进行输出。beego的orm就是基于反射实现的。 /* # @Time : 2019-01-05 16:57 …
Go Module 工程化实践(一):基础概念篇
人的一切痛苦,本質上都是對自己的無能的憤怒。 — 王小波 1. 基础概念篇 Go Module已经来了,默认Go Module模式将会在1.13版本发布。也就是说半年后,就会全面铺开。鉴于官方提供扫盲文档中的…
Golang 工具列表
gopkgs goverage goplay reviewdog – https://medium.com/@haya14bus… godebug go-httpstat – http…