从2006年 Go 语言诞生至今,在程序员眼里 Go 语言一直都是带着光环的,不仅仅是因为它出自于 Google 公司,更是因为发明它的人都是大神级别的人物,Rob Pike、Ken Thompson、Robert Griesemer 哪一个不是大名鼎鼎、如雷贯耳的!他们这些大牛们就是一个顶级品牌,发明了 C 语言,并使用 C 语言开发了 Unix 系统,定制了 UTF-8 编码标准,他们懂得什么样的语言是最理想、最实用的,他们最后创造了 Go ,让它更加符合时代的要求,让大道至简的理念更加深入人心,得到业界更多人的认可。
Go 被誉为互联网时代的 C 语言 ,主要是因为 Go 语言除了不依赖虚拟机、支持本地机器码编译、直接跟操作系统交互之外,它还具备垃圾自动回收机制,语言级别的并发功能,还有协程,管道等这些业界惊艳的东西。Go 打破了那些普遍认为:“互联网时代,只有采用虚拟机语言才是最佳方案” 的观念。从计算机语言发明史上来看,Go 的出现也是具有创时代意义的。
Go 继承了 C 语言所有的优点,所以它天生有简单、高效、高性能、低损耗的特质。
为什么采用 Go 开发服务接口,而不是用生态链非常完善的 Java 语言?除了上面所讲的东西以外,我还想说一个亲身经历故事。
机缘巧合和朋友开发一款常规的手机 APP,当初为了快速出成品,选择了最熟悉最成熟的 Java 平台 ,最后如期开发出来,部署在3台中型云服务器上,投放到应用市场,用户接受程度并不高(所以说做项目需要考虑充分,不能太随意),幸好运营过程中,发现了一个新的需求和一个长期存在的问题,一是用户对秒杀竞拍类的产品特别感兴趣,二是该产品使用的 Java 进程几乎耗尽了3台服务器资源,特别是内存,Java 贪婪地霸占了所有可用资源。
我们需要抓住用户的需求,快速开发第二个产品,在有限的资源上,投放到市场试水,而且秒数竞拍类的产品,对稳定、性能要求特别高。这时候使用 Go 语言去开发,做一番试探工作。
结果是好于预期的!得益于 Go 精简的语法,开发时间和之前基本持平,采用 Go 开发的新项目,打包部署比 Java 要简单得多,省去了 Web 容器安装、配置、调优等繁琐的步骤,整个项目打包成了一个二进制文件,启动进程即可提供服务!而且并不需要另外购买专属服务器,在内存几乎耗尽的现有服务器上竟然能运行得非常平稳,内存占用低到几乎可以忽略不计。另外随着新项目业务的深入、用户量的增长、用户活跃度的提高,用 Go 写的程序还能长期稳定地提供服务,没有一次致命崩溃的问题,这不得不让人感到大道至简的本意,Go 语言本身在大观局上,规范了用户的编码方式,保证了代码的质量,所有这些都是用户在编码的过程中潜移默化地发生了。这些正是驱使我写下本系列教程,希望让更多的人用 Go 语言来开发接口的原因之一。
总之,使用 Go 语言开发接口,可以让你的项目更健壮,性能更出色,代码更精简,可维护性更高,能让你时刻体验优秀语言给人带来的愉悦感。
本教程以实际项目为导向,所有章节围绕着该项目系统地展开讲解,章节最后附带项目源码的下载地址,项目源码经过严格测试,给读者提供无 Bug 的学习环境。
教程适用人群:对 Go 语言感兴趣,有 Go 语法基础的同学;有服务端开发经验的更好;寻求高效与高性能并存技术方案的项目开发者。
学习预期目标:结合源码学习本系列教程后,可以快速入门 Go 语言开发终端接口的流程,从理解层面直接进阶到实践阶段。
作者简介:潘军杰,网名龅牙驴,拥有10余的互联网产品开发经验,近5年来专注于 Java,Go 语言的企业级开发, 在公司担任系统架构师职位,有丰富的互联网开发经验。