infoq 前端(一文看懂前端和后端开发)
作为一名开发者,你可能会想:2019 年最好的软件开发技术和编程语言会是什么?它们又是如何被应用在软件开发当中的?如果你在思考这个问题,那就来对地方了。这篇文章将对前端和后端开发技术做一个对比,先从基本的开始,然后逐步比较它们的不同点,比如对开发技能的要求、发展潜力、职业生涯的发展和薪水,等等。
1、什么是前端开发?
前端开发主要涉及网站和 App,用户能够从 App 屏幕或浏览器上看到东西。简单地说,能够从 App 屏幕和浏览器上看到的东西都属于前端。
网站和移动 App 的前端
我们就以你现在正在浏览的网页为例。网页上的内容、图片、段落之间的空隙、左上角的图标、右下角的通知按钮,所有这些东西都属于前端。
移动 App 的前端和网站是一样的。例如,你所看到的内容、按钮、图片,它们都属于前端。另外,因为移动设备的屏幕是可以触摸的,所以应用程序对各种触控手势(比如放大 / 缩小、双击、滑动等)做出的响应也属于前端,它们是前端的活动部分。
这些东西是由前端开发者开发出来的,他们使用了 Ionic 、 Swift 、 Kotlin 、 Bootstrap 、 Angular 、Vue 、 jQuery 、 React.js 等开发技术。后面我们会更多地介绍这些开发技术。
物联网的前端
任何可以连接到互联网的设备都是物联网设备。你可能会好奇物联网设备的前端会是什么样的。任何一种智能设备,比如智能冰箱、远程 POS 机、智能手表、智能钱包,它们都需要提供某种界面,这样用户才能操作这些设备。所以,这种界面就是一种交互媒介,组成这种界面的元素就是物联网的前端。
但严格来说,物联网设备并没有真正的前端。不过它们都装有固件,与移动 App 的前端类似。这些固件可以用各种编程语言来开发,比如 C 语言、 C++ 、 Lua 、 Python 或 JavaScript 。
2、什么是后端开发?
后端开发即“服务器端”开发,主要涉及软件系统“后端”的东西。比如,用于托管网站和 App 数据的服务器、放置在后端服务器与浏览器及 App 之间的中间件,它们都属于后端。简单地说,那些你在屏幕上看不到但又被用来为前端提供支持的东西就是后端。
网站和移动 App 的后端
网站的后端涉及搭建服务器、保存和获取数据,以及用于连接前端的接口。如果说前端开发者关心的是网站外观,那么后端开发者关心的是如何通过代码、API 和数据库集成来提升网站的速度、性能和响应性。
与前端类似,移动 App 的后端与网站后端是一样的。为移动 App 搭建后端有这些选择:云平台(AWS、Firebase)、自己的服务器或 MBaaS(移动后端即服务,Mobile Backend as a Service)。
后端开发使用 Ruby 、 Apache 、 Nginx 、 PHP 、 MySQL 、 MongoDB 等技术。后面我们会更多地介绍这些开发技术。
物联网的后端
云平台是物联网后端的一个重要组件。有证据表明,大部分物联网设备极度依赖云服务器,它们通过服务器上传、处理和下载数据。
高端物联网解决方案的后端甚至涉及人工智能和机器学习。
物联网项目的后端平台包括 Amazon IoT、Google Cloud、MQTT Broker、IFTTT,等等。
3、那么前端和后端的区别有哪些?
前端和后端的技术栈比较
4、前端和后端开发者,哪个更好?
做前端开发还是后端开发,除了技术方面的东西,还要看什么对你来说更为重要。
如果美学和产品感觉方面的东西对你来说更重要,那么你可能会倾向于选择前端技术。如果你关注的是提高网站、应用程序或软件的效率和响应性,那么你的目标可能会是后端开发。
前端设计师所做的很大一部分工作是让用户在移动或 PC 屏幕上看到的东西看起来很棒,而且很容易使用。相反,后端开发人员只关心如何编写干净的代码。
如果你要基于上面所说的内容在前端和后端之间判定其中一个比另一个好,那么这本身就是一个错误的假设。实际上,它们都是不可替代的,在构建网站或应用程序时,它们是同等重要的。
有些人具备视觉方面的天赋,而其他人擅长通过逻辑和技术来解决问题。苹果之所以成为今天的样子,要归功于 Steve Jobs(前端的梦想家) 和 Steve Wozniak(后端天才)。
5、前端和后端开发者
现在, 你已经对前端和后端开发有了很好的了解,接下来是时候更多地了前端和后端开发者了。下面简要介绍了前端和后端开发者的职位、技能和职责。
通过这些要点,你可以全面了解后端和前端开发者的技能。
前端和后端开发者的职位头衔
开发者有很多工作机会,根据具体的专业知识、经验和兴趣,你可以申请以下这些后端或前端开发职位。
前端:
- 前端开发工程师;
- 前端 Web 设计师;
- Android 开发工程师;
- iOS 开发工程师;
- 前端 DevOps 工程师;
- 前端 JavaScript 开发工程师;
- 前端 UI 工程师;
- HTML/CSS 开发工程师;
- 前端测试工程师;
- 前端 SEO 专家。
后端:
- 后端开发工程师;
- 初级后端开发工程师;
- Web 开发工程师;
- DevOps 工程师;
- 软件工程师;
- WordPress 开发工程师;
- 云计算工程师;
- REST 专家;
- 服务器 / 系统管理员;
- 数据库架构师;
- Java 开发工程师;
- Python 开发工程师;
- PHP 开发工程师。
前端和后端开发者的技能要求
不同职位和级别所要求的技能是不一样的,但不管怎样,要成为前端或者后端开发者绝对需要掌握一定的技能。
前端和后端开发者的角色和职责
前端和后端开发者的角色和职责是什么?在申请工作或招聘前端或后端开发者之前,请确保了解以下这些内容。
前端和后端开发者的薪水比较
前端开发者:
以上数据来自 PayScale
以上数据来自 Glassdoor
后端开发者:
以上数据来自 PayScale
以上数据来自 Glassdoor
6、什么是全栈开发?
有些人可以同时从事前端和后端开发,他们被称为全栈开发者。
成为全栈开发者或者招聘全栈开发者既有优点也有缺点。虽然开发者数量可以减少到原来的一半,但他们的水平也相应降低了。专门从事前端或后端开发的开发者对单个领域的了解总是多于同时了解这两个领域的开发者。
与全栈类似的技术开发栈还有很多,比如 MEAN 栈、LAMP 栈、.NET 栈、Python-Django 栈、ROR 栈,等等。开发者可以自由选择成为这些技术栈的专家。