Go语言的 net/http/pprof 包是令人难以置信的强大的,调试正在运行的生产服务器的这个功能微不足道,而在这个调试过程,就很容易不经意间将调试信息暴露给世界。在这篇文章中,我们用 zmap project 作为例子,展示一个现实中真正的问题,并且说明你可以采取的预防措施。 我要晨读

已有3074人晨读

我相信你有过调用 API 接口需要使用退避算法的时候。在 Go 语言现有技术中,有 github.com/cenkalti/backoff,github.com/jpillora/backoff,和其它库可以使用。 我要晨读

已有3090人晨读

本系列文章总共包括 4 篇,主要帮助大家理解 Go 语言中一些语言机制和其背后的设计原则,包括指针、栈、堆、逃逸分析和值传递/地址传递。这一篇是本系列的第一篇,主要介绍栈和指针。 我要晨读

已有1092人晨读

你或许想在 Docker 中使用 Go,原因有: 如果你想在 Kubernetes 上运行,打包为镜像是必须的(就像我一样) 你不得不在同一台机器上运行不同的 Go 版本 开发和生产都需要精确的、可复制的、可共享的和确定的环境 你需要快速和简单的方式来构建和部署编译好的二进制文件 你想快速开始(任何安装了 Docker 的人都可以直接开始编写代码而不需要设置其他依赖或 GOPATH 环境变量) 我要晨读

已有681人晨读

在之前的文章中,我提到了一个关于 accept interfaces, return structs 的参考指南,在查看同事代码的时候经常会被问“为什么”。特别是这不是一个必须遵守的规则。这个想法的关键点以及理解什么时候妥协,在于维护项目灵活性和避免抢占抽象(译者注:“Preemptive abstractions” 并发系统中连续组件的轻量级验证方案的一种抽象技术)之间的平衡。 我要晨读

已有1048人晨读

Go 语言没有内置 abs() 标准函数来计算整数的绝对值,这里的绝对值是指负数、正数的非负表示。 我最近为了解决 Advent of Code 2017 上边的 Day 20 难题,自己实现了一个 abs() 函数。如果你想学点新东西或试试身手,可以去一探究竟。 我要晨读

已有785人晨读

为你的 API 提供一个文档比你想象中更加有用,即使你没有公开你的 API ,为你的前端或者移动团队提供一个文档会比你提供截图/片段或使用 Postman/Insomnia (带有同步的高级版本)等付费产品更容易。借助 SwaggerUI ,您可以自动获得所有 API 的设计良好的文档。当切换到 Go 时,由于缺少文档/教程,我在配置它的时候出现了一些问题,所以我决定写一个。 我要晨读

已有1482人晨读

最近我使用 Go 语言完成了一个正式的 web 应用,有一些方面的问题在使用 Go 开发 web 应用过程中比较重要。过去,我将 web 开发作为一项职业并且把使用不同的语言和范式开发 web 应用作为一项爱好,因此对于 web 开发领域有一些心得体会。 我要晨读

已有2043人晨读

Go 是一门相当新的语言,并且在最近几年得到了越来越多的关注。它的功能非常强大,而且拥有出色的工具来设计快速高效的 API 接口。虽然已经有很多库可以创建一个 API 接口,像 Go Buffalo 和 Goa 之类;但是,如果能够做到除了数据库和缓存连接器之外,仅仅使用标准库来创建,无疑将非常有趣。 我要晨读

已有719人晨读

在网络编程做了一些研究之后,我邂逅了一篇题目为《Let's Make a NTP Client in C》,由 David Lettier(Lettier) 编写的文章。这篇文章鼓舞了我用 Go 去做相似的事。 我要晨读

已有1106人晨读

函数是一个独立的,可以被重用的,可以一次又一次运行的代码块。函数可以有输入参数,也可以有返回值输出。 我要晨读

已有605人晨读

出于好奇,我最近开始接触一些 Go 的代码。我之前对它有一些了解,但是从来没有尝试去写(没有需求)。但是现在我们团队选择使用 Go 来开发一个项目,所以我觉得这是一个获得实际经验的好机会。 我要晨读

已有842人晨读

为了回答这个问题, 我们需要了解一下有关计算机语言的理论知识。 但只要一点就足够了,不用担心有多复杂。 计算机语言,是由一系列有效的规则组成的。比如下面这个规则: 我要晨读

已有854人晨读

身份认证和授权对 web 应用的安全至关重要。最近,我用 Go 完成了我的第一个正式的 web 应用,这篇文章是在这个过程中我所学到的部分内容。 我要晨读

已有1280人晨读

Go 带来的是 Gotham (译者注:哥谭,是蝙蝠侠的家乡,充满犯罪的黑暗城市,大意就是乱世出枭雄,Go 正是这样是个超级英雄而存在) ,它将分布式系统从黑暗中摆脱出来。 插画归功于 Ashley McNamara 和 Renee French (译者注:两位都是设计 Go 那只老鼠的大神) 我要晨读

已有716人晨读

我利用闲暇的时间尝试着用 Go 来写一个网站小应用。在 Go 标准库中有一些非常棒的包可以在 Web 应用开发中使用并且我非常喜欢使用它们。实际上,在 Go 官方的 wiki 中有一个编写 Web 应用的小教程。但是,却没有提及如何用标准库去测试 Web 应用,而且也没有搜索到比较好的一个方案。 我要晨读

已有628人晨读

应用的复杂性在很多方面都在增长,诸如可扩展性、开发、测试以及部署。在企业级开发中,那种老式的大型单一架构看起来已经过时了。在我工作的众多公司中,都希望系统是通过简单的插件组合在一起的方式构建的。这就是为什么许多数公司都基于微服务架构来开发他们的产品。目前有 Netflix(译者注:美国流媒体巨头、世界最大的收费视频网站)、PayPal、Amazon、eBay 以及 Twitter 等少数几家公司正在使用微服务。 我要晨读

已有776人晨读

在以前内存和处理能力(CPU)都是非常昂贵的,于是直接在位上编程就成为了处理信息的首选方式(在有些情况下也是唯一的方式)。如今,直接对位进行操作在底层系统、图像处理和密码学等领域还是至关重要的。 我要晨读

已有1483人晨读