前端还是后端,程序员该如何选择?

发表时间: 2020-09-24 14:10

前端开发与后端开发是程序员圈子里一个讨论了多年的话题,有些小伙伴是根据兴趣爱好选择的,有些小伙伴是根据自己的技术掌握选择的,也有些小伙伴是被忽悠的……不管怎样,只要能持续进步,发展前景都是非常好的。

先看一下前端与后端有哪些深层次的不同:

1. 交互对象不同:

  • 前端的交互对象是用户,是用户的直观感受,接收用户的输入并给予用户相应的反馈
  • 后端的交互对象是数据,一切操作都是以数据为基础,没有数据,代码将毫无用处

2. 技术侧重点不同:

  • 前端开发关注的是图形、图象、文字的展现,用户事件的响应,以及用户行为的引导等等
  • 后端开发关注的是逻辑处理、数据加工、数据存储、资源的分配等等

3. 对开发者的要求不同:

  • 前端要求开发者要有美术设计的基本能力,能充分理解用户行为,做出的设计要对用户有导向性,熟悉网络通信及数据获取等等
  • 后端则要求掌握数据库操作,高效实现服务方业务需求,接口设计,多服务协作结构设计与管理,服务器配置管理等等

4. 思考方式不同:

  • 前端要从用户的角度思考问题,在开发时多把自己作为最终用户,使设计更接近用户感受,使产品更易被用户接受等等
  • 后端则从服务的角度来思考,例如:如何接收/发送数据,如何处理数据以实现业务,如何设计更便于扩展,如何设计可以保证较高的性能等等

5. 知识体系(语言)的不同:

  • 前端:JS、HTML、CSS、Java/Kotlin、O-C/Swift及相关框架,客户端存储,设计模式。应用框架很多,大多走的是小巧的轻量化路线,一个产品通常需要引用组合多个框架
  • 后端:Java、.NET、Python、PHP及相关框架,算法,并发,设计模式,数据库设计。框架相对较少,稳定,包含对多种应用场景的支持,属于全能型框架,各厂商对流行框架均提供适配

6. 产品的发展方向不同:

  • 前端主打多平台,跨平台应用,开发者不需要花费大量精力来适配不同平台
  • 后端则逐渐向云端转移,转向微服务,开发者将回归业务逻辑的实现

虽然有着诸多的不同,前后端也不是完全隔离的,由于Nodejs的出现,让JS这个曾经的浏览器语言大放光彩,依托JS的特性及V8引擎的应用,Nodejs同样可以实现数据流及I/O操作,这也使它在后端市场占有了一席之地。虽然无法撼动Java的地位,但前端向后端的渗透已显而易见。

当程序员积累了足够的经验、知识与技巧时,前端开发者同样可以完成后端开发任务,反之亦然。我们称这些同时掌握前端和后端开发的人为全栈开发人员。其实,无论前端还是后端,编程的本质是一致的,更多的时候我们是在充实自己理论体系,并加以实践。当然,前后端都精通的人还是很少的,大多数还是专攻一端。

那么小伙伴们,你们是如何做出选择的呢?来分享一下吧。