微信号:JavaScriptcn

介绍:面向JavaScript爱好人员提供:前端最新资讯、原创内容、JavaScript、HTML5、Ajax、jQuery、Node.js等一系列教程和经验分享.

实现高并发更轻松!这个编程语言竟然超过了Java...

2018-10-16 08:35 JavaScript

本文作者:皓禹

曾任猎豹高级工程师、搜狐社交产品中心服务端负责人,现任区块链创业公司 CTO。文章中,他会详细介绍自己接触Golang的经历,以及Golang语言的优势。

相信有的同学看到这个标题就猜到我说的是哪个编程语言了,它就是由Google推出的Golang语言,以下是我与Golang的故事。


 初识 Golang 

我第一次接触 Golang 是在2014年,当时在猎豹工作,换了一个新的项目组,他们正在把基于 Java 写的核心业务用 Golang 重构一遍。


也是借着这个项目的契机,我开始学 Golang 。其实工作之后我一直在用动态语言,而开始用 Golang 这种静态语言之后,给我的编程思想带来了冲击和震撼,不夸张的说,有一种打开了另一扇窗的感觉。


如果你之前写的是 Java,就能一下感受到 Golang 的优越感了,因为 Golang 的语法更简洁、有函数式编程的特性,又不像 Java 做 OOP 那么复杂,Golang 实现 OOP 非常轻量,上手更容易,而且 Golang 非常容易的就能使程序拥有并发能力。



因为实现高并发更轻松,所以可以减少很多人力资源和服务器资源,这也是我们团队使用 Golang 重构的原因。


遗憾的是14年的时候 Golang 的第三方库不太多,所以我们自己写了一些第三方库来用,方便自己用着更顺手。


 ❷

 从 Golang 到区块链 

回想起来,我现在能到区块链公司做自己喜欢的工作,也和当年下决心把 Golang 啃下来有很大关系。但是当年,我根本就没想过这些,也没打算把它当一个吃饭的家伙。


我只是觉得一个好的程序员不可能只掌握一门语言,而我每年都会为自己制定一个技术学习计划,当我开始思考什么最值得学,就会想起看 Golang 代码时的那种震撼,既然它能承载那么大的并发,那它的设计方式是很值得我去学习的,即使我需要去花一些时间成本,我也觉得这是值得付出的。


在15年6月的时候,我跳槽到搜狐工作了。在这做的项目规模更大,所以会直接碰到性能上的问题,而动态语言不太容易解决这些问题。于是我们决定,需要快速业务迭代的用 Python 去写,需要高并发的技术服务用 Golang 去写,陆陆续续用 Golang 实现了高并发生成器、推送、长链接服务,还有一部分 API 接口。运行速度更快,也更加节省服务器成本。


这时候我发现,Golang 的生态环境已经更成熟了,标准库和第三方库比以前丰富了很多。不需要再自己重造轮子,可以直接拿来用了。我们项目中用了文本处理的库、序列化的库、数据库连接的库、高并发 web 框架等等。



这一年,Golang 的社区也开始越来越丰富了,雨痕也开始写 Go 源码解析的学习笔记。雨痕对我的影响很深,也是我敬重的前辈,和他接触多了之后知道,他从 DOS 时期就开始写代码。所以雨痕会把操作系统层面的东西讲解的很深入,如果实践到一定程度了,发现自己掌握的理论不足以支撑自己继续往前走了,那很适合回过头来再深入看底层的这些东西。


把底层知识啃下来之后,我对于程序运行时背后发生的事情都一清二楚。比如我定义了一个变量,调用函数的时候该变量是值传递好还是引用传递好?最后这个值是分配在堆上还是分配在栈上?它是一个什么情况?这些我都了如指掌。


到了2018年,我已经做开发7年了,大公司的工作已经满足不了我的技术热情,于是我受邀加入了一家由明星团队创立的区块链创业公司,站在一个更高的视角去看待技术。


 反思:Golang 需要什么样的人才 

这几年,使用 Golang 的公司越来越多,BAT、今日头条、小米、京东、七牛云、滴滴打车、小米等等。Golang 在中国的影响力仅次于美国,这是在其他任何一门语言中都没有出现过的事情。



我现在自己也在招人,也和同行交流,大家普遍的一个感觉是:Golang 工程师特别难招。


我觉得最主要的原因是 Golang 的学习门槛比较高,让很多人望而却步。市面上的书籍、视频是不少的,但很多人遇到的问题是,看过了书、看过了视频,在真正写东西的时候,还是发现有一些问题没法解决,如果对 Golang 的 debug 方式不了解、对操作系统不了解的话,出现异常时会摸不到头绪,可能一个知识点就卡在这了,很多人都是在这从入门到放弃的。


所以我现在一般都是自己去培养公司需要的 Golang 人才,潜质不错的人进来之后,让他尝试用 Golang 写东西,加上我在团队里去指导他,让他逐渐成长为合格的 Golang 工程师。


当然,我一个人能带的新人是有限的,很多人也不具备这种成长环境。所以当受邀加入网易微专业的 Golang 课程团队时,我想是不是可以通过这次机会,让 Golang 这门面向未来的语言的学习门槛再降低一点,让更多人可以开始使用 Golang 并从中受益。


我不想做教条难啃的课程,让初学者又痛苦又不知道学了用在哪。所以这次课程的整体风格是更实用的,基础知识部分全程穿插代码实例,实战部分都是我曾经在公司中做过的项目的浓缩版,尽可能的给学习者还原一个在公司中写 Golang 项目的环境,在实践中更深的理解。


为了让同学们更好的认识golang语言,网易云课堂为大家准备了三大福利:


Part1

golang入门到进阶免费直播课


直播导师

皓禹

Golang开发工程师微专业导师

现任区块链创业公司 CTO

前搜狐社交产品中心服务端负责人


10月18日20:00


直播大纲

 、go 语言工程师从入门到进阶

二 、go 的前景怎么样

三 、go语言工程师的X大必备技能

四、技术小白:如何快速从零开始学习go

五、进阶提升:初中级 go 语言工程师如何提升能力

六、核心竞争力: 优秀工程师如何打造自己的竞争优势



Part2

Golang免费体验课


2小时快速上手Golang》体验课


课程简介

后端最流行的开发语言,兼容速度与性能,可零基础入门,独立完成编程实战。

课程导师:皓禹

课程大纲

第一章:为什么学习 Golang

1.1 为什么学习go


第二章:从零开始用 Golang

2.1 开发环境的安装与调试

2.2 Golang 语法快速预览


第三章:边用边学 Golang 基础语法

3.1 体验变量

3.2 理解变量

3.3 循环

3.4 切片

3.5 函数


第四章:用 Golang 做个小项目

4.1 项目:如何用 Go 实现命令行工具

4.2 项目作业:实现命令行工具的更多功能



Part3

网易内部Golang开发学习资料包


那么如何获取以上福利呢?

扫码加入QQ群

即可领取所有福利

群号:928993707


学习就是对自己最好的投资!

 
JavaScript 更多文章 一线大厂青睐的前端人,90%满足这3个条件 RESTful API 最佳实践 职业成长:进BAT一线大厂,前端工程师如何做准备? 做前端开发月薪突破30k需要什么? 【长文慎入】百度阿里网易大疆等大小厂前端校招面筋
猜您喜欢 数据库管理员已死 mnv*框架时代 学Java应该学什么你们知道吗? 可怕的中国楼市真相:现在买房 等着后悔吧 最新全球计算机科学排名:清华力压CMU,人工智能第一!北大排第四