超级苦工

请叫我超级苦工~

他的话题

今日头条Go建千亿级微服务的实践

今日头条当前后端服务超过80%的流量是跑在 Go 构建的服务上。微服务数量超过100个,高峰 QPS 超过700万,日处理请求量超过3000亿,是业内最大规模的 Go 应用。

Go 构建微服务的历程...  继续阅读»

『Go 语言学习专栏』-- 第九期

golang-learning-9.png

10.png

大家好,我叫谢伟,是一名程序员。

我们已经研究了:

  • Golang 环境的搭建、设置GOPATH、GOROOT 参数,Govendor 包管理, Goland...  继续阅读»

『阅读源代码的姿势:以 go-restful 为例』

go-restful.png
go-restful-code.png

大家好,我叫谢伟,是一名程序员。

下面结合我的经历和见闻,讲述下一名非科班程序员的成长过程:

  • 学习一门编程语言
  • 写尽量多的代码
  • 补尽量多的基础知识...  继续阅读»

golang自定义路由控制实现(二)-流式注册接口以及支持RESTFUL

    先简单回顾一下在上一篇的文章中,上一篇我主要是结合了数组和Map完成路由映射,数组的大小为8,下标为0的代表Get方法,以此类推,而数组的值则是Map,键为URL,值则是我们编写对应的接口。但是上篇的设计仍存在着不足,主要是无法很好的面向RESTFUL设计,同时,我希望还能够希望一个功能,类似于SpringMVC中,可以将...  继续阅读»

『项目结构与框架:Go』

gopher-1.png
gopher-one.png

大家好,我叫谢伟,是一名程序员。

今天和大家谈谈项目的组织结构。在这之前的文章,我给大家推荐了一个适合爬虫的项目组织结构:

workspace download...  继续阅读»

带万能牌的麻将和牌算法

该算法通过计算需要的万能牌个数,和已经拥有的万能牌个数对比来判断是否胡牌,算法通用,且效率高,计算胡牌算法每秒钟可以运行三百万次以上。以下是算法的具体内容。

1. 所有合法牌:

0x01 0x02 0x03...  继续阅读»

Go micro 源码阅读-结构

介绍

micro 是一个用来开发cloud native application的程序工具集,采用的是微服务架构,使用go语言编写。
micro主要包括:

  • toolkits
    1. api - api 网关,服务的唯一入口点...  继续阅读»

go micro 源码阅读-Options [Functional Options Pattern]

解决的问题

如果想提供一个具有可选参数的方法,那么在其他语言中很简单使用默认值就好了。然而在Go中不支持默认值的做法,退而求其次那么使用函数重载好了,接着就会发现Go中同样不支持函数重载,那么我使用不同的函数名好了。。。。(代码估计很丑,并且不容易辨析)...  继续阅读»

go技巧分享(一)

这是一个系列文章,主要分享go的使用建议和技巧,每次分享3点,希望你能有所收获。

1 命令行查看文档

$ go doc strings.Trimfunc Trim(s string, cutset string)...  继续阅读»

『Go 语言学习专栏』-- 第五期

golang-learning-five.png
5.png

大家好,我叫谢伟,是一名程序员。

我正在着手扎实学习 golang , 这个专栏是我的输出整理文章。

希望能带有心人一起学习 golang ,...  继续阅读»

go语言path/filepath包之Walk源码解析

go语言的path/filepath包提供了很多兼容各个操作系统的文件路径实用操作方法,今天只来看看Walk方法:

  • Walk(root stirng, walkFn WalkFunc) error
    该方法主要用于递归遍历目录:...  继续阅读»

『项目结构与框架:Go』

gopher-1.png
gopher-one.png

大家好,我叫谢伟,是一名程序员。

今天和大家谈谈项目的组织结构。在这之前的文章,我给大家推荐了一个适合爬虫的项目组织结构:

workspace download...  继续阅读»

广度优先搜索算法(go)

广度优先搜索算法(Breadth First Search,缩写为BFS),又译作宽度优先搜索,或横向优先搜索,是一种图形搜索算法。简单的说,广度优先搜索算法是从根节点开始,沿着树的宽度遍历树的节点。如果所有节点均被访问,则算法中止。借助广度优先搜索算法,可以让你找出两样东西之间的最短距离。...  继续阅读»

golang基础类型

1.变量

Go使用关键字var定义变量,类型信息放在变量名后面,初始化为零,如下:

在函数内部还有一种更简洁的:=定义方式

变量赋值,两个变量可直接交换

注意:函数内部定义的变量没使用的话编译器会报错。

declared...  继续阅读»

go micro 源码阅读-Options [Functional Options Pattern]

解决的问题

如果想提供一个具有可选参数的方法,那么在其他语言中很简单使用默认值就好了。然而在Go中不支持默认值的做法,退而求其次那么使用函数重载好了,接着就会发现Go中同样不支持函数重载,那么我使用不同的函数名好了。。。。(代码估计很丑,并且不容易辨析)...  继续阅读»

golang介绍以及安装

Golang 是什么

Go 亦称为 Golang(译注:按照 Rob Pike 说法,语言叫做 Go,Golang 只是官方网站的网址),是由谷歌开发的一个开源的编译型的静态语言。

Golang 的主要关注点是使得高可用性和可扩展性的...  继续阅读»

Golang原生爬虫 简单爬虫实现 不依赖第三方包库 方便理解技术原理 (二)

上一篇回顾:Golang原生爬虫 简单爬虫实现 不依赖第三方包库 方便理解技术原理 (一)

本篇原文首发:Golang原生爬虫 简单爬虫实现 不依赖第三方包库 方便理解技术原理 (二)

程序首次执行成功后,我们已经成功获取了源页面所提供的链接地址。下面我们自然要做的就是通过计时器来爬抓链接列表里的地址。...  继续阅读»

『Go 语言学习专栏』-- 第九期

golang-learning-9.png

10.png

大家好,我叫谢伟,是一名程序员。

我们已经研究了:

  • Golang 环境的搭建、设置GOPATH、GOROOT 参数,Govendor 包管理, Goland...  继续阅读»

『Go 语言学习专栏』-- 第四期

golang-learning-four.png
4.png

大家好,我是谢伟,是一名程序员。

本专栏的主旨是:梳理 Golang 知识,力求从初级水平提升至中级水平。

同时将一些符合人性的编程经验和好的编程方法,分享给大家。...  继续阅读»

『Go 语言学习专栏』-- 第五期

golang-learning-five.png
5.png

大家好,我叫谢伟,是一名程序员。

我正在着手扎实学习 golang , 这个专栏是我的输出整理文章。

希望能带有心人一起学习 golang ,...  继续阅读»