面向接口开发的前后端跨团队合作方案

本文涉及的产品
云原生 API 网关,700元额度,多规格可选
简介: 大中型产品研发中,由于参与人员过多的原因,手机应用程序、后端服务研发通常会拆分开,由不同的团队负责。这即促进了专业领域的聚焦,又减少了团队管理与沟通的复杂度。本文旨在提供面向接口开发的前后端跨团队合作方案,从管理和技术两个角度,尝试构建有序的合作模式。

1.问题描述

1.1 背景

大中型产品研发中,由于参与人员过多的原因,手机应用程序、后端服务研发通常会拆分开,由不同的团队负责。这即促进了专业领域的聚焦,又减少了团队管理与沟通的复杂度。

1.2 现象

好现象

  • 内部沟通效率得到提升:手机应用程序、后端服务研发团队内部讨论、传递的信息都是和绝大数人有关的信息;沟通网络效应造成沟通负担得到遏制。
  • 大部分人聚焦内部,少数人做边界沟通,缓解沟通能力的要求。
  • 各自内部迭代速度加速。

坏现象

  • 组织墙阻隔了团队间集体感。
  • 由于缺乏跨组织交流,对合作团队工作认同感降低。
  • 前后端联调滞后,导致项目中后期问题激增,团队氛围恶化,项目延期。

1.3 影响

  • 产品发布节奏放缓。
  • 产品研发成本增加。
  • 技术方案倾向于团队折中、妥协,而非基于产品发展。

2.主因分析

核心原因在沟通阻力增加和利益不一致。

原因 1:沟通阻力增加

  • 术业有专攻,且缺少天天耳濡目染,对跨组织的工作越来越不理解。
  • 因物理和心理两个维度上距离增加,导致小问题得不到及时暴露和解决。如接口的定义、参数的设计、业务逻辑的真正讨论,被延期到集成阶段。
  • 工作排期聚焦内部,对于彼此协调、依赖的事项关注不足。

原因 2:利益不一致

  • 独立 KPI 考核
  • 独立研发计划
  • 前端应用面临海量客户的压力,后端面临多个前端应用需求的压力

3.项目治理方案

  • 建立持续交付的工作模式,以持续交付用户价值为共同目标。
  • 建立跨组织的产品级路线图。
  • 建立以产品经理和系统架构师为核心的跨组织领导体系,拥有决策权和评价权。
  • 后端服务团队的接口人以虚拟角色形式,参与到前端团队的研发管理,包括日会、技术会。
  • 建立面向接口的开发模式。
  • 定期组织跨组织的团队建设活动。

4.实施方案

4.1 组建阶段

  • 明确授权产品经理、产品级架构师
  • 统一研发基础设施,包括接口设计与发布流程
  • 统一沟通工具,制定沟通计划
  • 统一迭代节奏

4.2 实施阶段

  • 保持后端团队代表的有效参与前端团队,需产品经理、架构师监督。
  • 保持按节奏持续发布至测试环境,包括前端、后端,让问题在有限时间内得到暴露和解决

4.3 接口开发技术

方案一:基于 Swagger

基于接口设计、描述框架 Swaggerhttps://swagger.io/),构建基于接口的研发流程。

  • 后端服务即 API 文档,前端团队清晰了解接口能力,利于持续集成。
  • 后端持续发布接口能力,简化 API 文档维护成本。
  • 需要前后端团队遵循开发流程,提高项目的整体效率,而非单次沟通效率。

Swagger - Simplify API development for users, teams, and enterprises with the Swagger open source and professional toolset. Find out how Swagger can help you design and document your APIs at scale.
by https://swagger.io/

(1)接口设计阶段

针对业务需求清晰的接口,即通过规划的接口,启动基于Swagger的接口设计。

  • 侧重基于真实服务代码描述接口设计
  • 不做功能的有效实现
  • 将设计通过的接口,发布到测试环境,供前端团队查阅和开发联调

接口设计规范:OpenAPI Specification

https://swagger.io/resources/open-api/

接口设计工具:Swagger Editor

Design, describe, and document your API on the first open source editor fully dedicated to OpenAPI-based APIs. The Swagger Editor is great for quickly getting started with the OpenAPI (formerly known as the Swagger Specification) specification, with support for Swagger 2.0 and OpenAPI 3.0.

https://editor.swagger.io/

  • 使用Yaml语言, 定义好API接口
  • 点击 generate server code, 选择需要的语言, 即可下载自动生成的相关接口的初始化项目
  • 点击 generate client code, 选择需要的语言, 即可以下载自动生成调用这个接口的客户端代码

接口定义查看工具:Swagger UI

Swagger UI 可以将项目接口自动生产具有交互的html页面, 是一个前端页面的自动生成项目. Swagger UI的 demo见: swagger ui demo

(2)接口实现阶段

按节奏逐渐实现接口的能力。

  • 对于已实现的能力,要清晰描述能力
  • 对于在在研的能力,要描述清晰状态

后端服务工程引入swagger的依赖

<dependency> 
  <groupId>io.springfox</groupId
  <artifactId>springfox-swagger2</artifactId
  <version>2.7.0</version> 
</dependency> 
<dependency> 
  <groupId>io.springfox</groupId
  <artifactId>springfox-swagger-ui</artifactId
  <version>2.7.0</version> 
</dependency>

生成API的server stub和client SDK

Swagger Codegen can simplify your build process by generating server stubs and client SDKs for any API, defined with the OpenAPI (formerly known as Swagger) specification, so your team can focus better on your API’s implementation and adoption.

(3)接口设计变更

后端人员无需关注Swagger描述文件和接口文档,有需求变更导致接口变化,直接写代码就好了。把调用层的代码做个修改,然后生成新的描述文件和接口文档后,给到前端即可。

