Go语言TCP Socket编程

Golang的主要 设计目标之一就是面向大规模后端服务程序,网络通信这块是服务端 程序必不可少也是至关重要的一部分。在日常应用中,我们也可以看到Go中的net以及其subdirectories下的包均是“高频+刚需”,而TCP socket则是网络编程的主流,即便您没有直接使用到net中有关TCP Socket方面的接口,但net/http总是用到了吧,http底层依旧是用tcp socket实现的。 ...

November 17, 2015 · 19 min · Tony Bai

开始使用Markdown写Blog

近期发了一些带有大量代码的Go技术文章,结果文章中的代码样式被大家鄙视了,比如评论中的“不忍直视”、“这代码看得让人难受”等。于是我决定花些时间尝试做些改变。 博客系统 目前使用的这个博客系统是放在DigitalOcean VPS的Wordpress 3.2.1。在迁移到VPS之前,我的博客是一直托管在同事的一个托管主机上的,当初从blogbus迁移到他的托管WordPress主机时使用的就是WordPress 3.2.1版本,这两年一直未动,目前WordPress版本都4.3.1了。WordPress 3.2.1有很多bug,尤其是其安全漏洞,今年就被黑过几次,为此在后台将blog纳入git version管理,这样被黑后就可以很容易恢复。但将版本升级到WordPress新版我还是担心的,主要是担心升级失败,尤其是>数据库表变化较大,担心无法恢复。 ...

September 19, 2015 · 5 min · Tony Bai

关于Go,你可能不注意的7件事

Go以简洁著称,但简洁中不乏值得玩味的小细节。这些小细节不如goroutine、interface和channel那样"高大上",“屌 丝"得可能不经常被人注意到,但它们却对理解Go语言有着重要的作用。这里想挑出一些和大家一起通过详实的例子来逐一展开和理解。本文内容较为基础,适合初学者,高手可飘过:) 一、源文件字符集****和字符集编码 Go源码文件默认采用Unicode字符集,Unicode**码点(code point)和内存中字节序列(byte sequence)**的变换实现使用了UTF-8:一种变长多字节编码,同时也是一种事实字符集编码标准,为Linux、MacOSX 上的默认字符集编码,因此使用Linux或MacOSX进行Go程序开发,你会省去很多字符集转换方面的烦恼。但如果你是在Windows上使用 默认编辑器编辑Go源码文本,当你编译以下代码时会遇到编译错误: ...

September 17, 2015 · 20 min · Tony Bai

Golang开发环境搭建-Vim篇

虽说sublimetext3+gosublime+gocode是目前较为 流行的Golang开发环境组合,但作为一名VIMer,没有一套得心应手的Vim for Golang dev心里总是过不去的。Golang虽然年轻,但即便是从Go 1版本发布(2012年3月28日)算起,掐指算来也有小三年了。全世界的开发者已经为Golang贡献了较为成熟的Vim插件了。有了这些插件,搭建出 一套高效的Golang开发环境还是不难的,网上也有大量的资料可以参考,其中就有vim-go作者自己发表的一篇文章《Go development environment for Vim》。不过看别人 写的与自己搭建体验的还是有大不同的,于是想来想去还是把整个过程记录下来。 ...

November 7, 2014 · 9 min · Tony Bai