• 转眼间又近年底,距8月25日在Go 1.11版本之前的而Go 1.11开启了问题1:
    2018-11-20 22:05 栏目:Go
  • 官方给出的 vttablet 定义如这个系列的文章,主要面向
    2018-11-20 21:48 栏目:Go
  • Go 拥有 finalizers,它们支持程序调用一些代码并作为一个对象来进行垃圾回收。然而,很多人不太喜欢 finalizers,并且通常的建议是完全避免它们 ([比如](https://twitter.com/davecheney/status/790343722865090560))。最近,David Crawshaw 在[《Finalizers 惨案》](https://crawshaw.io/blog/tragedy-of-finalizers) 一文中指出 finalizers 的众多弊端并展
    2018-11-20 21:39 栏目:Go
  • 先配置Header最长读取时间、req最长读取时间、req最大读取长度默认6M。RFC7230禁止\r\n参数,Url中只允许包含英文字母(a-zA-Z)、数字(0-9)、-_.~4个特殊字符以及所有保留字符。但go net/http包放宽了这个要求。先构建newTextprotoReader,由于缓冲区是对象复用的,用完后要defer put。共完以以下解析任务:
    2018-11-20 21:27 栏目:Go
  • 当我初入职场时,加入的是一家创业公司,做了一名python后台开发。记得那时候团队人力不足,一切的一切都是以完成任务为第一要务,彼时的我们,高歌猛进,连续加班也不觉得累,那时的我,是有激情的,开发上自由度比较大,一切受限于当时的认知水平,完成即可。测试?测试与开发比例为1:6(可能比这个还夸张),而且他们还要兼顾ios、android、运营后台台的测试任务,人力是严重不足的,很多时候,运营人员都充当测试的角色。这样的坏处就是上线前,总能发现很多bug, 于是,在我加入的第一个月,就经历了一次上线,一直到凌
    2018-11-20 07:06 栏目:Go
  • 日志库基本上写完了,但是就完成了,还没有。目前来说,我们的文件写日志的方式采用同步方式,如果在大量日志写入的时候,同步写入的缺陷就暴露出来了。而且日志跟我们的业务逻辑也没有什么太大的关系,哪怕掉了几条也没什么影响,所以这里可以将同步写改为异步写。这里采用go的channel进行异步写日志。首先,我们定义一个channel的结构体用来传递日志数据,在
    2018-11-20 06:44 栏目:Go
  • 紧接着上次说到的RDB文件解析功能,数据解析步骤完成后,下一个问题就是如何保存解析出来的数据,Redis有多种数据类型,string、hash、list、zset、set,一开始想到的方案是为每一种数据定义一种数据结构,根据不同的数据类型,将数据保存到不同的数据结构,但是这样的做法带来了比较多的冗余代码,以string和hash为例,一开始的代码是这样的:这种方式有比较多的冗余代码,比如保存字符串和保存哈希结构需要编写两套相似代码了,且在初始化Rdb结构体的时候,还需要初始化所有结构体之后,再传递到Rdb
    2018-11-20 06:38 栏目:Go
  • 整个iris框架共三层结构:iris框架包装了Server为更完善的Supervisor类,数据结构如下:调用NewHost(srv)他建Supervisor实例。先初始化以下字段:
    2018-11-20 06:33 栏目:Go
  • 2009年诞生,Go/Golang 是云计算时代的 C 语言。专门对多处理器系统应用的编程做了优化。媲美 C/C++ 的速度,更加安全,支持并行进程。部署简单:可直接编译成机器码,不依赖其他库,所以部署相对简单。动态效率:静态语言,可以编译时检查出错误,虽然是静态语言但是写起来效率很高。Python 是动态语言,写效率高,但是性能比 Go 稍差。
    2018-11-19 20:28 栏目:Go