从 HTTP 角度看 Go 如何实现文件提交

2019-12-10
阅读 4 分钟
2k
最近,尝试录成它的视频,访问地址。发现当时虽然写得比较详细,但也只是介绍用法,可能不知其所以然。比如文件上传那部分,如果不了解 http 文件上传协议 RFC 1867,就很难搞懂为什么代码这么写。

说说 Go 中的变量(附粗制滥造面试题)

2019-12-05
阅读 3 分钟
1.5k
变量,首先是量,即为数据,而后是变,即表示内存块中的数据是可变的。与变量相对的是常量,常即恒常,表示数据不可变。常量的值是在编译期就确定了。

Go 命令行解析 flag 包之通过子命令实现看 go 命令源码

2019-12-02
阅读 7 分钟
1.7k
上篇文章 介绍了 flag 中如何扩展一个新的类型支持。本篇介绍如何使用 flag 实现子命令,总的来说,这篇才是这个系列的核心,前两篇只是铺垫。 前两篇文章链接如下: Go 命令行解析 flag 包之快速上手 Go 命令行解析 flag 包之扩展新类型 希望看完本篇文章,如果再阅读 go 命令的实现源码,至少在整体结构上不会迷失方向...

Go 命令行解析 flag 包之扩展新类型

2019-11-26
阅读 4 分钟
1.8k
上篇文章 说到,除布尔类型 Flag,flag 支持的还有整型(int、int64、uint、uint64)、浮点型(float64)、字符串(string)和时长(duration)。

Go 命令行解析 flag 包之快速上手

2019-11-24
阅读 4 分钟
2.2k
当然,除了标准库 flag 外,也有不少的第三方库。比如,为了替代 flag 而生的 pflag,它支持 POSIX 风格的命令行解析。关于 POSIX 风格,本文末尾有个简单的介绍。

详细介绍 Go 中如何实现 bitset

2019-11-10
阅读 8 分钟
2.2k
最近尝试在 B 站录些小视频,我的 B 站主页。录视频当是为了彻底搞懂某个知识点的最后一步吧,同时也希望能习得一些额外的能力。在讲 Go 如何实现 bitset 的时候,发现这块内容有点难讲。思考后,我决定通过文字辅以视频的方式说明,于是就写了这篇文章。

从词法分析角度看 Go 代码的组成

2019-11-03
阅读 4 分钟
1.5k
之前的 Go 笔记系列,已经完成到了开发环境搭建,原本接下来的计划就是到语法部分了,但后来一直没有前进。主要是因为当时的工作比较忙,分散了精力,于是就暂时放下了。

如何实现 Go Module 依赖关系的可视化

2019-10-23
阅读 7 分钟
2.8k
最近,我开发了一个非常简单的小工具,总的代码量 200 行不到。今天,简单介绍下它。这是个什么工具呢?它是一个用于可视化展示 Go Module 依赖关系的工具。

Go 中实例演示 json 的 map 和 struct 便捷处理转化

2019-10-17
阅读 4 分钟
3.2k
今天简单谈一些 JSON 数据处理的小知识。近期工作中,因为要把数据库数据实时更新到 elasticsearch,在实践过程中遇到了一些 JSON 数据处理的问题。

Go Module 存在的意义与解决的问题

2019-10-14
阅读 4 分钟
1.4k
最近,我在尝试整理一篇关于 Go 包管理发展历史的文章,希望能加深自己对这一块知识的认识。在搜集资料的时候,发现了这篇文章,顺手翻译了一下。

一文理清 Go 引用的常见疑惑

2019-09-28
阅读 5 分钟
2.4k
本文首发于我的博客,如果觉得有用,欢迎点赞收藏,让更多的朋友看到。 今天,尝试谈下 Go 中的引用。 之所以要谈它,一方面是之前的我也有些概念混乱,想梳理下,另一方面是因为很多人对引用都有疑问。我经常会看到与引用有关的问题。 比如,什么是引用?引用和指针有什么区别?Go 中有引用类型吗?什么是值传递?址传...

如何灵活地进行 Go 版本管理

2019-09-20
阅读 4 分钟
1.6k
本文谈下我对 Go 版本管理的一些思考,并给大家介绍一个小工具,gvm。这个话题说起来也很简单,但如果想用的爽,还是要稍微梳理下。 背景介绍 Go 的版本管理,并非包的依赖管理。平时的工作中,很多时候并不会遇到这样的需求,所以可能并不是很明白它的价值。 简单说下我写这篇文章的背景吧。 最近几周,Go 最重要的一则...

Go 中 slice 的 In 功能实现探索

2019-09-15
阅读 8 分钟
1.6k
之前在知乎看到一个问题:为什么 Golang 没有像 Python 中 in 一样的功能?于是,搜了下这个问题,发现还是有不少人有这样的疑问。

Go 回答汇总三

2019-09-08
阅读 4 分钟
1.3k
问题大部分是来自于知乎和 segmentfault。本月有一个问题来自 stackoverflow,我的英文水平一般,读与翻译还行,但写起来还需要锻炼。虽然这一个回答没得到一个赞同,但能被题主采纳,我还是很荣幸的。

Go 笔记之如何测试你的 Go 代码

2019-09-03
阅读 9 分钟
1.3k
差不多两周没有更新 Go 文章了,最近状态不是太好。这篇文章本来准备写的内容非常丰富,结果有点力不从心,移除了好几个小节。思考下来,还是决定拆成几篇。

Go 小知识之 JSON 美化小工具

