前后端分离之MockServer 接口的构建

2016-09-12  本文已影响93人  cbd0bfba9942

---------------------常见的问题---------------------

1、前端无法调试后端未完成的 API:如果后端同学还没有完成 API 开发,那么前端同学就不能对这个 API 进行开发。之前我们都是在代码里直接通过给变量赋假数据,又或者是在后端 Controller 里直接 return JSON 的方式来进行调试的。这样的方式很容易会出现的情况就是,每次提交 commit 都要把它删除掉,有时忘了没有删除掉,那么提交历史就会变得很脏。

2、没有自动化测试:前端对接口的调用没有做自动化的测试。

3、前端需要依赖后端开发环境:前端需要后端环境来在本地测试,像我们使用的方案就是 Vagrant + 虚拟机的来开发。这样的方式其实很笨重,不但每次启动虚拟机都得等一段时间,而且会占用一定的 CPU 和内存资源,拖慢机器。然而,前端需要的只是数据。

---------------------什么我们要前后端分离---------------------
虽然 Facebook 提出了以 功能 划分而不是以 前后端 划分的 全栈式 协作模式,但全栈工程师数量之少、培训成本之高,导致了这种模式并不适合于所有的公司,尤其是我们这种创业公司。
于是很自然地,大部分的互联网公司都分成了前端团队和后端团队。在软件设计中,我们有一个思想就是 Separation of Concerns (Soc) ,也就是 分治 的思想。既然我们采用了前后端由不同团队开发的模式,那么我们应该有 分治 的思想,也就是说,我们要尽可能更多地关注自己从事的领域。
---------------------如何做前后端分离---------------------
今天提供一种我们目前在使用的一种方案,构建 Mock Server。
Mock Server 的概念非常简单,就是在开发环境构建一个模拟的服务器,然后构建假数据(Mock Data),再利用构建的假数据来进行开发。

它的好处非常多:

灵活性高:它小到可以只拦截一个 HTTP 请求,对某一个 API 进行调试;大到前端可以完全使用 Mock Server 进行开发,在本地完全不需要跑后端服务器。所以它可以以非常平滑柔和的方式融入到前端项目的开发当中。
构建简单:我们甚至只需要通过 Fiddler 或者 Charles 等抓包拦截软件,就可以完成一个 Mock Server 的构建。
能自动生成 API:由于数据和接口都是确定的,所以我们可以利用它来创建 API 文档,便于前后端开发。
能为自动化测试铺路:同样是由于数据和接口都是确定的,所以我们还可以利用它来做单元测试。
从改造成本(包括技术难度和时间)、改造平滑度、获得的回报方面来考虑,最后决定使用构建 Mock Server 。

---------------------如何对我们的项目进行改造---------------------

Created with Raphaël 2.1.2 请求拦截(实现 API 调试) 页面渲染(实现带有数据的页面调试) 结合模板引擎的页面渲染 构建整站的 Mock Data,生成完整的 API 文档 View 层分离,前端完全脱离后端开发,进入 Mock-based 式开发 开始构建自动化测试系统

接下来,我会根据我们 Mock Server 工程推动的进度,对每一阶段都会进行详细描述。通过这一步一步循序渐进的改造,我们最终可以实现低成本、高回报的前后端分离工程。

---------------------如何快速创建Mock Server---------------------

传送门在这里:https://github.com/vfaronov/turq

上一篇下一篇

猜你喜欢

热点阅读