写点什么

领英通过实施消息客户端 SDK,将开发效率提高了 10 倍

  • 2023-04-25
    北京
  • 本文字数:1458 字

    阅读完需:约 5 分钟

领英通过实施消息客户端 SDK,将开发效率提高了10倍

领英在近期发布的文章《如何通过消息客户端 SDK 大幅提升开发效率》中称,通过使用 SDK 抽象数千行代码至共享库,他们得以削减跨多平台应用的代码维护成本。在一个用例场景下,新 SDK 在构建全新领英体验时可以节省四十余名开发者数周的劳动。

 

领英的高级员工工程师 Michele Ursino 和领英的工程负责人 Joe Xue 对 SDK 是如何提高生产力的解释如下:

 

我们的 Messenger SDK 通过将数千行代码抽象为共享库,减少了跨多个应用程序的代码维护成本,极大地提升了开发人员的工作效率。在部分情况下,我们实现了跨十倍的代码数量减少,从三千多行减至几百行。其结果是,开发人员现在可以在几周内创建新的信息体验,而非原先的几月或几季度。

 

Ursino 和 Xue 称,通过创建一个跨领英消息体验的共用前端平台,他们已经证明了这种可被他人复制、用于自己核心功能的模式:

 

同领英一样,拥有多个大型应用的组织应重新考虑应用构建的方式。与其将应用当作独立个体,组织可以在可重复使用的平台库之上,建立轻薄的应用层,按需暴露各类技术支柱的高级能力乃至用户界面。

 

领英在2020年年中完成了其消息体验的重构。不过,据 Ursino 和 Xue 说明,“在运行领英产品的设备上实现完整消息可靠性和功能性是一项复杂的任务,不仅工作量繁重且对细节要求颇高。”为确保最大限度的一致性和可靠性,领英对其消息传递平台进行了扩展,涵盖了客户侧设备和前端 API 中的消息数据管理。领英的消息传递团队将所有消息传递功能打包为一个全功能的数据层 SDK,用于解决客户端应用中消息传递数据的管理复杂性问题。

 


来源:https://engineering.linkedin.com/blog/2023/unifying-messaging-experiences-across-linkedin

 

领英将新的 SDK 分为两类库:用于应用程序 API 中消息整合的 API 库(“messenger-api”),以及用于表示设备本地信箱的客户库(messenger-data)。

 

其中,API 库有三项功能:桥接客户与后端消息传递平台基础设施间 GraphQL 请求、允许主机 API 自定义消息传递 API 的行为,以及允许其他系统使用 GraphQL 对消息传递数据进行装饰。该 API 库实现了对外部系统消息传递数据的错误检查,并暴露了一个 GraphQL 模式,其中包含每个平台中客户 SDK 库用于获取信息的查询。这种架构方式允许主机 API 代码对每个 API 请求生命周期中,后端消息平台传至前端的消息数据进行自定义转换。

 


来源:https://engineering.linkedin.com/blog/2023/unifying-messaging-experiences-across-linkedin

 

客户库为消息传递实现了一个以事件为驱动的数据层(EDDL),为客户设备中的信箱数据提供了实时的表示,且与后端中实际的信箱数据进行同步。该 API 库意在保障最大化消息传递可靠性,允许应用程序开发者轻松访问信箱数据。此外,其所采用的反应式方法也支持了设备中对话和消息的快速渲染和屏幕刷新,即时地将任何数据变化通知主机应用程序代码,从而允许必要的用户界面刷新。

 


来源:https://engineering.linkedin.com/blog/2023/unifying-messaging-experiences-across-linkedin

 

领英已经将其旗舰应用程序的消息传递功能迁移至 Messenger SDK,为全客户平台提供一致且可靠的消息传递体验。该 SDK 带来了跨平台的功能平等性以及现代化的代码库,提高了稳定性和可靠性,也提升了开发人员的生产力。


原文链接:

LinkedIn Improves Development Productivity by 10x Implementing a Messaging Client-Side SDK


相关阅读:

领导力匠艺:像开发人员打造代码那样打造你的领导力

当你的技术栈不能满足每个人需求时,下一步是什么呢?

提高软件质量:如何处理数据发现更多 Bug


2023-04-25 08:002645

评论

发布
暂无评论
发现更多内容

一对一语音直播系统源码——如何解决音视频直播技术难点

开源直播系统源码

软件开发 直播系统源码 语音直播系统源码 语音直播源码 一对一语音直播

【Gopher 学个函数】边学边练,简单为 Go 上个分

梦想橡皮擦

Python 爬虫 8月月更

Curve Testing Camp Time|万元大奖等你来拿!

张慧

分布式存储 curve

什么是公共云、私有云、混合云、社区云,四者分别有啥区别?

wljslmz

云计算 8月月更

架构实战营 毕业总结

Gor

Excelize 发布 2.6.1 版本更新,支持工作簿加密保护

xuri

开源 数据分析 Go 语言 Excelize Excel工具

golang实战之flag包

程序员欣宸

golang 8月月更

【Java】:二维数组的定义、初始化、长度以及循环遍历等...

翼同学

Java 学习 编程语言 分享 8月月更

头脑风暴:最大子序和

HelloWorld杰少

数据结构 算法 LeetCode 8月月更

企业分账如何帮助用户解决成本优化和预算分配的问题

阿里巴巴中间件

阿里云 Serverless 云原生 SAE

《博弈论》— 人生何处不博弈

蔡农曰

读书笔记 博弈论

SpringBoot 整合 Junit

springboot junit5 8月月更

P6项目管理系统的优缺点是什么?

爱吃小舅的鱼

项目管理 项目管理软件

Latex安装教程(附美赛论文latex模板)

乌龟哥哥

8月月更

kubernetes镜像构建和扫描

CTO技术共享

leetcode 560. Subarray Sum Equals K 和为 K 的子数组(中等)

okokabcd

LeetCode 算法与数据结构

电商秒杀系统设计(架构实战营 毕业设计项目)

Gor

【算法实践】| 手把手带你实现快速排序算法

迷彩

快速排序 算法实践 8月月更

[JS真好玩] 遇到表格,手动翻页太麻烦?我教你写脚本,一页展示所有数据

HullQin

CSS JavaScript html 前端 8月月更

Kubernetes中API安全加固

CTO技术共享

软件测试中的树莓酱定律

BY林子

软件测试 敏捷测试 质量内建

动态尺寸模型优化实践之Shape Constraint IR Part II

阿里云大数据AI技术

深度学习 编译器 优化

为什么说:被观察者是 push 数据,迭代者是 pull 数据?

掘金安东尼

前端 函数式编程 8月月更

C++多态之析构和纯虚析构分析与示例(三)

CtrlX

c++ 后端 面向对象思想 8月月更

程序员最容易读错的单词,听到status我炸了

艾小仙

Java 前端

数据治理(六):编译Atlas安装包

Lansonli

数据治理 8月月更

基于STM32L431设计的云端绿化管理系统(ESP8266+腾讯物联网云平台)

DS小龙哥

8月月更

阿里云林小平:如何实现应用的持续发布?

阿里云弹性计算

持续发布 应用 自动化运维

最新版MySQL8 绝对有用的lag函数实现同比、环比、均差计算

知识浅谈

MySQL 8月月更

机器学习服务文本翻译能力升级,中文直译模型让译文表达更地道!

HarmonyOS SDK

RocketMQ高可用设计之消息重试机制

急需上岸的小谢

8月月更

领英通过实施消息客户端 SDK,将开发效率提高了10倍_语言 & 开发_Eran Stiller_InfoQ精选文章