• 0

  • 487

  • 收藏

我眼中的go语言

perpetual

python交流

1年前

这篇文章主要是聊聊这几年我和go语言的一些故事和期待,大学毕业已3年有余,17年刚毕业那会儿到现在3年有余,当时go语言各方各面确实不如现在广,我记得当时我们项目依赖包用的都是govendor,现在绝大部分都是mod了,除了一些老项目包可能还在用。但现在很流行了,附上通过国外开发者平台HackerRank的截图,可以看出目前还是挺多人学的。
那会微服务架构正热,我们项目初始阶段也是按照微服务思路来做的,虽然各个服务之间没有那么复杂但也是“麻雀虽小五脏俱全”,可以看下当时我画了个简略版的架构图.
说明下当时项目大概情况,当时是基于近距离无线追踪定位场景做的宠物项圈(卖169美元一个,不便宜啊!!!)。项目除了app端和对应后端服务,有对应自己的后端管理系统,有自己的官网。现在项目基本都有,再复杂点可能有自己的总用户系统。接着后续的几年都陆陆续续做了几个别的项目,都有一个共同的共性,都是和物联网相关的(深圳工厂自己生产硬件,自己做软件),有radacat一款社交app、iot-pole城市智慧灯杆系统。整体项目架构都和截图里大同小异,灯杆系统稍复杂点,因为涉及到lora协议和物联网设备对接。我一直认为并不是一个项目用的技术越高深越复杂就一定越好,因为这里涉及到人力成本,运营维护成本,日积月累也是一笔不小的开支,所以不同阶段用不同技术,适合是最重要的。go里面也体现出了优势,更新部署快一个可执行文件就搞定,不像java需要搭建一整套环境;简单的并发 channel和goroutine;效率高,类C语法易学,强大的编译检查,减少了程序员的心智负担。 罗列了之前用过的技术:

  • 项目包:gorm、grpc、gin、gorm、redigo、mongodb
  • 中间件:kafka、emq、mqtt
  • 数据库:mysql、redis、MongoDB

使用领域

一个事实是go语言所涉及到的领域越来越广,除了一般性的web、app后端服务外,消息中间件,区块链,物联网领域是更具有代表性,但下面我介绍两个很特别的领域

科学计算领域(goplus)

科学计算领域一直是Python的天下,就因为其库非常丰富,基本只要你能想到的都有对应的库给你使用,但是业内七牛云研发的goplus也是今年开源了,目标是和Python对标科学计算领域。下面截两张图就明白了,

代码越来越简洁了,有点Python的影子了

数据库领域(TiDB)

Tidb是 PingCAP 公司自主设计、研发的开源分布式关系型数据库,是一款同时支持在线事务处理与在线分析处理 (Hybrid Transactional and Analytical Processing, HTAP)的融合型分布式数据库产品,具备水平扩容或者缩容、金融级高可用、实时 HTAP、云原生的分布式数据库、兼容 MySQL 5.7 协议和 MySQL 生态等重要特性。目标是为用户提供一站式 OLTP (Online Transactional Processing)、OLAP (Online Analytical Processing)、HTAP 解决方案。TiDB 适合高可用、强一致要求较高、数据规模较大等各种应用场景。 截一张非常全的操作手册图(国人开发的很有好啊)

排名

最后附上今年3月份TIOBE公布的编程语言排行榜,突破历史排进前10了,google背书,go语言未来可期啊。

免责声明:文章版权归原作者所有,其内容与观点不代表Unitimes立场,亦不构成任何投资意见或建议。

Python

487

相关文章推荐

未登录头像

暂无评论