这里说是web应用,在10多年前,程序员们会说,“我是说JSP”,“我是做ASP”,“我是做PHP的”,那个时候前端是啥?后端又是啥?
那个年代,会写程序就可以做个“淘宝”出来创业,web应用的开发远没有现在这么专业化和系统化,所以从前端到数据库当然是一个人全做完了。随着各种代码框架层出不穷,各种编程语言也层出不穷,web开发的方方面面也朝着系统化、专业化方向发展,一个人很难把某一个方面做的足够透,就出现了分工,这个和人类社会发展中的劳动分工是一个原理。
web开发,分化为前端和后端,前端慢慢涌现很多框架,如ExtJS, jQuery, AngularJS, ReactJS, 后端则专注于restfulAPI,后端逐渐向分布式方向发展,从最先的EJB,到现在的微服务。越是历史悠久的开发语言越是劳动分工越明显,Ruby on Rails、Django、YII等解释型语言的框架虽说都用了MVC的设计理念,但基本上都是一个人前端做到数据库。
前后端分离还是一个主要原因是移动互联网的兴起,出现移动端,类似于传统的C/S的架构,移动端需要手机提供数据。一个网站如果有手机端、PC web端、还有手机web端,这种情况下服务器只提供数据接口,由客户端自己决定怎么展现数据成了一个合理的解决方案。web前端的开发者也需要面对多种分辨率和不同的浏览器,同时用户对应用的操作体验更是要求越来越高,前端的工作内容更是需要专人来做。
那么现在前端和后端的发展现状如何呢?相应于后端开发技术,前端的技术迭代更快,从jQuery到ReactJS,几乎每两年都要出一个全新的占据领导者地位的框架, 还出现对Javascript 进行包装的语言如coffe