
作者 | Sergio De Simone
译者 | 马可薇
策划 | 丁晓昀
Slack 开发者体验团队由 8 个人负责解决随着组织和开发团队的成本增长而增加的问题。 Slack 开发过程中最昂贵的部分是,工程师需要花费大量的精力来合并代码冲突和长时间 CI 工作,片状测试和 CI 基础设施故障。
虽然开发人员可以学习一些问题的解决方案,但随着团队的成长,时间和成本是非常不现实的。拥有一个专门的团队来解决这些问题,不仅可以提高开发团队的效率,而且可以确保开发团队对产品结果保持高度的关注。据估计,每100名开发商的平均年成本约为 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 (https://www.infoq.com/news/2022/11/developer-experience-slack/)
斥资 277 亿美元收购 Slack,Salesforce 这次的目标是微软?(https://www.infoq.cn/article/aSa4FPoYAHqNbI3C9PE3)
Slack 原型制作工艺 (https://www.infoq.cn/article/7DSXjvFalfwWJJSHuurZ)
Slack 如何发展开发环境?(https://www.infoq.cn/article/GUjqo8N1HcaDjZJZYQ3E)
声明:本文为 InfoQ 翻译,禁止未经许可转载。