直击灵魂深处的拷问:“为什么前后端分离,你比以前更痛苦”

212 阅读7分钟

一、前后端分离痛点剖析

1、你有没有遇到过:

·前端代码刚写完,后端的接口又变了。

·接口文档永远都是不对的。

·测试工作永远只能临近上线才能开始。

2、为什么前后端分离了,你比从前更痛苦?

前后端分离早已经不是新闻,当真正分离之后确遇到了更多问题。要想解决现在的痛,就要知道痛的原因:

①为什么接口会频繁变动?

·设计之初没有想好。 这需要提高需求的理解能力和接口设计能力。

·变动的成本较低。德国有句谚语:“朝汤里吐口水。”

·只有这样,才能让人们放弃那碗汤,停止不合理的行为。

前后端同学坐在一起工作的时候效率会有提升,当后端同学接口变化时,只需要口头上通知一下即可,我们没有文档,我们很敏捷啊。

没错,我们需要承认这样配合开发的效率会很高,但是频繁的变动会导致不断返工,造成了另一种浪费,这种浪费是可以被减少,甚至是被消除的。

②为什么接口文档永远都是不对的?

接口文档在定接口时起到一定作用,写完接口就没有用了。后面接口的频繁变化,文档必定会永远落后于实际接口,维护文档的带来了一定的成本却没能带来价值。除非对外提供的接口,否则文档谁来看呢?没人看,用处又在哪?

有些公司干脆丢掉接口文档,说我们要拥抱敏捷。所以接口文档落后的原因在于没有给我们带来价值。

③为什么测试工作永远只能临近上线才能开始?

一个需求,后端开发 4 天,前端开发 4 天,联调 4 天,留给测试同学只有2天时间甚至更少,测不完只能带 bug 上线。

3、现有开发流程

在开发阶段测试同学无法介入,接口在变,前端也在变, “提测” 之前只能喝茶,“提测” 之后又忙的要命。

自动化?想都别想,空有一身好本领,在 “拥抱变化” 之后只能手工测试。偶尔还要拉上前台美眉客串一下测试小妹。手工测试枯燥乏味,乏味的工作就容易出错,而且还不能快速重复,无法对测试过的功能快速回归。

4、怎么破?

解决以上问题要让接口文档发挥价值,提高变动接口的成本,测试尽早介入。

接口文档发挥出价值,就要赋予契约的意义,就如同签字画押谁也不许变,来约束我们只认契约不认人。

契约应该由前端同学来驱动,前后端共同协商。由于前端同学与 UX 接触比较紧密,更了解页面所需的数据以及整体的 User Journey,前端同学驱动会更加合理。

契约敲定之后要帮助我们生成 Mock Server,前后端同学就要依照契约各自开发。

注:

资料来源于谢小呆的《为什么前后端分离了,你比从前更痛苦?》

原文链接:my.oschina.net/xbl/blog/22…

二、前后端分离痛点如何破冰?

原作者介绍了一种工具Mock Server,来解决前后端分离所带来的问题:前端驱动契约,契约敲定后,创建Mock Server环境,前后端依照契约各自开发。接下来,小编给大家介绍另一种解决问题的方法。

首先,看下改进后的开发流程:

部署一个CEAMS通用企业应用接口管理系统(简称“CEAMS系统”)然后前端提出业务需求,后端通过系统上的规范以及工具将这个需求整理成契约,根据契约,自动生成API(Application Programming Interface,应用程序接口)文档,之后前后端依据契约相互独立开发。

传统做法是创建Mock Server环境,给前端提供API,然后通过 mock做出来的静态的伪数据,提供给前端做测试。本文介绍的方法,通过CEAMS系统来实现前后端互相独立开发,与Mock Server相似,实际上它也是一个server服务,其模块上的代码可以随意写,在后端开发还没有完成的情况下,可以在其模块上先写伪代码,然后返回符合接口契约的JSON对象,从而提供给前台使用。也就是说,只要保持接口的数据规范统一,那么前后端就可以相互独立工作,且减少彼此之间的依赖性。不过,在这之前,前端的接口规范,即契约,要前后端互相协调定下来,一旦契约定下来之后,大家就可以各自按照这个契约去做自己的事情了。这种方法不用额外去创建mock环境,简易的操作流程,大大降低前后端沟通成本,提高开发运维效率。

现在给大家介绍一下CEAMS系统的四大核心亮点:

**1、统一标准的应用接口规范。**依靠灵长科技公司自主开发的核心技术通用设备互联框架(Common Device Interconnect Framework,CDIF),实现设备、服务和数据的统一规范,实现标准统一的调用接口。从这个规范出发,使用CEAMS系统上的工具,可以完美地解决经常改接口的问题。

**2、API文档自动化。**自动生成的文档里包含了完整的应用里所有的API,以及API上传输的数据的类型定义,他比传统人工手写的文档更严谨清晰,对于JSON数据里每个字段的类型定义,他的取值范围或者正则表达式等等都有清晰的定义,而且是保证不会出错的。这样也避免了人工手写的API文档在更新过程中因为编辑错误导致的接口联调错误问题和沟通成本。

**3、自动化测试工具。**接口测试工具界面也自动根据规范参数生成。用生成的测试表单,可以一键导入测试数据,实现全自动的API伪数据测试,无需人工干预。

**4、云端一体化的集成开发环境。**集成自动化开发环境,平台的开发者门户,开发人员无需下载安装配置任何开发环境,登陆浏览器,即可以随时随地在线开发,可以大大的提高开发者对应用的开发和运维管理工作效率。

三、CEAMS系统开发流程简介

下面简单介绍一下CEAMS系统上的应用基本开发流程。开发一个API应用主要需要以下五步:

·填写应用的基本信息,包括应用的名称、制造厂商、应用简单说明等; ·填写应用中各个服务和API的名称; ·使用系统提供的JSON schema可视化编辑器在线编辑API里各个数据字段的规范; ·系统会从前面步骤里得到的API规范为应用自动生成框架代码,用户只需要打开在线开发环境,在线编辑,开发和调试应用的代码; ·应用开发调试完成后,就可以从系统里一键部署和升级应用。接下来就可以重复迭代这个过程,在线编辑开发和升级应用并且一键部署生效。整个开发过程不需要和HTTP接口打任何交道,这些都已经由我们的系统自动帮助完成。

想了解更多信息,可以点击下方链接:

官方网站:灵长科技​www.apemesh.com

官方邮箱:mailto:sales@apemesh.com

扫码下载软件试用:

(完)

今天的分享就到这里了,感谢各位读者的阅读。如您对小编分享的文章感兴趣,您可以在文章下方点赞、分享或收藏;还可以通过搜索关注知乎专栏《微服务应用开发和API管理》,或者扫描下方二维码关注灵长科技官方公众号,点击关注,获取最新更新动态。

未经同意,本文禁止转载或摘编。