摘要: 在平时我们开发后端程序的过程中,应该多多少少都会碰到记录客户端 IP 的场景,例如我之前写过的 APP 用户的一个审计功能,就需要获取用户的 IP 地址;还有广告系统里面,也是需要获取用户的 IP 地址,有时这个 IP 地址会被用来标识用户的,因此需要比较准确得获取到用户的地址。当然,在开始本文的内容之前还是有必要强调一下我们现在的网络大环境的,在使用 IP 的时候,我们一定要记住有两个东西很关键...阅读全文
posted @ 2018-05-24 23:19 行者酱油君 阅读(50) 评论(0) 编辑
摘要: 最近对 Go 语言的反向代理使用得偏多,其实在大概两年前就写过 TCP 层面的代理,而且那时也是用的 Go 语言,不同之处在于之前只是偶尔尝试一下使用,最近是因为工作需要使用的。相比较于 TCP 层面的代理,HTTP 的代理实现起来麻烦事比较多,如果我们仅仅是简单的反向代理,OK,那还好,做个 Host 替换就差不多了。但是,很多时候我们作反向代理,那么需求就比较多样了,例如我们可能希望对代理的响...阅读全文
posted @ 2018-05-03 08:50 行者酱油君 阅读(81) 评论(0) 编辑
摘要: 最近在写一些 Go 语言的 Web 应用,因为 Go 语言中的 Web 应用和 Python 中的不太一样,具体的区别应该和语言的动态性是有所联系的,同时,也和语言的内置库支持有所联系,所以这就导致了一个现象,那就是 Go 语言中 Web 框架似乎不那么流行(当然我知道国内在吹 Beego),不像 Python 中,各种流行得框架都有不少的支持者。因为没有框架,所以,在使用的时候一般用一些 Mux...阅读全文
posted @ 2018-05-03 08:50 行者酱油君 阅读(32) 评论(0) 编辑
摘要: 经常用 Python 写代码的同学应该都有一个感触,那就是 Python 对于字典的支持太舒服了,而且基本上可以和 JS 中写 Json 一样舒服。但是,因为 Python 对于 Dict 的支持比较松散,所以,导致了一个问题,假如我有一个函数,参数如果放它一个字典,那调用者会疯掉的,这是一种情况;另外一个常见的场景就是参数校验,无论是 HTTP 还是 RPC 等形式,很多时候我们的参数都是以 J...阅读全文
posted @ 2018-05-03 08:49 行者酱油君 阅读(56) 评论(0) 编辑
摘要: 在使用 Docker 的过程中,如果我们一切都以默认的设置进行操作的话,在使用一段时间之后你应该会发现系统的根目录空间越来越少,直到有一天发现空间都被占满了,最后发现原来是被 Docker 占用了。所以这个时候就需要处理这个蛋疼的问题了,在传统的 PC 时代我们可能会听纠结的,因为就笔记本来说,你要加个硬盘往哪加啊。如果是台式机,倒是可以直接加,但是还得买一块,所以此时,是时候推荐一波云服务器了。...阅读全文
posted @ 2018-05-02 23:38 行者酱油君 阅读(64) 评论(1) 编辑
摘要: Go中的程序由软件包组成。通常,软件包依赖于其他软件包,或者内置于标准库或第三方的软件包。包需要先导入才能使用其导出的标识符。本文将翻译一篇国外的文章,用于介绍包导入的原理以及几种常用的导入方式。>==========>>Go 语言中的程序由软件包组成,一般来说,软件包会依赖于其他软件包,这些软件包可能是标准库或者是第三方的软件包。但是,无论是哪里的,包都需要先导入才能使用其导出的标识符,而这需要...阅读全文
posted @ 2018-02-28 00:06 行者酱油君 阅读(38) 评论(0) 编辑
摘要: 无论是在日常工作中还是平时玩代码中,我总是离不开 Supervisor,其实很久之前我就写过一篇文章:supervisord 部署 Flask,在里面,我仔细讲解了如何在 Linux 环境下安装并且配置 supervisord,并且如何部署应用,应该稍微懂点 Linux 的同学就可以按照指导自己在自己的环境下配置一份出来。但是,我日常更多的情况下是在 Mac 下工作的,虽然 Mac 下已经有很多强...阅读全文
posted @ 2018-01-30 09:11 行者酱油君 阅读(161) 评论(0) 编辑
摘要: 用 Protobuf 很久了,但是一直觉得很简单,所以就没有做一个总结,今天想尝试一下 gRPC,顺带就一起总结一下。ProtoBuf 是个老同志了,应该是 2010 的时候发布的,然后被广泛使用,目前在市面上应该和 Facebook 的 thrift 应该是不相上下,无论是性能上,还是用户的支持度上。What's ProtoBufProtoBuf 是一种数据表达方式,根据 G 家自己的描述,应该...阅读全文
posted @ 2018-01-27 16:36 行者酱油君 阅读(997) 评论(0) 编辑
摘要: 最近又尝试了一下 Golang 的 Template,发现一般功能都满足了,而且语法也相对比较简单,所以稍作总结。在 Go语言中,模板有 text/template 和 html/template 两个,但是接口都是一致的,区别在于 html/template 用于生成 HTML 输出,会自动得转移 HTML 标签用于防范攻击。模板规则Go 语言中,模板的特殊表达式都是通过 {{ 和 }} 引起...阅读全文
posted @ 2018-01-26 23:33 行者酱油君 阅读(266) 评论(0) 编辑
摘要: 因为需要写一个 Blog Feature 的缘故,所以接触了下 GA 的 Python API,发现 G 家的 API 不是那么直观,比较绕,但是,在使用过程中发现其实 G 家的 API 设计挺有意思的,可能有一些新的设计理念,值得思考学习一番。但是这不是这篇文章的重点,这篇文章还是介绍一下 GA 的 Python API V4 版本的使用,顺带在最后解答几个我再使用过程中遇到的问题。GA API...阅读全文
posted @ 2018-01-22 09:13 行者酱油君 阅读(141) 评论(0) 编辑