分类: Golang

共 17 篇
Golang
Go 超时控制导致内存泄露

这是一个很经典的面试题,例如现在面试官让你写一个超时控制函数,你是否有注意到内存泄露? 如果你的代码是这样写的,那么恭喜你,内存泄露了! 我们修改一下 main 函数: 执行一下再看看,效果很神奇。 它会一直打印 52,证明我们上面开的 50 个协程一直没有被释放。 问题其实就出在我画的圈里面,因为每一个程序都超时了,…

2 分钟 · 41 次阅读
Golang
Golang 从零开始学习微服务

这个系列的文章来自于,我们以前在团队内部的分享,用来做微服务体系架构设计的学习使用,一开始是放在 github 上的,近期有时间,就打算整理一下,顺便将这段时间的学习和沉淀融入进去,可能会很庞大,所以就先列出来一个目录。 Golang 基础篇 如果不喜欢看视频的话推荐看这个系列的文章 : https://www.liw…

2 分钟 · 36 次阅读
Golang
goridge 高性能的 PHP-to-Golang RPC编解码器库

Goridge 是 SpiralsCout 开源的高性能的 PHP 到 Golang 编解码器库。该库可以帮助你在 PHP 调用 Go 的服务方法。 Goridge 入门 使用方法: 我们先来编写简单的 Go 程序,目的就是提供一个 rpc 接口给 PHP 进行访问。 Hi 函数用来接受一个 name 入参。 PHP …

3 分钟 · 16 次阅读
Golang
Web Server 设计详解

Web 核心 Server 在 《Golang 主流 Web 框架路由实现分析》中我们注意到对于一个 Web 框架来说,至少提供了三个抽象: 代表服务器的吃哦续爱那个,我们这里称之为 Server 代表上下文的抽象,我们这里称之为 Context 路由树 从前面框架对比来看,对于一个 Web 框架来说,我们首先要有一个…

5 分钟 · 15 次阅读
Golang
Golang 主流 Web 框架路由实现分析

Beego 路由实现分析 Beego 的设计初衷是为了提供一个简单易用的 web 框架,同时也保证了高性能和可扩展性。它的设计理念是基于 MVC 模式,在 Go 最早期的时候算是最流行的框架之一。 下面的代码是 Beego 最简单的使用方法。 这是一段非常经典的基于 MVC 的代码结构。 web.Router 用来注册…

14 分钟 · 26 次阅读
Golang
Golang 中间件集成最佳实践 0x01 中间件集成的思考

你好,我是一笑。 在企业中越早进行公共库的沉淀越有利,在企业开发中中间件的集成是每个团队都需要的比如 MySQL、Redis、Kafka 这些中间件,几乎每个团队都需要使用,我们在开发项目的时候也需要使用这些中间件来构建我们的应用。 在团队使用 Go 语言构建应用的时候,各个项目组可能会存在自己封装中间件的行为,虽然大…

5 分钟 · 36 次阅读
Golang
Go 工程化思考 0x2 如何优雅的处理错误

在 Go 中的错误处理与其他语言例如 Java,PHP 的错误处理还是有很大差异的,他没有异常的 try catch 机制,而是在函数的返回值中带上 error,让调用者先判断 error 在处理函数的返回值,调用者通过 error 的级别来判断是否触发 painc,这种高度自主化的错误处理模式原本是 go 语言的一大…

6 分钟 · 26 次阅读
Golang
Go 工程化思考 0x1 : 为工程设计合理的目录结构

如果你尝试学习 Go 或者你正在为自己建立一个 PoC 或一个玩具项目,这个项目布局是没啥必要的。从一些非常简单的事情开始一个 main.go 文件绰绰有余。当有更多的人参与这个项目时,你将需要更多的结构,包括需要一个 toolkit 来方便生成项目的模板,尽可能大家统一的工程目录布局。 因为在大型多人协作的项目中如果…

7 分钟 · 23 次阅读
Golang
Golang 手撸 IoC 容器

0x00 什么是 IoC IoC (控制反转)并不是一个新鲜的概念,如果之前有过 Java 经验,那么肯定不会对 IoC 陌生,而 PHP 近几年的框架其实也开始出现了大量的容器应用,在这里需要注意 IoC 和 IoC 容器是两个概念,不要混淆。 IoC 是编程思想,而 IoC 容器是帮助我们进行 IoC 的工具,我们…

13 分钟 · 40 次阅读
Golang
Go & ES7.4速学:用 Golang 导入商品数据

在导入数据之前,我这里准备了一个book 表,在表中存储了一万条数据。 我们现在想办法,将这些数据导入到 es 中,在这里我们是用 grom 来完成数据的读取,我们先导入 50 条数据。导入数据 之前我们应该先创建 mapping。 先简单说一下 key 和 keyword 的区别,如果需要全文检索那么就用 text …

2 分钟 · 16 次阅读