2007年诞生的Go语言,凭借其近C的执行性能和近解析型语言的开发效率,以及近乎完美的编译速度,席卷全球。Go语言相关书籍也如雨后春笋般涌现,前不久,一本名为《Go语言并发之道》的书籍被翻译引进国内,并迅速引起广泛关注,本书由融云的一位研发工程师赵晨光联合翻译,旨在帮助Go语言学习者了解并发设计的模式和应用场景,更加深入理解Go语言特性,从而提升自身技术研发水平。

“Go语言并发编程快速入门的第一要义”

《Go语言并发之道》主要讲解了Golang语言的最佳实践和模式,引导读者如何选择并发模型以及如何组合利用。全书详细剖析了并发与并行的关键性区别、Go语言的内存同步原语,并列举了帮助学习者编写大规模分布式系统的技巧和工具。

关于Go语言学习的思考,赵晨光认为,“Go语言并发编程快速入门的第一要义是理解Go语言并发的范式所内涵的思想”,初学者只有打好原理基础,才可发挥出Golang语言特性带来的各种便利。此外,Go语言在应用上具有很多优势,非常适合编写处理高并发量的服务端程序,Go语言的并发之道和融云现有IM的技术架构很相似,正如《Effective Go》中对共享内存与消息通讯方式的描述:“Do not communicate by sharing memory; instead, share memory by communicating.”(不要通过内存共享进行通讯;应当通过通讯来共享内存)。

更重要的是,比起热门的Java、C++等语言来说,Golang推崇的是大简之道,更有助于提升业务效率。“当然,Golang也有一些缺点,例如对于企业来说,将项目中的现有语言换成Go语言编写,有一定的替换成本,但这仍然不影响它成为年度十大受欢迎的语言之一。”

融云“极客”氛围助推学习实践

在联合翻译的过程中,赵晨光也遇到很多阻碍,例如他自谦的提到,由于受自身语言水平的限制,始终难以达到其心目中“信达雅”的翻译标准;每次遇到瓶颈或研究困难时,他都会向工作中的技术大拿们寻求帮助,以便更好的理顺思路及理解Golang在实践中的应用问题。

“融云良好的技术氛围和开放共享的环境,对我在工作和学习中有很大的帮助,一定程度上也促进了《Go语言并发之道》的翻译。平时部门内部有同事遇到技术问题时,大家会随时交流;研发部也经常会买一些前沿的技术书籍供大家学习,同事们的帮助和好的沟通氛围让我可以更加专注于技术本身的学习研究。”

此外,赵晨光还将自己对Go语言的研究应用到日常工作中,运用Go语言开发了很多小工具,将技术原理应用到实践,有效提升了自己和团队的工作效率。值得一提的是,理论的研究和具体工作的结合让他对IM架构加深了理解,他将自己的总结在团队内进行分享,为同事们的研发工作提供新的思路,更进一步专注于IM和实时音视频的技术深耕,完成从学习沉淀到实践运用的循环过程,从而为客户提供更安全、可靠、稳定的产品技术支持,以及更高效的服务。

据了解,融云80%的员工都是技术人员,在 “极客”的氛围下,众多研发工程师都在工作中取得了长足的进步。正如融云CTO杨攀多次在采访中表示,融云之所以敢于公开承诺消息“不丢、不重、不乱”,源于“对技术心存敬畏之心”,这不仅是融云的企业理念,也是每一位技术人员在工作中践行的信条。

https://developer.rongcloud.cn/signup/?utm_source=wailianfagao&utm_term=GolangNew