方案二:基于阿里云 API 网关

https://www.aliyun.com/product/apigateway

API 网关(API Gateway),提供API托管服务,涵盖API发布、管理、运维、售卖的全生命周期管理。辅助用户简单、快速、低成本、低风险的实现微服务聚合、前后端分离、系统集成,向合作伙伴、开发者开放功能和数据。https://www.aliyun.com/product/apigateway

  • 提供防攻击、防重放、请求加密、身份认证、权限管理、流量控制等多重手段保证 API 安全,降低 API 开放风险。
  • 提供 API 定义、测试、发布、下线等全生命周期管理,并生成 SDK、API 说明文档,提升 API 管理、迭代的效率。
  • 提供便捷的监控、报警、分析、API 市场等运维、运营工具,降低 API 运营、维护成本。

API 网关功能
  • API 生命周期管理

    • 支持包括 API 发布、API 测试、API 下线等生命周期管理功能。
    • 支持 API 日常管理、API 版本管理、API 快速回滚等维护功能。
  • 全面的安全防护

    • 支持多种认证方式,支持 HMAC (SHA-1,SHA-256) 算法签名。
    • 支持 HTTPS 协议,支持 SSL 加密。
    • 防攻击、防注入、请求防重放、请求防篡改。
  • 灵活的权限控制

    • 用户以 APP 作为请求 API 的身份,网关支持针对 APP 的权限控制。
    • 只有已经获得授权的 APP 才能请求相应的 API。
    • API 提供者可以将调用某个API 的权限主动授予给某个APP。
    • 若 API上架到 API 市场,购买者可以将已购买的 API 授权给自己的 APP。
  • 精准的流量控制

    • 流量控制可以用于管控 API的被访问频率、APP的请求频率、用户的请求频率。
    • 流量控制的时间单位可以是分钟、小时、天。
    • 支持流控例外,允许设置特殊的 APP 或者用户。
  • 请求校验

    • 支持参数类型、参数值(范围、枚举、正则)校验,无效校验会被 API 网关直接拒绝,以减少无效请求对后端造成的资源浪费,大幅降低后端服务的处理成本。
  • 数据转换:通过配置映射规则,实现前、后端数据翻译。

    • 支持前端请求的数据转换。
    • 支持返回结果的数据转换。
  • 监控报警

    • 提供可视化的API实时监控,包括:调用量、流量大小、响应时间、错误率,在陆续增加维度。
    • 支持历史情况查询,以便统筹分析。
    • 可配置预警方式(短信、Email),订阅预警信息,以便实时掌握API运行情况。
  • 自动工具

    • 自动生成 API 文档,可供在线查看。
    • API 网关提供多种语言 SDK 的示例。降低 API 的运维成本。
    • 提供可视化的界面调试工具,快速测试,快速上线。
目录
相关文章
|
4月前
|
前端开发 JavaScript
构建前端防腐策略问题之后端配合前端进行GraphQL改造变得不太现实的问题如何解决
构建前端防腐策略问题之后端配合前端进行GraphQL改造变得不太现实的问题如何解决
|
4月前
|
存储 监控 安全
构建现代后端系统:架构与实践
【8月更文挑战第12天】本文旨在探讨构建现代后端系统时需考虑的架构和实践问题。我们将通过分析现代后端系统的核心组件、设计原则、以及如何应对可扩展性、安全性、性能等挑战,提供一个全面的视角。文章不包含代码示例,而是侧重于理论与策略层面的讨论,以期为后端开发人员提供有价值的参考和指导。
|
5月前
业务系统架构实践问题之实现平台集中复用和业务自主灵动的方式问题如何解决
业务系统架构实践问题之实现平台集中复用和业务自主灵动的方式问题如何解决
|
5月前
|
缓存 Devops 微服务
微服务01好处,随着代码越多耦合度越多,升级维护困难,微服务技术栈,异步通信技术,缓存技术,DevOps技术,搜索技术,单体架构,分布式架构将业务功能进行拆分,部署时费劲,集连失败如何解决
微服务01好处,随着代码越多耦合度越多,升级维护困难,微服务技术栈,异步通信技术,缓存技术,DevOps技术,搜索技术,单体架构,分布式架构将业务功能进行拆分,部署时费劲,集连失败如何解决
|
7月前
|
前端开发
第8期 volta保证团队开发环境的完全统一
第8期 volta保证团队开发环境的完全统一
54 0
|
区块链
关于DEFI模式系统详细方案技术开发逻辑讲解方案
关于DEFI模式系统详细方案技术开发逻辑讲解方案
|
7月前
|
前端开发 NoSQL 测试技术
Crossbar 后端开发调试混乱解决方案
Crossbar 后端开发调试混乱解决方案
61 0
|
域名解析 缓存 负载均衡
梳理日常开发涉及的负载均衡
负载均衡是当前分布式微服务时代最能提及的词之一,出于对分层、解耦、弱依赖、可配置、可靠性等概念的解读,一对一的模式变得不再可信赖,千变万化的网络环境中,冗余和备份显得格外重要
168 0
|
存储 机器学习/深度学习 Kubernetes
前端设计走查平台实践(后端篇)
设计师在进行走查的过程中,肉眼的比对偶尔会忽略一些细微部分,同时也会耗费设计师大量的精力,为了辅助设计同学能够更高效的进行设计走查,本文旨在通过设计走查平台在后端侧的实践总结下对于视觉稿还原程度比对的一些思路。
129 0
|
前端开发 数据库 数据安全/隐私保护
【平台开发】— 5.后端:代码分层
【平台开发】— 5.后端:代码分层
【平台开发】— 5.后端:代码分层

热门文章

最新文章