2019-08-31
阅读 3 分钟
3.3k
后端http接口测试常需要打印 JSON 返回,但是默认的json展示形式是紧凑型的,不易阅读,或许很多人习惯于使用在线格式化工具。但如果能用代码直接 JSON 美化,为什么还要多开一次浏览器呢?

Go 回答之如何阅读 Go 源码

2019-08-28
阅读 12 分钟
3.3k
Go 源码中,应该可分为与语言息息相关的部分,和官方提供的标准库。与语言实现相关的肯定是最难的,不是那么容易理解。可以先主要看标准库,其他的可以先大概了解下。

Elasticsearch 快速开始

2019-08-25
阅读 16 分钟
2.3k
本文非完全直译译文,主要参考的的是 elasticsearch 6.5 版的官网文档 Getting Started,可以把这篇文章理解为个人学习笔记,我力求详略得当吧。

Go 译文之如何使用反射

2019-08-18
阅读 9 分钟
2.2k
作者:Jon Bodner | 地址:Learning to Use Go Reflection 什么是反射 多数情况下,Go 中的变量、类型和函数的使用都是非常简单的。 当你需要一个类型,定义如下: {代码...} 当你需要一个变量,定义如下: {代码...} 当你需要一个函数,定义如下: {代码...} 但有时候,你想使用的变量依赖于运行时信息,它们在编程时并...

Go 译文之竞态检测器 race

2019-08-18
阅读 6 分钟
6k
第三篇 Go 官方博客译文,主要是关于 Go 内置的竞态条件检测工具。它可以有效地帮助我们检测并发程序的正确性。使用非常简单,只需在 go 命令加上 -race 选项即可。

Go 笔记之详解 Go 的编译执行流程

2019-08-13
阅读 4 分钟
4.6k
上篇文章介绍了Golang在不同系统下的安装,并完成了经典的Hello World案例。在这个过程中,我们用到了go run命令,它完成源码从编译到执行的整个过程。

Go 译文之通过 context 实现并发控制

2019-08-12
阅读 9 分钟
2.1k
总体来说,我认为上一篇才是 Go 并发的基础与核心。context 是在前章基础之上,为 goroutine 控制而开发的一套便于使用的库。毕竟,在不同的 goroutine 之间只传递 done channel,包含信息量确实是太少。

Go 问答汇总篇 二

2019-08-11
阅读 3 分钟
1.7k
粗略数了一下,一个多月的时间里,大约回答了 18 个与 Go 有关的问题,问题主要是来源于 segmentfault 和 zhihu 两个平台。后面希望加入更多平台,如 stackoverflow、github 的感兴趣主题。

Go 笔记之 Go 的那些 IDE

2019-08-09
阅读 4 分钟
2.8k
经过前面的一系列工作后,GO的语言环境已经搭建完成。我们也初步体验了GO提供的大部分命令。但在正式进入开发之前,还有件工作要做,那就是选择一款适合自己的IDE。

循环渐进 MySQL 事务隔离级别

2019-08-08
阅读 5 分钟
1.4k
本篇文章的重点在于总结MYSQL事务。 什么是事务 事务简言之就是一组 SQL 执行要么全部成功,要么全部失败。MYSQL 的事务在存储引擎层实现。 事务都有 ACID 特性: 原子性(Atomicity):一个事务必须被视为一个不可分割的单元; 一致性(Consistency):数据库总是从一种状态切换到另一种状态; 隔离性(Isolation):通...

如何破解自如的反爬机制

2019-08-07
阅读 3 分钟
1.6k
在知乎上看到了一个提问,大概意思是使用xpath为什么无法获取到租房价格信息。问题的链接在这里: 问题地址 看到问题,我也以为很好解决,想着很快写完答案就结束了。结果发现自己是too young too simple。要爬取的网址来自 自如租房。 开始解答这个问题,如下: 看到你这问题 本来想介绍一下xpath,结果发现自己 too yo...

Go 译文之如何构建并发 Pipeline

2019-08-06
阅读 13 分钟
3.8k
本文首发于我的博客,如果觉得有用,欢迎点赞收藏,让更多的朋友看到。 作者:Sameer Ajmani | 原文:[链接] 译者前言 这篇文章来自 Go 官网,不愧是官方的博客,写的非常详细。在开始翻译这篇文章前,先简单说明两点。 首先,这篇文章我之前已经翻译过一遍,但最近再读,发现之前的翻译真是有点烂。于是,决定在完全不...

Go 爬虫之 colly 从入门到不放弃指南

2019-08-04
阅读 10 分钟
7.8k
colly 是 Go 实现的比较有名的一款爬虫框架,而且 Go 在高并发和分布式场景的优势也正是爬虫技术所需要的。它的主要特点是轻量、快速,设计非常优雅,并且分布式的支持也非常简单,易于扩展。

如何使用 Logstash 关系型数据库与 ElasticSearch 的数据同步

2019-08-01
阅读 8 分钟
1.8k
近期的主要工作是在为公司的 APP 增加搜索功能。因为也遇到了需要把关系型数据库中的数据同步 ElasticSearch 中的问题,故抽了点时间翻译了这篇官方的博文。最近,在数据同步方面也有些思考。

快速了解 Kafka 基础架构

2019-08-01
阅读 3 分钟
2.3k
kafka是一款开源、追求高吞吐、实时性,可持久化的流式消息队列,可同时处理在线(消息)与离线应用(业务数据和日志)。在如今火热的大数据时代,得到了广泛的应用。