当前位置: 首页 > news >正文

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

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杨攀多次在采访中表示,融云之所以敢于公开承诺消息“不丢、不重、不乱”,源于“对技术心存敬畏之心”,这不仅是融云的企业理念,也是每一位技术人员在工作中践行的信条。

相关文章:

  • spring + angular 实现导出excel
  • 专访Pony.ai 楼天城:自动驾驶已经走过了“从0到1”,“规模”是行业的分水岭| 自动驾驶这十年 ...
  • Git for Windows 2.21.0 发布,Win 下的 Git 客户端
  • 聊聊flink的BlobWriter
  • PDF旋转使用的转换器有哪些
  • luoguP4647 [IOI2007] sails 船帆
  • 乐视云计算被列入失信名单;三星华为达成和解;Python3 采用率超 84%丨Q新闻
  • django -- 修改admin 密码问题
  • Java 最常见的 200+ 面试题:面试必备
  • lvm管理卷之缩减卷大小
  • 使用WebShellKiller检查服务器后门文件
  • quasar-framework cnodejs社区
  • 前端面试必懂的 - http 网络知识
  • 3月7日云栖精选夜读 | RSA 2019安全大会:企业资产管理成行业新风向标,云上安全占绝对优势 ...
  • Grafana v6.0.1 发布,系统指标监控与分析平台
  • [译]Python中的类属性与实例属性的区别
  • 【跃迁之路】【477天】刻意练习系列236(2018.05.28)
  • Apache Zeppelin在Apache Trafodion上的可视化
  • Cookie 在前端中的实践
  • CSS3 变换
  • CSS3 聊天气泡框以及 inherit、currentColor 关键字
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • Flex布局到底解决了什么问题
  • go append函数以及写入
  • JSDuck 与 AngularJS 融合技巧
  • JWT究竟是什么呢?
  • Laravel Mix运行时关于es2015报错解决方案
  • UMLCHINA 首席专家潘加宇鼎力推荐
  • 百度小程序遇到的问题
  • 动手做个聊天室,前端工程师百无聊赖的人生
  • 罗辑思维在全链路压测方面的实践和工作笔记
  • 网页视频流m3u8/ts视频下载
  • 一份游戏开发学习路线
  • 移动互联网+智能运营体系搭建=你家有金矿啊!
  • 掌握面试——弹出框的实现(一道题中包含布局/js设计模式)
  • 你对linux中grep命令知道多少?
  • #pragam once 和 #ifndef 预编译头
  • (10)Linux冯诺依曼结构操作系统的再次理解
  • (4) PIVOT 和 UPIVOT 的使用
  • (附源码)计算机毕业设计ssm基于Internet快递柜管理系统
  • (三分钟)速览传统边缘检测算子
  • (数据结构)顺序表的定义
  • (算法)N皇后问题
  • (转)scrum常见工具列表
  • .NET CORE 第一节 创建基本的 asp.net core
  • .Net 中的反射(动态创建类型实例) - Part.4(转自http://www.tracefact.net/CLR-and-Framework/Reflection-Part4.aspx)...
  • .sh文件怎么运行_创建优化的Go镜像文件以及踩过的坑
  • [ vulhub漏洞复现篇 ] Jetty WEB-INF 文件读取复现CVE-2021-34429
  • [AutoSar]BSW_Memory_Stack_003 NVM与APP的显式和隐式同步
  • [Fri 26 Jun 2015 ~ Thu 2 Jul 2015] Deep Learning in arxiv
  • [hive] 窗口函数 ROW_NUMBER()
  • [Linux]Ubuntu noVNC使用
  • [luoguP1666] 前缀单词(DP)
  • [macOS] Mojave10.14 夜神安卓模拟器启动问题
  • [NOIP2004] 提高组 洛谷P1090 合并果子