问题:对于前后端开发分离应该怎么理解,有些什么实现方式,分不分离有些什么优缺点,适合怎样的项目,具体项目开发时如何选择分离还是不分离的形式,大家有些什么体会,还请不吝赐教~
下面是我对前后端开发分离与不分离的一点理解,不当之处麻烦告知我~
表现形式: 前端开发项目与后端开发项目分隔开,通信通过跨域请求(开发情况下常通过代理),页面路由由前端处理,所有数据均通过请求获得;
特点:
前后端开发互不影响;
前端可集中所有数据,在所有页面均可以访问到应用的数据,可避免重复请求获取相同数据;
加载完页面后需要加载数据的时间,有时会有数据延迟或加载数据失败的情况;
标志:/#/ , url中域名后有此标志
开发方式:
1)开发时分离,开发完成合并,比如:
通过vue-cli
建立的项目,前端开发完成后把生成的前端资源文件合并到后端项目(如laravel)里;
2)开发时分离,开发完成仍保持分离,比如:ionic
开发的混合APP项目
表现形式:前端项目与后端项目是同一个,页面路由由后端处理,可同时带数据返回,数据通信不需要跨域;
特点:
开发中前后端联系较紧密,会出现相互影响的情况;
后端在返回页面时同时返回了该页面所需要的数据,因此用户在访问某页面时不会出现数据延迟或获取数据失败的情况;
开发方式:laravel
的blade
模板形式
Web研发模式演变
看了下上面这篇文章,感觉有多一点理解,但还没有吃透
题主是从技术上考虑的,其实是否分离都是由业务和成本决定的。如果你有足够的前后端开发人员,并且业务还比较复杂,当然要前后端分离,专业的人做专业的事,这对需求质量和后期维护都是有益的。但是前后端分离也会增加沟通成本,你的业务前端后端都需要了解,并且还多了前后端联调测试的环节。
优点:
约定好接口以后就可以专注于自己的那部分,可以前后端并行开发,效率也能得到提升,对质量和后期维护也是很大的提升。
缺点:
沟通成本、人员成本。