做者:Paresh Sagarphp
翻译:疯狂的技术宅前端
原文:www.excellentwebworld.com/backend-vs-…web
未经许可严禁转载算法
若是你是一位有志于全面了解先后端编程语言及框架的开发人员或创业者,那你来对地方了。本文将帮助你了解前端和后端技术之间的基本差别。mongodb
因此本文将想你阐述他们的技术栈,为何咱们须要构建移动应用、网站或物联网应用开发解决方案。数据库
最重要的是,怎样经过先后端编程语言和框架之间的完美协做来实现完整的解决方案**。**编程
Stack Overflow 进行了 2019 年的开发人员调查,其中有超过 81,000 名来自世界各地的开发人员参与了此项调查。如下是全球开发人员中最流行的15种编程语言:后端
你必定在想,2019 年最好的软件开发技能、技术和语言是什么,以及它们如何适应软件开发方案?前端工程化
这就是你将要在本文中学到的东西。浏览器
因此,让咱们从基础开始,逐步分析他们的差别、技能要求、发展潜力,以及前端和后端开发人员的职业前景和薪水。
前端,也称为“客户端开发”,简单来讲,你能够在应用程序或网站的屏幕上看到的全部内容都属于前端。
让咱们考虑一个现实的例子:你正在访问的网站。内容设计、图像、段落和线条之间的间距,左上角的公司徽标,以及右下角的小通知按钮——全部这一切都是前端。
移动应用的前端与网站相同。例如,你在移动或 Web 应用中看到的内容,按钮、图像是前端的一部分。此外移动屏幕还具备触摸响应功能,所以当应用响应你所作的全部手势时,须要进行缩放放大/缩小、双击、滑动等操做。
前端开发人员构建全部的这些。它们创造了你在屏幕上看到的外观和触摸到的体验。
Ionic,Swift,Kotlin,Bootstrap,Angular,Vue,jQuery,React.js 是用于前端开发的一些工具和技术。咱们将在文中进一步讨论这些技术栈。
链接到互联网的任何对象都是IoT(物联网)设备。你可能在想物联网设备的前端如何工做?任何智能设备,如智能冰箱、远程 PoS 系统、智能手表、智能钱包,都须要用户能够与之交互以操做设备的“东西”。所以,“某物”是一种互动媒介,其元素就是物联网的前端。
物联网设备没有前端的说法,但设备包含一个固件,其行为相似于移动应用程序中的前端。此外该固件能够用C、C++、Lua、Python 和 JavaScript 等语言编写。
另外还有物联网设备的 UI/UX 设计和实现。
81,000 名受访开发者中最受欢迎的框架:
后端,也称为“服务器端开发”,也就是在系统“后面”所发生的事情。一样,在后端服务器和浏览器或应用程序之间存储网站、应用数据和中间媒介的服务器都属于后端。简单来讲,在应用程序或网站的屏幕上看不到的全部东西都是前端的后端。
网站的后端须要设置服务器,存储和检索数据,以及将这些服务器与前端进行链接的接口。若是说前端开发人员梗关注网站的外观,后端开发人员则更更关注网站的速度、性能和响应能力,后端经过编码、云 API 和数据库进行集成。
就像前端同样,移动应用的后端开发在各个方面都与网站后端相同。此外,你为移动应用设置后端服务器的选项包括:云计算(AWS,Firebase)定制服务器或 MBaaS(移动后端即服务)。
Ruby,Apache,Nginx,PHP,MySQL,MongoDB 等用于后端开发的工具和技术不多。咱们将在文中进一步讨论这些技术栈。
物联网后端最重要的组成部分之一是云后端。显然大多数物联网设备都依赖云服务器对数据进行上传和下载,并将其处理为动做。
若是咱们谈论高级物联网解决方案,后端开发能够扩大到 AI(人工智能)和 ML 等功能(机器学习)。
用于物联网项目的后端技术是Amazon IoT,Google Cloud,MQTT Broker,IFTTT等等。
前端 | 后端 | |
---|---|---|
专业知识 | 前端 Web 开发人员须要精通 HTML,CSS 和 JavaScript。 | 后端开发人员应该拥有数据库,服务器,API 等技能 |
职位描述 | 前端开发人员团队设计网站的外观,并经过测试不断修改。 | 后端开发人员团队开发软件,并构建支持前端的数据库架构。 |
独立开发服务 | 除非网站是一个简单工做的静态网站,不然不能单独提供前端服务。 | 后端服务能够做为 BaaS(后端即服务)独立提供。 |
项目目标 | 前端开发人员的目标是确保全部用户均可以访问该网站或应用,并在全部视图中作出响应 —— 移动和桌面。 | 后端开发人员的目标是围绕前端构建程序,并提供所需的全部支持,并确保站点或应用始终正常运行。 |
前端 | 后端 | |
---|---|---|
编程语言 | HTML,CSS,JavaScript | PHP,Python,SQL,Java,Ruby,.NET,Perl |
框架 | Angular.JS,React.JS,Backbone.JS,Vue.JS,Sass,Ember.JS,NPM | Laravel,CakePHP,Express,CodeIgniter,Ruby on Rails,Pylon,ASP.NET |
数据库 | Local Storage, Core Data, SQLite, Cookies, Sessions | MySQL,Casandra,Postgre SQL,MongoDB,Oracle,Sybase,SQL Server |
服务器 | - | Ubuntu,Apache,Nginx,Linux,Windows |
其余 | AJAX,AMP,Atom,Babel,BEM,Blaze,Bourbon,Broccoli,Dojo,Flux,GraphQL,Gulp,Polymer,Socket.IO,Sublime Text | - |
如下是世界上最流行的编程语言:
除了所涉及的技术以外,你对前端与后端开发人员的选择取决于开发人员最重要的因素。
若是对美学和产品的感受对你来讲相当重要,那么你会倾向于将前端技术做为职业和专业。另外一方面,若是你关注提升网站、应用程序或软件的效率和响应能力,那么你的方向就应该是后端开发。
前端设计师所作的很大一部分工做就是让用户在移动设备或 PC 屏幕上看到的东西看起来都很棒并且易于使用。相反,后端开发人员惟一关注的美学是编写干净的代码。
若是你开始认为在前端 Vs 后端 中,二者中任何一个基于咱们上面谈到的内容都优于另外一个,那么这是一个错误的假设。这两个学科很是独特,对于构建网站或应用程序一样重要。
只是有些人对视觉方面有天赋,而有些人则对逻辑和技术问题解决的很好。因为史蒂夫·乔布斯(前端幻想家)以及史蒂夫·沃兹尼亚克(后端天才),苹果成为了它的样子。
如今你对前端和后端开发有了一个很好的认识。如今须要了解更多有关软件开发人员的信息。下面咱们提到了前端和后端开发人员职位、技能和职责的简要描述。
经过如下这些要点,充分了解后端和前端开发人员的能力。
做为开发人员有不少工做机会。根据你的专业知识、经验和兴趣领域,能够申请如下职位。
前端职位名称:
前端开发人员
前端 Web 设计师
Android 开发人员
iOS 开发人员
前端 Dev. Ops
前端 JavaScript 应用开发人员
前端 UI 开发人员
HTML / CSS 开发人员
前端测试 / QA
前端 SEO 专家
后端职位名称:
后端开发人员
初级后端工程师
Web开发人员
DevOps
软件工程师
WordPress 开发人员
云开发人员
REST API 专家
服务器/系统管理员
数据库设计师 / 架构师
Java 开发人员
Python 开发人员
PHP 开发人员
下图显示了 81,000 名认为本身属于那种开发人员的百分比。
所需的高级技能,实际中会根据经验和职称进行更改。可是成为前端或后端开发人员绝对须要。
前端开发所需的技能 | 后端开发所需的技能 |
---|---|
对美学,艺术和设计有很好的理解 | 全面了解第三方附加组件 |
了解各类 CMS,如 WordPress,Joomla 或 Drupal | 关于如何调试代码的批判性理解 |
直观的用户需求 | 将客户的业务需求转换为功能代码 |
PHP 和 OOP 知识(面向对象编程) | 了解 Web 服务器配置 |
专业的质量保证 | 兼容外部系统(支付处理,社交媒体网站) |
可以使用 PhotoShop,Sketch 或 Figma 等设计工具 | 批判性思惟技巧 |
网络托管基础知识 | 设计用户交互系统 |
前端和后端开发人员的角色和职责是什么?在申请工做或雇用前端或后端开发以前,请务必仔细检查这些内容。
前端开发人员的角色和职责 | 后端开发人员的角色和职责 |
---|---|
确保在各类浏览器中网站的可见性保持不变。 | 经过网站或应用了解客户的目标,并提供有效的开发解决方案。 |
构建一个视觉上吸引人的网站或应用程序,并诱使用户进行交互。 | 安全地存储数据并确保在请求时向该用户显示数据。 |
了解跨浏览器测试。 | 开发支付处理系统、安全存储支付信息、并支付费用。 |
熟练使用 HTML5 和 Dreamweaver 等工具。 | 管理和构建(若有必要)跨设备工做的API资源。 |
对SEO的基本理解。 | 构建系统架构,进行数据科学分析。 |
设计易于使用。 | 组织在多个设备上高效运行的系统逻辑。 |
善于与客户互动并实施反馈。 | 解决系统相关问题和实现算法的技巧。 |
根据 PayScale 提供的数据:
根据 PayScale 提供的数据:
有些人能够同时掌握前端和后端开发技能。这样的开发被称为全栈开发人员。
学习或雇用全栈开发者有其自身的优势和缺点。能够吧开发人员数量减小到一半,但专业水平也随之下降了。专门从事前端或后端开发的开发人员通常比了解二者的人对于单一学科更加专业。
还有各类相似于全栈的技术栈,如 MEAN 技术栈,LAMP 技术栈,.NET 技术栈,Python-Django 技术栈,ROR 技术栈开发人员能够成为任何这些技术堆栈的专家。
若是你是开发人员,请不要根据哪一个听起来更酷的来选择你的技术方向。要先进行更详细的分析,而后再选择你最感兴趣的专业知识。