• http 代理 在Go语言这里,实现起来很简单

    代理是网络中的一项重要的功能,其功能就是代理网络用户去取得网络信息。形象的说:它是网络信息的中转站,对于客户端来说,代理扮演的是服务器的角色,接收请求报文,返回响应报文;对于 web 服务器来说,代理扮演的是客户端的角色,发送请求报文,接收响应报文。

    go开发, 技术干货 2022年6月22日
  • go也能依赖注入?进来细说

    需要依赖注入时,Go有什么实现方案?本文详细介绍了使用google/wire库实现依赖注入的方法。

    go开发, 技术干货 2022年6月10日
  • Golang事件系统Event Bus

    本文介绍了事件总线实现。最近在学习开源项目Grafana的代码,发现作者实现了一个事件总线的机制,在项目里面大量应用,效果也非常好,代码也比较简单,介绍给大家看看。

    go开发, 技术干货 2022年6月8日
  • 什么是围棋?Golang 编程语言含义解释

    在本文中,您将学习:Go 从哪里来,现在在哪里,为什么我认为你应该学习它,如何在 Windows 10 上安装和运行它,以及如何用 Go 编写你的第一个“Hello World”程序。

    go开发, 技术干货 2022年6月7日
  • Go 中的数据分析——如何使用 Gota 包

    数据分析是过滤、操纵和处理原始数据和数据集以从中获得洞察力的过程。 Python 和 R 通常是数据分析的首选语言。但是这些天,Go 正为此目的而变得越来越流行。 在本教程中,我们将介绍 Gota(Go 中的数据分析包)及其核心功能和用途。 先决条件 了解 Golang 中的函数式编程。 安装了 Go 的 Golang IDE(我使用 Goland 和 Go 1.17.6,但您可以使用其他任何版本) 什么是戈塔? Gota 是 Go 编程语言的数据框和数据整理模块。 Gota 类似于 Pytho…

    go开发, 技术干货 2022年6月7日
  • Golang 请求限速、排队实现

    概要 在调用第三方 API 的时候, 基本都有访问限速的限制条件. 第三方的 API 有多个的时候, 就不太好控制访问速度, 常常会导致 HTTP 429(Too Many Requests) 然后就会有一段时间的禁止访问. 为了应对这种限速的情况, 通过一个简单的请求队列来控制访问的速度, 之后基本没遇到过 HTTP 429 了. 实现思路 首先, 每个请求包装成一个 RequestParam 的 struct, 其中包含请求的地址,类型,参数以及 response 的 channel. 发送…

    go开发, 技术干货 2022年4月29日
  • Golang 并发原理分析

    Go语言是为并发而生的语言,Go语言是为数不多的在语言层面实现并发的语言;也正是Go语言的并发特性,吸引了全球无数的开发者。 并发(concurrency)和并行(parallellism) 并发(concurrency):两个或两个以上的任务在一段时间内被执行。我们不必care这些任务在某一个时间点是否是同时执行,可能同时执行,也可能不是,我们只关心在一段时间内,哪怕是很短的时间(一秒或者两秒)是否执行解决了两个或两个以上任务。 并行(parallellism):两个或两个以上的任务在同一时刻…

    go开发, 技术干货 2022年4月22日
  • 使用 Go 语言实现汉诺塔(Hanota)算法

    我最近重温了一下《猩球崛起》这部电影。在电影中,凯撒就玩了河内塔游戏。你还有印象吗?其实独自一人玩一些游戏是好难的😭(译者不知作者为何这么说🤔,难道是无聊嘛?🤓),今天我们就用 Golang 来实现一下汉诺塔游戏。 游戏起源 相传最早发明这个问题的人是法国数学家爱德华·卢卡斯(Edouard Lucas)。 在世界中心的贝拿勒斯(印度北部)圣殿中,有三根宝石针插入了一个黄铜盘中。在印度教主神梵天(Brahma)创世时,将其中一根针上从下到上装配了 64 个金片,这也就是所谓的汉诺塔。 无论白天黑…

    go开发, 技术干货 2022年4月19日
  • Go语言 如何配制 高性能sql.DB 的

    有很多教程是关于Go的sql.DB类型和如何使用它来执行SQL数据库查询的。但大多数内容都没有讲述SetMaxOpenConns(), SetMaxIdleConns() 和 SetConnMaxLifetime()方法, 您可以使用它们来配置sql.DB的行为并改变其性能。 在本文我将详细解释这些设置的作用,并说明它们所能产生的(积极和消极)影响。 开放和空闲连接 一个sql.DB对象就是一个数据库连接池,它包含“正在用”和“空闲的”连接。一个正在用的连接指的是,你正用它来执行数据库任务,例如…

    go开发, 技术干货 2022年3月1日
  • 如何确定一个 Go 变量会被分配在哪里?

    本文作者记录了 Go 变量分配位置的观测技巧和 Go 语言设计思路。 一、由 iter 包引发的疑问 最近在 GitHub 上偶然发现了 Brad Fitzpatrick 的 iter 包,整个包只有 一个函数(一行代码): 但其中的一行注释令人费解: It does not cause any allocations. 1. 空结构体 我们知道,struct{} 是空结构体(empty struct)。关于空结构体,Dave Cheney 在 The empty struct 中作了很好地阐述…

    go开发, 技术干货 2021年12月2日
历经多年发展,已成为国内好评如潮的Linux云计算运维、SRE、Devops、网络安全、容器云、Go、Python开发专业人才培训机构!