技术文章

程序员该如何正确理解前后端分离?

在软件开发行业,“前后端分离”是个常识性问题,特别是Web开发人员对此了解得更多,无论是Web前端还是Web后端人员都是术有专攻,导致了绝大多数前端人员只会写前端代码,后端开发人员只会写后端。

那作为开发者,到底该如何看待和理解前后端分离呢?

如果前后端不分离会怎样?

最早期的网站都是由一个个静态网页组成的,但随着网站规模的变大,如果还是一份份的维护静态网页,那成本过大。我们完全可以把网站模板化,将不同(动态)的内容批量填充进去,这就是动态网站的思想。

于是诞生了很多动态Web开发语言,如:ASP、PHP、JSP等,但是这类动态Web开发语言都有一个特点:属于嵌入式语言,即动态脚本里面掺杂了 HTML、CSS、JS、动态逻辑代码等等。

程序员

这种代码模式就是典型的前后端未分离,导致的后果是:代码复杂、耦合度高、维护困难。

什么是前后端分离,前后端分离的好处是什么?

前后端分离其实不是一种技术,而是一种编码思想和风格,将业务场景划分为两大类:

  • 前端:负责控制层(Controller)和显示层(View);

  • 后端:只负责数据模型层(Model)处理业务及数据。

把前端和后端分离后好处很多,比如说:

  • 划清前端和后端开发人员的职责,术有专攻;

  • 相较于嵌入混合式开发,能提升开发效率(混合式开发存在协作成本);

  • 代码解耦,结构清晰,易于维护管理等。

前后端分离的最佳实践

现代的Web开发语言或框架99.99%的都采用了MVC等设计模式,这其实已经算是前后端分离了,但前后端分离的最佳实践应该是这样的:

  • 前端使用MVV*框架,如:Vue、Angular等;

  • 后端提供RESTful API供前端调用。

程序员