融云开发漫谈:你是否了解Go语言并发编程的第一要义?的更多相关文章

  1. python全栈开发从入门到放弃之socket并发编程多进程

    1.1 multiprocessing模块介绍 python中的多线程无法利用多核优势,如果想要充分地使用多核CPU的资源(os.cpu_count()查看),在python中大部分情况需要使用多进程 ...

  2. python全栈开发从入门到放弃之socket并发编程多线程

    一 threading模块介绍 multiprocess模块的完全模仿了threading模块的接口,二者在使用层面,有很大的相似性,因而不再详细介绍 二 开启线程的两种方式 from threadi ...

  3. python全栈开发从入门到放弃之socket并发编程多线程GIL

    一 介绍 ''' 定义: In CPython, the global interpreter lock, or GIL, is a mutex that prevents multiple nati ...

  4. python全栈开发从入门到放弃之socket并发编程之协程

    一.为什么会有协程 本节的主题是基于单线程来实现并发,即只用一个主线程(很明显可利用的cpu只有一个)情况下实现并发,为此我们需要先回顾下并发的本质:切换+保存状态 cpu正在运行一个任务,会在两种情 ...

  5. 1、网络并发编程--简介、软件开发架构、OSI七层协议

    python复习 变量与常量 基本数据类型 内置方法 字符编码.文件操作 函数 函数参数.闭包函数.装饰器 面向对象 封装.继承.多态 """ 什么是对象 数据与功能的结 ...

  6. iOS开发融云即时通讯集成详细步骤

    1.融云即时通讯iOS SDK下载地址   http://rongcloud.cn/downloads  选择iOS   SDK下载 2.进行应用开发之前,需要先在融云开发者平台创建应用,如果您已经注 ...

  7. IM 融云 之 开发基础概念

    基础概念 - 开发篇 App Key / Secret App Key / Secret 相当于您的 App 在融云的账号和密码.是融云 SDK 连接服务器所必须的标识,每一个 App 对应一套 Ap ...

  8. ios开发之 -- 5分钟集成融云的客服功能

    最近项目中遇到了客服的功能,首先想到的就是使用融云的功能,因为以前做的即时通讯的项目,用的都是融云的sdk,花了点时间研究了下,希望能帮到大家! 废话不多说,步骤如下: 一.申请融云账号 二.创建应用 ...

  9. iOS:融云即时通讯快速集成

    一.介绍 即时通讯在众多社交软件.生活软件以及教育软件中已经是必备的功能了,在当前国内,即时通讯SDK做的比较不错的有那么几家,例如环信SDK.融云SDK...,这两家做的都很不错,各有千秋吧,要是真 ...

随机推荐

  1. BAT面试上机题从3亿个ip中找出访问次数最多的IP详解

    我们面临的问题有以下两点:1)数据量太大,无法在短时间内解决:2)内存不够,没办法装下那么多的数据.而对应的办法其实也就是分成1)针对时间,合适的算法+合适的数据结构来提高处理效率:2)针对空间,就是 ...

  2. python print 打印的数据包含中文,打印报错UnicodeDecodeError: 'gbk' codec can't decode bytes in position 459-460: illegal multibyte sequence解决办法

    python 2.7 print 的数据中若包括中文,打印则会报错UnicodeDecodeError: 'gbk' codec can't decode bytes in position 459- ...

  3. 如何用AJax提交name[]数组?

    https://www.cnblogs.com/junzilan/p/5424120.html

  4. oracle客户端instantclient如何配置

    下载下来的instantclient-basic-nt-11.2.0.4.0.zip文件解压缩D:\Program Files\instantclient_11_2(可以选择自己的目录) (1) 增加 ...

  5. python基础类型—集合

    一,集合. 集合是无序的,不重复的数据集合,它里面的元素是可哈希的(不可变类型),但是集合本身是不可哈希(所以集合做不了字典的键)的.以下是集合最重要的两点: 去重,把一个列表变成集合,就自动去重了. ...

  6. ubuntu的apt-get install的默认安装路径(转)

    一.apt-get 安装 deb是debian linus的安装格式,跟red hat的rpm非常相似,最基本的安装命令是:dpkg -i file.deb或者直接双击此文件 dpkg 是Debian ...

  7. 关于vue-cli创建项目(小白)

    vue-cli,都说是vue脚手架,一般cli是命令行的意思,一看就知道与node有关,其实脚手架是建筑工用的工具,给工人踩在上面干活的,这里借用它的意思,我觉得应该叫vue平台工具大家更容易懂,毕竟 ...

  8. swust oj 956

    约瑟夫问题的实现 2000(ms) 65535(kb) 3266 / 10775 n个人围成一个圈,每个人分别标注为1.2.....n,要求从1号从1开始报数 ,报到k的人出圈,接着下一个人又从1开始 ...

  9. CentOS从源码安装Erlang

    ### 首先下载资源 wget http://erlang.org/download/otp_src_18.3.tar.gz ### 解压 .tar.gz ### 安装依赖包 yum install ...

  10. 剑指offer——python【第53题】表示数值的字符串

    题目描述 请实现一个函数用来判断字符串是否表示数值(包括整数和小数).例如,字符串"+100","5e2","-123","3.1 ...