点击报名《大模型时代的 AI 基础设施——百度AI大底座》系列云智公开课 了解详情
写点什么

Slack 工程师如何解决最常见的移动开发痛点

  • 2022-12-09
    北京
  • 本文字数:985 字

    阅读完需:约 3 分钟

Slack工程师如何解决最常见的移动开发痛点

Slack 的开发者体验团队是由 8 个人专门负责的,该团队是为解决伴随组织和开发团队壮大而不断增长的成本问题。在 Slack 开发过程中成本最为高昂的部分,在于工程师需花费大量精力合并代码冲突、长时间的 CI 工作、片状测试和 CI 基础设施故障。


虽然可以让开发者们学习部分问题的解决方法,但随着团队的成长,所要花费的时间和成本是极不现实的。拥有一个特殊团队专注解决这类问题,不仅可以让开发团队效率更高,还能确保开发团队保持对产品成果的高度关注。


据估计,每百名开发者平均每年的成本约为 240 万美元,而合并冲突则是其中最大痛点,包括:Xcode 项目合并冲突、并发合并到主分支,以及漫长的拉取请求审查过程造成的。


Xcode 项目在代码合并时是出了名的冲突不断。为解决这一问题,Slack 工程师会使用Xcodegen来生成 YAML 文件对应的.xcodeproj 文件,后者是一种更为宽容的格式。


多次并发合并到主分支会造成更多的合并冲突风险,其他所有的 PR 合并都会暂停,直至冲突解决。对此,Slack 采用了Aviator,将所有 PR 排序一一处理。Aviator 并不会直接将所有 PR 合并到主分支,它会尝试先将主分支合并到一个开发分支上,如果这一步中主分支报错,Aviator 会拒绝 PR 并通知代码作者。


最后,为加速拉取请求的生命周期,Slack 工程师发现在 PR 任务、评论、审批通过以及构建成功的私信等加入定时提醒是非常有用的,包括不用离开 Slack 就能合并 PR 等功能。为实现这一切,他们创建了自己的 GitHub 机器人:MergeBot。


Mergebot 帮助我们缩短了拉取请求的审核过程,让开发者保持流动。通过节省每位开发者 5 分钟的时间,为百人开发团队一年内节省了 24 万美元。


值得庆幸的是,GitHub 也提供类似功能,就是“预定提醒”,尽管这一功能并不支持消息自身的一键合并。


优化 PR 及代码合并流程并不是 Slack 为改善开发者体验所采取的唯一行动。在另一个高成本的区域,测试和 CI 基础设施失败上,Slack 一方面执行平行测试,并根据 PR 差异只运行 PR 所需特定测试策略,另一方面,BuildKite确实对提高 CI 基础设施的稳定性有效果。


Slack 称,改善开发者的体验不仅能让开发者更高兴,也能降低整体开发成本。如果你对 Slack 实现这一目标的更多细节感兴趣,可以阅读原文


原文链接

How Slack Engineers Addressed Their Most Common Mobile Development Pain Points 


相关阅读:

斥资 277 亿美元收购 Slack,Salesforce 这一次的目标是微软?

Slack的原型制作流程

Slack的开发环境是如何演进的?

2022-12-09 08:005115

评论

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

java培训机构口碑排名哪家比较好?

小谷哥

量化与科技的相遇!亚马逊云科技揭开神秘的量化私募

Lily

io模型

wzh

Linux io Linux Kenel IO模型

vue面试之Composition-API响应式包装对象原理

bb_xiaxia1998

Vue

springboot + redis多数据源 + jedis集群模式

try catch

redis springboot spring Boot Starter redis cluster redis多数据源

数据培训机构的学习费用是多少

小谷哥

2022年最新【Java经典面试800题】面试必备,查漏补缺;多线程+spring+JVM调优+分布式+redis+算法

Geek_0c76c3

Java 开源 程序员 架构 面试

How Good is TiDB as an HTAP System? A HATtrick Benchmark

TiDB 社区干货传送门

如何处理损坏的sst文件

TiDB 社区干货传送门

实践案例 管理与运维 故障排查/诊断

在DAYU200上实现OpenHarmony视频播放器

OpenHarmony开发者

OpenHarmony

web丨nft元宇宙链游项目系统开发模式逻辑详细(成熟源码)

I8O28578624

数据分析师被当作取数机怎么办?

雨果

数据中台 数据分析师

前端培训怎么学习好就业?

小谷哥

《数据迁移》--单库迁移

TiDB 社区干货传送门

迁移

灵雀云全栈云原生开放平台ACP登陆VMware云市场

York

容器 云原生 数字化转型 虚拟化 应用现代化

堡垒主机是堡垒机吗?两者有什么关系?

行云管家

网络安全 信息安全 堡垒机 堡垒机主机

32天高效突击:狂刷《Java权威面试指南(阿里版)》,offer拿到手软

Geek_0c76c3

Java 数据库 开源 程序员 架构

web前端开发培训学习后的就业方向

小谷哥

数字化转型必读:从信息化到数字化的本质是什么

雨果

数字化转型 数字化 数字化业务转型 信息化本质

阿里前端高频vue面试题(边面边更)

bb_xiaxia1998

Vue

前端技术培训后的职业规划

小谷哥

单刷 3 届 Hackathon,朝着理想中的数据库出发丨TiDB Hackathon 选手访谈

PingCAP

TiDB

Java面试最强10W字面经,Github访问量破百万,火热涨星中!

Geek_0c76c3

Java 开源 程序员 面试 开发

堡垒机推荐厂商当属哪家?为什么?咨询电话多少?

行云管家

网络安全 信息安全 数据安全 堡垒机

数字化转型失败率高达84%?看看数字化转型方法对不对

雨果

数字化转型

消除两个开源项目之间长达4年的分叉

TiDB 社区干货传送门

TiDB 底层架构

Github星标57.9K!阿里巴巴Java面试突击汇总(全彩版)首次公开

Geek_0c76c3

Java 数据库 程序员 架构 开发

如何给TiDB集群的prometheus更换端口

TiDB 社区干货传送门

实践案例 集群管理 安装 & 部署 扩/缩容

vue这些原理你都知道吗?(面试版)

bb_xiaxia1998

Vue

全网首发“Java面试考点大全”,25+专题梳理:JVM+多线程+Spring全家桶+MySQL+Redis等

Geek_0c76c3

Java 数据库 开源 程序员 开发

Hashtable、HashMap、TreeMap的区别

zarmnosaj

10月月更

Slack工程师如何解决最常见的移动开发痛点_文化 & 方法_Sergio De Simone_InfoQ精选文章