我们遇到了什么问题?
1.前端无法调试后端未完成的 API:如果后端同学还没有完成 API 开发,那么前端同学就不能对这个 API 进行开发。之前我们都是在代码里直接通过给变量赋假数据,又或者是在后端 Controller 里直接 return JSON 的方式来进行调试的。这样的方式很容易会出现的情况就是,每次提交 commit 都要把它删除掉,有时忘了没有删除掉,那么提交历史就会变得很脏。
2.没有自动化测试:前端对接口的调用没有做自动化的测试。
3.前端需要依赖后端开发环境:前端需要后端环境来在本地测试,像我们使用的方案就是 Vagrant + 虚拟机的来开发。这样的方式其实很笨重,不但每次启动虚拟机都得等一段时间,而且会占用一定的 CPU 和内存资源,拖慢机器。然而,前端需要的只是数据。
如何去解决这些问题? ——前后端分离
大部分的互联网公司都分成了前端团队和后端团队。在软件设计中,我们有一个思想就是 Separation of Concerns (Soc),也就是 关注点分离 的思想。既然我们采用了前后端由不同团队开发的模式,那么我们应该有分治的思想,也就是说,我们要尽可能更多地关注自己从事的领域。
一.为什么要前后端分离?
1.框架层面
前后端仓库的分离:
整个前端工程使用git subtree从后端Git工程中切分出来。后端应用均使用同一个前端代码库。前端只clone前端代码,启动前端工程。前端使用sever来mock数据渲染ftl模板以及页面展示
2.开发层面
前后端约定好接口,各自开发;节约时间(但联调的时间可能增加),接口有更新及时沟通

