项目管理
-
Ruby LSP 实践:用语言服务器提升 Ruby 与 Rails 开发者体验
Ruby LSP 是某海外电商平台开发的一款全新 Ruby 语言服务器。它可以为任何支持 LSP 客户端的编辑器提供更完善的 Ruby 功能,包括代码诊断、代码折叠、格式化、语义高亮、自动补全和 Rails 相关能力,从而进一步改善 Ruby 与 Rails 开发体验。本文将介绍 Ruby LSP …
-
声明式基础设施是什么:组件群管理如何大规模管理云资源
这是我们关于某海外音频科技公司如何进行组件群管理,以及如何大规模管理软件的系列文章第二部分。另请参阅第一部分和第三部分。 在这家公司,我们采用了声明式基础设施范式,以改进基础设施平台的配置管理方式和控制平面设计。借助这一方式,我们能够在大规模环境下,管理分布于数万个不同服务中的数十万个云资源。 简单…
-
大型 Rails 应用工程模式:开发环境、Pod 架构与领域驱动设计实践
本文以某海外电商平台的大型 Rails 单体应用为例,介绍其如何通过统一开发环境、Pod 架构、领域驱动设计、代码质量保障和自动化工具,支撑全球化平台稳定运行,并持续提升开发者效率和系统可维护性。 在某海外电商平台,我们沉淀出了一套自己的工程模式,用来支撑全球化平台的稳定运行。在加入这里之前,我曾开…
-
云开发平台、负载测试与模块化代码:某海外电商平台的工程实践
某海外电商平台首席技术官概述了该公司在 2022 年最重要的几项工程方向。本文将从模块化代码、云开发平台、负载测试、开发者效率和核心技术栈等角度,介绍大型电商平台如何应对高并发流量、复杂系统架构和全球化研发协作带来的挑战。 2021 年黑色星期五和网络星期一大促期间,某海外电商平台创下了平台历史上的…
-
单体架构拆解实践:从单体到模块化单体,提升开发者效率
本文以某海外电商平台的架构演进实践为例,介绍大型 Ruby on Rails 代码库如何从传统单体架构逐步演进为模块化单体架构,并通过代码组织、依赖隔离和边界治理,降低系统复杂度,提升开发者效率。 某海外电商平台拥有当前规模最大的 Ruby on Rails 代码库之一。这个代码库由上千名开发者在十…
-
大规模快速发布:从主干发布到持续交付的工程实践
本文以某海外大型互联网公司的发布工程实践为例,介绍其如何通过主干发布、准连续发布、持续交付和移动端 CI/CD 体系,在大规模工程团队中提升代码交付效率、降低发布风险,并持续改善用户体验。 随着时间推移,软件行业已经形成了多种更快、更安全、更高质量地交付代码的方法。这些实践大多围绕持续集成、持续交付…
-
快速部署实践:用分布式系统方法提升开发者生产力
在微服务架构下,开发者本地环境往往需要启动大量服务,导致环境准备时间变长、调试成本上升,并直接影响开发者生产力。本文以某海外大型互联网公司的快速部署实践为例,介绍其如何通过代理、Cookie、共享集成环境和请求路由机制,让开发者只在本地部署自己修改的服务,从而提升迭代效率,并更好地支持持续集成和主干…
-
Gradle 迁移实践:某海外大型互联网公司如何将构建效率提升 4 倍
引言 在大型研发团队中,构建效率、IDE 刷新速度和本地开发体验,都会直接影响研发生产力。本文以某海外大型互联网公司的 Gradle 迁移实践为例,介绍其如何从 SBT 迁移到 Gradle,并通过构建系统优化,将大型 Play 应用的构建时间从 60 分钟降至 15 分钟,实现构建效率提升 4 倍…
-
高速代码库如何做代码合并:主干开发与 CI 验证实践
在大型研发团队中,高速代码库的代码合并既要保证效率,也要保证主干分支稳定。本文以海外某大型互联网公司的工程实践为例,介绍其如何通过主干开发、持续集成(CI)、合入前验证、合入后验证和自动回滚机制,处理高频提交场景下的代码合并问题。 海外某大型互联网公司的产品生态系统十分庞大,管理其基础设施并非易事。…
-
软件发布文化:CI/CD、合并队列与金丝雀发布实践
在现代软件研发中,发布速度、发布质量和开发者体验,直接影响团队的工程效率。本文以一家海外电商平台公司的软件发布文化为例,介绍其如何通过 CI/CD、合并队列、金丝雀发布和自动化部署,帮助开发者更安全、更高效地将代码发布到生产环境。 我们一直在探索,如何帮助开发者更顺畅地达成目标。我们希望通过工具打造…