微信号:JavaCoder1024

介绍:关注语言编程Java,分享、交流Java编程技巧和信息

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

2018-10-16 09:08 皓禹

本文作者:皓禹

曾任猎豹高级工程师、搜狐社交产品中心服务端负责人,现任区块链创业公司 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


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


 
Java编程 更多文章 漫话:如何给女朋友解释什么是共享锁和排他锁 金九银十铁12,看完弄懂,工资少说加 5K Java 线程池详解 入坑人工智能,哈佛博士这样说... 想学好Java 9,看这些书就可以了
猜您喜欢 全网稀缺Python自动化运维项目实战 如果你已经这样了,那你必须要跳槽 Google 新操作系统 Fuchsia,UI 设计曝光 品味淡淡的感觉 淡淡的生活 [原]django构建简易博客系统