小博无线技术团队使用的编程语言

目前,小博无线(rippletek.com)技术团队主要使用下面四种编程语言:

  • Ruby
  • JavaScript
  • Lua
  • Go

早期曾大量使用Erlang,后来放弃,具体原因在这篇文章中有详细介绍。

Ruby

Ruby on Rails进行业务数据接口开发

优点在于可以快速开发业务,弱点在于资源占用大,并发能力差。

开发策略为优先采用Ruby快速开发新业务,如发现有接口由于高频调用出现性能问题,先将这部分功能隔离出来并增加节点个数,将性能问题转化为资源问题,再用并发性能更好的Go语言实现替换Ruby来解决资源问题。这篇文章是一个具体案例。

运维机器人TidyMaid

我们在运维自动化中也广泛使用Ruby,TidyMaid就是采用Ruby实现的,详细介绍可参考这篇文章

JavaScript

这是前端开发的唯一选择。云端业务系统主要基于React, 设备配置界面基于Vue。

Lua

设备端的业务开发主要采用Lua,好处是开发和调试难度比C低很多,如果需要调用系统底层功能,也能和C模块非常方便的集成。

云端也有一部分基于openresty开发的与设备对接的业务系统,并发性能很好。

Go

  • 由于并发性能优异,用于高并发的数据接口开发
  • 结合alpine和chronos, 可以非常方便的开发和部署定时任务
  • 由于部署简单,在运维系统中也被大量使用

其他

除了上面四种被大量使用的编程语言,还有一些较少使用的编程语言:

  • C用于开发设备上的一些网络内核模块和设备驱动
  • Groovy用于实现jenkins pipeline
  • 运维系统还使用了少量的python
  • Java用于实现ODPS的UDF
上一篇:Linux下误删除后的恢复操作(ext3/ext4)


下一篇:eslint使用心得