这两天参加Gopher China 2015大会, 感受颇多. 第一是震惊, golang在中国竟然已如此之火, golang在中国的应用已有如此成功的案例, golang在中国竟有这么多牛人. 第二是失落, 因为我发现, 我正与golang圈远去, golang有这么多牛人, 我竟不是其中一个.
回想自己加入golang的阵营, 那是2012年时, 刚读研, 突然发现golang语言, 当时有一个pdf的入门教程, 用了几个小时快速学习, 感觉非常好. 当时就想做一个golang社区, 并注册了一个我非常喜欢的域名(letsgolang.com, 有想用的朋友可以联系我) .此后就用golang来做作业. 当时的我不知道beego(可能没出来), 也不知道谢大大的存在.
此后, 因为没有具体的项目应用, golang的学习和实践处于停滞的状态. 于是, 我给自己找项目, 用golang做了一个网页模板爬虫 https://github.com/lealife/leacrawler, 当时做完这个工具后, 我用它在themeforest.net 爬了数百个漂亮的模板, 并且想把这些模板在淘宝上卖. 后来, 良心发现, 这是不道德的, 就没有做个事(别用这个工具爬网页模板卖啊).
leacrawler 做完后, 对golang的使用仍然感觉很生疏. 此时的我, 正在由后端悄悄向充满艺术与美的前端转型. (从用leacrawler爬漂亮的模板就可看出).
我发现市面上没有一款笔记(evernote, 有道) 符合我的要求时, 我选择自己做, 于是 leanote 的想法就出来了. 于是, 很自然的, 我用golang来做后端, 数据用mongodb. (后来有很多朋友问我为什么选择golang, 理由很简单, 我只是想学学新东西而已).
此时, golang在中国已有些势头, beego在中国已经小有名气了, 而且文档丰富. 作为web框架的不二之选. 可是我选择了revel, 为什么? 理由..., 其实也很简单, 与我当时的技术背景有关, 因为当时我开发java, 使用了SpringMvc, 发现revel竟与SpringMvc如此相似. 而且当时为了让revel更像SpringMVC一点, 我还改了revel源码 (link), 不过后来没用到.
当时为了高效开发leanote, 我做了一些尝试, 在七牛的酒会也分享了gocilpse插件的修改 (link).
甚至还改了go源码来屏蔽掉包未使用, 变量未使用的错误 (link). 而有幸, 这次与Golang作者 Robert 简单聊了下这个问题, 他给出的答案只是为了builder fast. 而我觉得, 在前期开发的时候, 难免为了调度会引入一些包, 和一些未使用的变量, 而这个包和变量很可能会之后使用. 此是为了程序的正常运行必须要去注释它们, 这大大降低了开发效率.
附上一些照片:
与Robert的合影: (我超喜欢, 虽然在Robert的衬托下, 我瞬间不高大上了, 但由此衬托了Robert的高大上. 还有谢谢一个妹子帮我们拍照, 拍的真好)
七牛酒会:
这次运气太好, 有幸参加酒会. 第一次参加线下活动, 分享了下leanote. 很佩服谢大的坚持和付出.
编辑器之战是本次交流的高潮(一个笑话: 最后达成共识-Eclipse是go开发最好的编辑器, 当然前提是用我优化过的插件)
End.
P.S. 照片如有侵权, 请联系我 life@leanote.com 我会第一时间删除.
没有帐号? 立即注册