看到之前收藏的这篇文章,对有感觉的部分转载一下。
身边很多朋友都在使用得到 app,但是对于背后的技术团队大家可能还了解不多,能简单介绍一下你们技术团队吗?作为得到的首席架构师,您的日常主要职责是什么?
方圆:得到的技术团队主要包括前端(Web,iOS,Android),得到后端,商城团队,基础服务团队,大数据团队和运维团队。
我的工作主要是带领得到后端团队负责得到 app 后端研发。其中包括业务系统功能日常研发,还有内部使用的服务框架和工具的研发。
您在 2017 年 12 月的 GIAC 大会担当了中间件专题的出品人,能否给广大读者介绍一下什么是中间件?对于一个架构师,如何看待中间件的价值?
方圆:中间件是非业务的技术组件。个人以为广义上来说,除操作系统之外,其他都是中间件。当然一般意义上来说,中间件主要是消息中间件,框架,配置服务,缓存等等。
中间件对于应用系统来说最重要的价值是,减少应用系统控制逻辑的复杂性从而让工程师尽量多的关注应用的业务逻辑,举例来说比如服务框架可以降低我们拆分服务的复杂度,类似 DRDS 这样的框架可以让程序员尽量少的关心分库分表,通过消息中间件可以对一些应用系统解耦。
而对于工程师来说,学习中间件可以迅速提高自己的抽象能力和代码能力,最好是能够在熟悉之后,尝试自己实现一个小的 demo 从而加深理解。
大部分团队在项目中采用开源的中间件,也有一些团队比较青睐自研,对于引入和自研中间件有什么建议?
方圆:在业务初期试错阶段,建议采用成熟的开源的中间件,这样避免踩坑,也能够加快开发进度,但在中间件的选型上要根据自己团队的熟悉程度来确定,不能盲目跟风,降低团队整体的学习成本。
而业务发展稳定阶段,可以根据自己的业务特性来自研,同时也要考虑公司的资源投入情况,以及兼容主流的数据格式或者通讯协议。自研的周期一般较长,需要拆解成阶段性目标,这样利于落地,同时也要兼顾旧系统,充分考虑将来上线数据迁移,业务平滑过渡。
阿里在 2017 年重新成立了 Dubbo 开发团队,本次 GIAC 中间件专题也有相关的分享,从大会现场的了解的情况来看,Dubbo 有哪些新的变化?
方圆:参会人员对于 Dubbo 的关注点主要在以下两点:第一,阿里对于 Dubbo 的支持到底如何?第二,第三方团队如何给 Dubbo 贡献代码?
阿里这次重拾 Dubbo,官方很有信心让 Dubbo 成为 Apache 项目,前段时间也看到 Dubbo 3.0 的消息,新的 Dubbo 内核与 Dubbo 2.0 完全不同,但它兼容 2.0。Dubbo 3.0 将以 Streaming 为内核,而不再是 2.0 时代的 RPC,但是 RPC 会在 3.0 中变成远程 Streaming 对接的一种可选形态。具体的变化还需要等 Dubbo 新版本 release。