Elasticsearch 快速开始

前言 本文非完全直译译文,主要参考的的是 elasticsearch 6.5 版的官网文档 Getting Started,可以把这篇文章理解为个人学习笔记,我力求详略得当吧。 文末会附上 Getting Started 阅读梳理的思维导图。

如何阅读 Go 源码

Go 的源码在安装包的 src/ 目录下。怎么看它的源码呢?直接看吧!没人教的情况下,只能自己撸了。当然,这种内容一般也不会有人教。 怎么撸? Go 源码中,应该可分为与语言息息相关的部分,和官方提供的标准库。与语言实现相关的肯定是最难的,不是那么容易理解。可以先主要看标准库,其他的可以先大概了解下。 先把源码目录整体扫一遍,大概看看涉及了哪些模块,然后再挑自己喜欢的部分进行更深一步的学习与研究。建议每个目录都简单写个 hello world,如此的体悟会更深。如果连 hello world 也写不出来,这个模块的源码暂时就没必要研究了,先学好基础吧。毕竟,包的使用不仅与语言相关,还涉及具体场景和实现原理,这都是要学习的。

Go 问答汇总(二)

继上篇 Go 问答汇总,已经过去了一个多月。今天汇总下近一个多月我关于 Go 的回答。 粗略数了一下,一个多月的时间里,大约回答了 18 个与 Go 有关的问题,问题主要是来源于 segmentfault 和 zhihu 两个平台。后面希望加入更多平台,如 stackoverflow、github 的感兴趣主题。

Go 实现词法分析与解析 Part Three

作者:Adam Presley | 地址:https://adampresley.github.io/2015/06/01/writing-a-lexer-and-parser-in-go-part-3.html 译者前言 最近发现我的翻译是越来越随性了,刚开始文章翻译的时候比较拘束,现在更多强调可读性,比如有些对文章大意没有什么影响的文字我现在都会选择直接跳过。 这篇文章主要是关于 INI 解释器的 parser 实现,它会从上一节中 Lexer 中接收 Token 解析,最终返回给使用者具有实际意义的结构体。读了这个系列的文章,我相信大家对词法器实现的原理将会有了基本的理解,但如果要真正实践,似乎还有一段距离。有兴趣的话,我们可以实现个自己的 JSON 解释器。要求可以稍微简化,只解析到 JSON 的第一层。

Colly 从入门到不放弃指南

最近发现知乎上感兴趣的问题越来越少,于是准备聚合下其他平台技术问答,比如 segmentfault、stackoverflow 等。 要完成这个工作,肯定是离不开爬虫的。我就顺便抽时间研究了 Go 的一款爬虫框架 colly。 概要介绍 colly 是 Go 实现的比较有名的一款爬虫框架,而且 Go 在高并发和分布式场景的优势也正是爬虫技术所需要的。它的主要特点是轻量、快速,设计非常优雅,并且分布式的支持也非常简单,易于扩展。

Go 实现词法分析与解析 Part Two

作者:Adam Presley | 地址:https://adampresley.github.io/2015/05/12/writing-a-lexer-and-parser-in-go-part-2.html 译者前言 本文是关于词法器实现的具体介绍,如果在阅读时遇到困难,建议参考源码阅读,文中的代码片段为了介绍思路。如何解析会在下一篇介绍。 最近简单看了下 Go 源码,在 src/go 目录下有几个模块,token、scanner 和 parser 应该就是 Go 词法相关实现的核心代码,打开 token 目录会发现其中的源码和上一节介绍的内容有诸多相似之处。

Go 问答汇总(一)

最近比较忙,因为工作需要,必须快速了解一些新知识,写文少了,翻译多了。原因也很简单,翻译好文不仅可以帮助大家学习,自己也能学到更多。最近,还单独开了个专栏,用于保存自己翻译的计算机相关译文,大家如果有兴趣可以关注一下。Go 专栏或许当写到一定的程度时,更新频率会下降,但译文应该不会。 这周简单总结下近期在知乎上我的一些关于 Go 的问答。一方面是希望只关注专栏的朋友也能看到,毕竟不是所有内容都可以写出文章,另一方面,梳理一下也能方便以后自己查找。 为什么Golang没有像Python中in一样的功能? Go 中没有 in,为什么会这样呢?其实还是因为它比较简单,实现起来也不是很复杂。回答中介绍了三种关于在 Go 中实现 in 的方式。