-
微服务 API 测试实践:海外某民宿平台如何构建模式驱动测试基础设施
本文是“扩展服务开发”系列文章的第四篇,将深入探讨如何为微服务开发构建一套基于模式的 API 测试基础设施。文章将围绕静态 API 模式验证、API 数据工厂、API 模拟框架、API 集成测试框架(AIT)以及 API 测试覆盖率等关键内容展开。 引言 在本系列的第一篇、第二篇和第三篇文章中,我们…
-
大型 iOS 应用生产力设计:构建系统、模块化架构与 Dev App 实践
技术创新与团队流程改进,如何让 iOS 开发者在庞大代码库中依然保持高效。本文以某海外短租平台的大型 iOS 应用为例,介绍其如何通过现代构建系统、模块类型设计和开发应用(Dev App),优化 Xcode 构建体验,提升 iOS 开发效率和代码库可维护性。 每一位 iOS 工程师大概都记得,第一次…
-
大型 Rails 应用工程模式:开发环境、Pod 架构与领域驱动设计实践
本文以某海外电商平台的大型 Rails 单体应用为例,介绍其如何通过统一开发环境、Pod 架构、领域驱动设计、代码质量保障和自动化工具,支撑全球化平台稳定运行,并持续提升开发者效率和系统可维护性。 在某海外电商平台,我们沉淀出了一套自己的工程模式,用来支撑全球化平台的稳定运行。在加入这里之前,我曾开…
-
大规模快速发布:从主干发布到持续交付的工程实践
本文以某海外大型互联网公司的发布工程实践为例,介绍其如何通过主干发布、准连续发布、持续交付和移动端 CI/CD 体系,在大规模工程团队中提升代码交付效率、降低发布风险,并持续改善用户体验。 随着时间推移,软件行业已经形成了多种更快、更安全、更高质量地交付代码的方法。这些实践大多围绕持续集成、持续交付…
-
遗留系统现代化:遗留系统替换模式与实施方法
项目启动阶段,团队与对原有系统有深入了解的人员举办了一场研讨会,共同可视化现有软件架构和未来软件架构。通过这场研讨会,他们发现了一个可以利用的技术接缝:原有后端系统与集成中间件之间存在基于消息的集成。 原有后端是一个老旧的企业级 Java 应用程序,它会将“发布产品”消息放入一个由旧消息队列产品提供…
-
模块化架构如何与开发团队对齐,提升软件交付效率
模块化架构能提升软件交付效率吗?答案是肯定的,但前提是不能只把它当作一项单纯的技术改造。 本文讲述了一家大型企业如何通过向模块化架构转型,缓解移动应用开发在业务增长过程中暴露出的多重问题。他们最终发现,模块化并不只是架构层面的解决方案。它的影响远远超出代码结构本身,还会延伸到业务沟通、团队组织方式以…
-
《构建演进式架构》前言:理解软件架构如何持续演进
长期以来,软件行业一直有一种根深蒂固的观念:软件架构应当在第一行代码写下之前就已经设计完成。这种观念在很大程度上受到了建筑行业的影响。人们曾认为,成功的软件架构在开发过程中不应发生变化,因为一旦架构需要重构,往往意味着高昂的废弃成本和返工成本。 敏捷软件开发方法的兴起,对这种架构观念提出了挑战。预先…
-
优秀的开发者平台如何提升开发者体验与数字产品质量
在开发者工具和平台工程领域,从“项目思维”转向“产品思维”,是一种值得肯定的变化。优秀的开发者平台不仅能改善开发者体验,还能帮助企业提升软件交付效率,打造更高质量的数字产品。如今,招聘并留住人才——无论是技术人才,还是其他类型的人才——已经成为企业面临的核心挑战之一。因此,更加重视内部用户的真实需求…
-
《敏捷开发艺术》序:重新理解真正的敏捷开发
当我们撰写《敏捷软件开发宣言》时,支持者还只是少数怀抱理想、试图改变软件开发行业的实践者。二十年后的今天,“敏捷”已经成为主流。但我之所以给“敏捷”加上引号,是有原因的:许多人声称自己正在进行敏捷软件开发,而且大多数人也确实真心相信自己做到了这一点;然而,他们的实际做法,与我们二十年前共同提出的敏捷…
-
敏捷流畅度模型:理解敏捷团队成长的四个阶段
敏捷方法已经成为主流,但很多组织在推行敏捷后,并没有获得预期中的效率提升、交付改善或业务价值增长。问题往往不在于“是否采用了敏捷”,而在于团队处于怎样的敏捷流畅度阶段,以及组织是否为相应阶段提供了足够支持。 敏捷流畅度模型正是为回答这一问题而提出的。它帮助组织理解敏捷团队如何成长,以及如何最大化敏捷…