在上个月刚刚结束的Ignite大会上,Teams产品的架构师Bill Bliss给大家奉上了最新的Teams的架构设计,之前2017年和2018年微软的技术大会上都Teams架构的分享,但是今年大神把Teams架构讲得很深入,覆盖面很广。我这里就挑一些,根据我的理解和各位分享一下。
先来看一下Teams客户端的架构。
- 三大桌面端:Web,Windows,Mac。技术栈基本统一
- 使用TypeScript,大牛Anders Hejlsberg的力作啊,此语言也是我的最爱,在web开发上快要一统江湖了
- 目前正在从Angular慢慢的转成React,原因也很简单,一旦全部转成React,就可以和手机客户端的React Native重用大量代码,进一步降低研发成本。
- Windows和Mac桌面端使用Electron作为外壳,提供原生系统的调用能力。并且使用C++和ObjectiveC来处理音频视频编码和桌面共享等功能。
- 手机平台使用原生语言Swift和Java开发的,期待明年可以看到Kotlin的身影
再来看一下云端的架构设计: