写点什么

领英通过实施消息客户端 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:002691

评论

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

新星计划Day9【数据结构与算法】 递归

京与旧铺

7月月更

为什么 Nodejs 这么快?

devpoint

nodejs V8 视频流 7月月更

机器学习|BP(Back Propagation)神经网络

AXYZdong

机器学习 7月月更

JVM-SANDBOX导致目标服务JVM Metaspace OOM的调查始末

柠檬汁Code(binbin0325)

互联网 字节码增强 故障排查

HMS Core图形图像技术展现最新功能和应用场景,加速构建数智生活

最新动态

ES6之箭头函数

bo

前端 ES6 箭头函数 7月月更

面试官:工作两年了,这么简单的算法题你都不会?

掘金安东尼

程序员 面试 算法 前端 7月月更

数据库的主从分离

ES_her0

7月月更

面试微服务

Damon

7月月更

Python中除了lambda函数能实现一句话程序,还有什么方式能够实现呢?

迷彩

Lambda Function 7月月更 推导式

MySQL 5.7.37数据库下载安装教程(Windows无需安装版)

未见花闻

7月月更

Bigdata 作业 第14&15周

Pyel

不要在白嫖Github了!

Jackpop

JAVA编程规范之并发处理

源字节1号

软件开发 后端开发

【CODETOOL】文件比较Beyond Compare使用介绍

柒号华仔

开发工具 7月月更

一次业务问题对ES的cardinality原理探究

Chares

Java elasticsearch 后端开发 问题排查 问题分析

Python 有哪些好玩的语法糖?

Jackpop

应用的无状态设计

穿过生命散发芬芳

7月月更 应用无状态

putchar()

謓泽

7月月更

CodeTON Round 1 (Div. 1 + Div. 2, Rated, Prizes)(A-C)

KEY.L

7月月更

安利一款笔记工具---Obsidian

空城机

工具 7月月更

【MySql项目实战优化】多行数据转化为同一行多列显示

安逸的咸鱼

MySQL 实战 7月月更

Markdown 基本语法格式

攻城狮杰森

markdown 7月月更

基于crudapi后端Java SDK二次开发之API认证和鉴权(二)

crudapi

API Cookie JWT crud basic auth

开发者必看 | DevWeekly 第1期:什么是时间复杂度?

Jackpop

如何高效系统学习 MySQL?

Jackpop

Envoy生命周期管理

阿泽🧸

envoy 7月月更

长安链tls基础研究

长安链

MySQL到底是如何执行SQL语句的

技术小生

MySQL 7月月更

如何优雅地使用 Git?

Jackpop

基于多数据源零代码同时生成多个数据库CRUD增删改查RESTful API接口——MySql,PostgreSql,Oracle,Microsoft SQL Server多数据源

crudapi

Java 数据库 Spring Boot crudapi 多数据源

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