从14年中开始陆续一年,断断续续学习了下Golang,看了Go语言编程,Go语言程序设计2本书。node
始终以为应该作点项目锻炼下,由于正好看《从paxos到zookeeper》,就尝试写一些网络应用,分布式存储这块是比较热门的,本身就比葫芦画瓢作了一个项目whisper。git
http://git.oschina.net/key232323/whispergolang
Raft协议到是看懂了,但一直没有本身写,开源上也有golang的库,本身就偷懒了,仍是master/slave的简单粗暴。编程
用了一些第三方库gorpc,btree作索引,本身设计了索引分片、日志,多副本存储,sub/pub等。网络
整个集群网络中有一个协调者,一个索引存储单元,多个数据存储node,多个对外提供服务的node。分布式
整个项目是个半成品,中间也不断的进行代码重构。总得下来,有几个感受:ide
1. golang是一个简单、实用的语言,sdk已经很强大,上手很容易单元测试
2. golang社区日趋成熟,第三方库不难找到学习
3. 语法格式统一性强,你们写的代码几乎都同样,liteide足够用测试
4. 写单元测试真的方便
欢迎学习golang的同窗来拍砖。也但愿多和golanger一块儿交流