su
-
大型 iOS 应用生产力设计:构建系统、模块化架构与 Dev App 实践
技术创新与团队流程改进,如何让 iOS 开发者在庞大代码库中依然保持高效。本文以某海外短租平台的大型 iOS 应用为例,介绍其如何通过现代构建系统、模块类型设计和开发应用(Dev App),优化 Xcode 构建体验,提升 iOS 开发效率和代码库可维护性。 每一位 iOS 工程师大概都记得,第一次…
-
Ruby LSP 实践:用语言服务器提升 Ruby 与 Rails 开发者体验
Ruby LSP 是某海外电商平台开发的一款全新 Ruby 语言服务器。它可以为任何支持 LSP 客户端的编辑器提供更完善的 Ruby 功能,包括代码诊断、代码折叠、格式化、语义高亮、自动补全和 Rails 相关能力,从而进一步改善 Ruby 与 Rails 开发体验。本文将介绍 Ruby LSP …
-
大型 Rails 应用工程模式:开发环境、Pod 架构与领域驱动设计实践
本文以某海外电商平台的大型 Rails 单体应用为例,介绍其如何通过统一开发环境、Pod 架构、领域驱动设计、代码质量保障和自动化工具,支撑全球化平台稳定运行,并持续提升开发者效率和系统可维护性。 在某海外电商平台,我们沉淀出了一套自己的工程模式,用来支撑全球化平台的稳定运行。在加入这里之前,我曾开…
-
云开发平台、负载测试与模块化代码:某海外电商平台的工程实践
某海外电商平台首席技术官概述了该公司在 2022 年最重要的几项工程方向。本文将从模块化代码、云开发平台、负载测试、开发者效率和核心技术栈等角度,介绍大型电商平台如何应对高并发流量、复杂系统架构和全球化研发协作带来的挑战。 2021 年黑色星期五和网络星期一大促期间,某海外电商平台创下了平台历史上的…
-
大规模快速发布:从主干发布到持续交付的工程实践
本文以某海外大型互联网公司的发布工程实践为例,介绍其如何通过主干发布、准连续发布、持续交付和移动端 CI/CD 体系,在大规模工程团队中提升代码交付效率、降低发布风险,并持续改善用户体验。 随着时间推移,软件行业已经形成了多种更快、更安全、更高质量地交付代码的方法。这些实践大多围绕持续集成、持续交付…
-
单体架构拆解实践:从单体到模块化单体,提升开发者效率
本文以某海外电商平台的架构演进实践为例,介绍大型 Ruby on Rails 代码库如何从传统单体架构逐步演进为模块化单体架构,并通过代码组织、依赖隔离和边界治理,降低系统复杂度,提升开发者效率。 某海外电商平台拥有当前规模最大的 Ruby on Rails 代码库之一。这个代码库由上千名开发者在十…
-
遗留系统现代化:遗留系统替换模式与实施方法
项目启动阶段,团队与对原有系统有深入了解的人员举办了一场研讨会,共同可视化现有软件架构和未来软件架构。通过这场研讨会,他们发现了一个可以利用的技术接缝:原有后端系统与集成中间件之间存在基于消息的集成。 原有后端是一个老旧的企业级 Java 应用程序,它会将“发布产品”消息放入一个由旧消息队列产品提供…
-
模块化架构如何与开发团队对齐,提升软件交付效率
模块化架构能提升软件交付效率吗?答案是肯定的,但前提是不能只把它当作一项单纯的技术改造。 本文讲述了一家大型企业如何通过向模块化架构转型,缓解移动应用开发在业务增长过程中暴露出的多重问题。他们最终发现,模块化并不只是架构层面的解决方案。它的影响远远超出代码结构本身,还会延伸到业务沟通、团队组织方式以…
-
演进式数据库设计:敏捷开发中的数据库迁移、重构与持续集成
过去十多年里,我们逐步发展并完善了一套技术,使数据库设计能够随着应用程序开发持续演进。对于敏捷开发而言,这一点至关重要。演进式数据库设计的核心,是通过数据库迁移、数据库重构、版本控制和持续集成,让数据库架构能够安全、可控地随业务需求变化而变化。这些技术依赖于在数据库开发中引入持续集成和自动化重构,并…
-
《构建演进式架构》前言:理解软件架构如何持续演进
长期以来,软件行业一直有一种根深蒂固的观念:软件架构应当在第一行代码写下之前就已经设计完成。这种观念在很大程度上受到了建筑行业的影响。人们曾认为,成功的软件架构在开发过程中不应发生变化,因为一旦架构需要重构,往往意味着高昂的废弃成本和返工成本。 敏捷软件开发方法的兴起,对这种架构观念提出了挑战。预先…