前阿里工程师为什么从Java转Go?

是因为很多原生项目都是用Go语言写的?

还是因为区块链明星项目都是基于Go?

亦或是跟风大厂都在大规模的招聘和使用Go?


这些对于丢哥来说,既是原因,也不是原因,“薛定谔的原因”,其实不过是因为由阿里到腾讯的角色转换,需要完成从 Java 到 Go 的转型。


Go 语言是 Google 发布的第二款开源编程语言,刚过完11岁生日,作为一门有十多年历程的语言,当我们在谈论 Go 语言时,我们在谈论什么?


SegmentFault 思否技术圈


语言自身优势 


Go语言有 C 语言的基因,Go 语言只有25个关键字,但表达能力极强跨平台编译,可以不依赖与系统信息;可以编译成机器码,不依赖其他库。语言层面支持并发,这是 Go语言的最大的特色,天生支持并发,大大降低并发程序编写门槛;内置runtime,自带垃圾回收机制。


SegmentFault 思否技术圈


夸平台且部署简单 


跨平台这个特性简直没有更好,可以不做任何改动将运行在 Windows上的代码搬到 Linux 上,且可以跨平台编译。


SegmentFault 思否技术圈


开发成本低,迭代快 

由于 Go 语言的特性,使用起来简单友好,项目很快完成功能,后期 bug 相比之前写 C/C++ 减少了很多。编译速度快,及时跨平台部署也只需要加入编译参数就可轻松搞定。关键是代码风格非常对于后期维护和扩展非常友好。

当然 Go 自诞生之日起,就泛型这一问题,是否应该添加,讨论热度始终不减。泛型的支持者们认为没有泛型的语言是不完整的,而泛型的反对者们则认为接口足以取代泛型,增加泛型只会徒增语言的复杂度。不过,无须担忧,据官方显示,明年这一改动也将安排上。

简而言之,Go 是一门简单有趣编程语言,与其他语言一样,使用时难免会遇到很多坑,不过它们大多不是 Go 本身的设计缺陷。

作为一枚资深Gopher,丢哥结合自己的踩坑经验,从实战的角度出发设计了这门课程。通过项目带你学习 Go 基础语法Go 并发Go 基础包的使用第三方包的使用等,循序渐进增加你对 Go 的熟悉度。


点击图片直接跳转购买

这波入股不亏~


课程内容主要分为三大部分:


第一部分:Go基础语法,这一部分主要是针对之前没有接触和使用过 Go 语言的同学,在介绍 Go 语法时,我们也会跟其他后端语言比如 Java 等进行对比,使用其他语言的同学进行切换。


第二部分:Go 进阶,包括 Go 并发、锁和原子操作、第三方组件的使用等。


第三部分:Go 实战,从实战的角度,用代码层层剖析用 Go 去开发一个系统的代码姿势。


当然 Go 语言的入门到精通不应该只是单纯的掌握基础语法、熟悉模块源码,更重要的是可以独立开发系统,并且可以应用 Go 的思想解决工作中的问题,这门课不单是写给 0 基础人看的入门级教程,更是提供给已经有编程思想,特别是熟练其它后端语言的同学的完美通关教程。


实践是最好的老师,本课程所有的技术细节都会辅以代码实现的方式进行讲解。在系统的实现过程中,穿插一些平常coding的基本思路和 Go 社区的一些玩法。相信你也可以找到玩转 Go 的编程习惯和姿势。


戳原文链接跟丢哥一起探索Go语言吧~