6 24

Go 语言入门资料

Go 语言,自2012年发布 1.0,至今 1.7 ,历经5年。Go 的相关工具和生态已经逐渐完善,这里综述一下 Go 语言学习开发可以找到的入门资料。

入门教程

  • 官方文档

第一步,学习基本语法和命令操作。Go 的官方文档是第一选择。但因为众所周知的原因,官网无法访问。可以访问 godoc.golangtc.com 镜像网站查看。或者下载安装好 Go 语言后执行 godoc 命令:

godoc -http=:6060

访问 http://localhost:6060 浏览内置的官网镜像站点。另外,godoc 会自动分析 GOPATH 中的源码生成文档,可以在网站访问 /pkg 直接查看。

  • 视频教程

推荐 无闻《Go 编程基础》。无闻的视频教程简单直接的介绍 Go 的基本语法的命令操作,简单的介绍一些标准库的使用方法。学好基础语法和操作是入门必需,来不得半点敷衍。实际开发实践时,自己再去深入了解使用的标准库和第三方库细节。

如果偏向 Web 方面的开发者,看完《Go 编程基础》 后可以再去学习无闻的 《Go Web 基础》 。里面以开发博客程序为例子,对 Go 语言开发 Web 的过程有比较详细的说明。但是因为已经是比较早的视频,可能所使用的类库已经发生较大的版本更新,需要自己根据库类的相关文档实践修正。

5 5

搭建 React , Babel 和 Webpack

公司打算用 React 做一个微信项目。我以前玩过一阵子 React,就被安排给 PHP 和前端指导入门 React。当时玩 React 的时候还是 0.11.x 的时代,如今已经是 15.0.x (0.15.x)。Webpack 和 Babel 也改进许多,搭建和使用变得方便。

React 已经成为前端很流行的工具,很多公司都在使用。根据官网的介绍,React是将界面组件化开发的工具,只是 MVC 中 V 的角色。通过 Flux 的概念,维持和传递数据状态给对应的组件,完成数据流动。

随着 ECMAScript 6 (ES6,ES2015) 标准的发布,越来越多开发者使用新的语法。由于浏览器的跟进速度略慢,ES6 的 JavaScript 代码还是需要翻译到 ES5 才能在浏览器正确的运行。Babel 就是翻译 ES6 到 ES5 代码的工具。同时还可以处理 React 的 JSX 格式到一般 JS 代码。

前端项目除了 JavaScript 还有 CSS 等内容。Webpack 是一套各种前端工具协调工作的总工具。整合 Babel 和很多别的工具以实现。

4 19

第二届 Gopher China 大会

又一次,和同事去参加 GopherChina 2016 大会,了解 Go 语言相关的最新动态。和一年前不同,Go 语言已经受到许多企业青睐。一些知名企业开始使用 Go 语言开发。因而,本届大会更多的内容注重在 Go 实现的业务场景和架构上。

Go 与 高并发服务

Go 语言的 goroutine 特性,非常适合开发高并发网络服务。大会有几个题目聊起相关的内容。

百度前端接入团队分享了《Go在百度BFE的应用》。相关的内容其实在InfoQ有过分享。百度的服务体量太过巨大(日均千亿),代码优化手段 + Go的版本更新 对服务整体的提升作用不大,只能用特殊的措施 ———— 车轮大战。关闭 runtime 的GC,由代码根据目前程序的运行情况判断是否手动 runtime.GC()。以 master-worker的模式轮换正在服务和正在GC的程序。这种架构估计只有百度这种规模才用得上吧。但是私下的交流来说,小伙伴还是觉得 nginx + C 模块更适合。况且BFE之前那套也就是C写的,有足够的技术实力。

对比的来看是,吴小伟(skoo)的《Go在阿里云CDN系统的应用》。阿里 CDN 的网络接入系统还是 C 语言写的。CDN 的日志系统、调度系统和刷新系统是 Go 写的。这些业务对 Go 语言的 GC 不敏感,加上 Go 比 C 更简洁的语法特性,更快的开发效率,开发周围系统是很适合的。这里可以看到,同样是大流量系统,思考的角度也有不同。顺便说一下,skoo 是比较早研究 Go 语言的技术大神之一,博客有一些关于 Go 核心原理的文章。

1 11

Gamma 技术分享会

Gamma 技术分享 是由峰瑞资本 FreeS 组织的技术分享会。以前没有听说过,这次在厦门举行,就去看看。这次的主题很多和 React 有关,我比较有兴趣,就去听听看看,学习一下。

gamma-tech

以前的