这里说是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 进行包装的语言如coffeescript、 Typescript,来解决Javascript的先天缺陷。后端技术迭代相对慢一些,Java开发中的Spring、Hibernate,Python开发的中Django,经过这么多年也依然流行。另一方面,后端在开发语言方向却是大放异彩,出现了很多应用于web开发的语言,如golang, scala, nodejs,ruby,erlang等,有些可能是棺材里翻出来的,又复活了。

选择前端还是后端,主要还是看自己的看好以及自己的职业规划,前端开发所见即所得、技迭代快,适合年轻人和喜欢形象思维的人。后端开发产出的成果是API接口,相对抽象,适合抽象思维强、逻辑思维缜密的人来做。如果你现在做着前端或后端,学习一下另一端的开发,对你来说没有害处只有好处,但是要不要完全转型,要慎重决定,一门语言上的开发经验积累是比较难得的,转型意味着重头开始,把精力专注于当前的开发语言或框架才是最重要的。

欢迎关注作者微信公众号:

更多推荐

初为码农该做web前端还是服务器?做了几年开发,老板让转前端(或后端)?