代码编程一条街,前端后端谁为先?-程序员宅基地

640?wx_fmt=jpeg

作者丨Paresh Sagar

译者丨无明

编辑丨小智

作为一名开发者,你可能会想: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那么前端和后端的区别有哪些?

640?wx_fmt=jpeg

640?wx_fmt=png

前端和后端的技术栈比较

640?wx_fmt=png

4前端和后端开发者,哪个更好?

做前端开发还是后端开发,除了技术方面的东西,还要看什么对你来说更为重要。

如果美学和产品感觉方面的东西对你来说更重要,那么你可能会倾向于选择前端技术。如果你关注的是提高网站、应用程序或软件的效率和响应性,那么你的目标可能会是后端开发。

前端设计师所做的很大一部分工作是让用户在移动或 PC 屏幕上看到的东西看起来很棒,而且很容易使用。相反,后端开发人员只关心如何编写干净的代码。

如果你要基于上面所说的内容在前端和后端之间判定其中一个比另一个好,那么这本身就是一个错误的假设。实际上,它们都是不可替代的,在构建网站或应用程序时,它们是同等重要的。

有些人具备视觉方面的天赋,而其他人擅长通过逻辑和技术来解决问题。苹果之所以成为今天的样子,要归功于 Steve Jobs(前端的梦想家) 和 Steve Wozniak(后端天才)。

5前端和后端开发者

640?wx_fmt=png

现在, 你已经对前端和后端开发有了很好的了解,接下来是时候更多地了前端和后端开发者了。下面简要介绍了前端和后端开发者的职位、技能和职责。

通过这些要点,你可以全面了解后端和前端开发者的技能。

前端和后端开发者的职位头衔

开发者有很多工作机会,根据具体的专业知识、经验和兴趣,你可以申请以下这些后端或前端开发职位。

前端:

  • 前端开发工程师;

  • 前端 Web 设计师;

  • Android 开发工程师;

  • iOS 开发工程师;

  • 前端 DevOps 工程师;

  • 前端 JavaScript 开发工程师;

  • 前端 UI 工程师;

  • HTML/CSS 开发工程师;

  • 前端测试工程师;

  • 前端 SEO 专家。

后端:

  • 后端开发工程师;

  • 初级后端开发工程师;

  • Web 开发工程师;

  • DevOps 工程师;

  • 软件工程师;

  • WordPress 开发工程师;

  • 云计算工程师;

  • REST 专家;

  • 服务器 / 系统管理员;

  • 数据库架构师;

  • Java 开发工程师;

  • Python 开发工程师;

  • PHP 开发工程师。

前端和后端开发者的技能要求

不同职位和级别所要求的技能是不一样的,但不管怎样,要成为前端或者后端开发者绝对需要掌握一定的技能。

640?wx_fmt=png

前端和后端开发者的角色和职责  

前端和后端开发者的角色和职责是什么?在申请工作或招聘前端或后端开发者之前,请确保了解以下这些内容。

640?wx_fmt=png

前端和后端开发者的薪水比较

前端开发者:

640?wx_fmt=png

以上数据来自 PayScale

(https://www.payscale.com/research/US/Job=Front_End_Engineer/Salary)

640?wx_fmt=png

以上数据来自 Glassdoor

(https://www.glassdoor.co.in/Salaries/us-front-end-developer-salary-SRCH_IL.0,2_IN1_KO3,22.htm)

后端开发者:

640?wx_fmt=png

以上数据来自 PayScale

(https://www.payscale.com/research/US/Job=Back_End_Developer%2F_Engineer/Salary)

640?wx_fmt=png

以上数据来自 Glassdoor

(https://www.glassdoor.co.in/Salaries/us-backend-developer-salary-SRCH_IL.0,2_IN1_KO3,20.htm)

6什么是全栈开发?

有些人可以同时从事前端和后端开发,他们被称为全栈开发者。

成为全栈开发者或者招聘全栈开发者既有优点也有缺点。虽然开发者数量可以减少到原来的一半,但他们的水平也相应降低了。专门从事前端或后端开发的开发者对单个领域的了解总是多于同时了解这两个领域的开发者。

与全栈类似的技术开发栈还有很多,比如 MEAN 栈、LAMP 栈、.NET 栈、Python-Django 栈、ROR 栈,等等。开发者可以自由选择成为这些技术栈的专家。

原文链接:

https://www.excellentwebworld.com/backend-vs-frontend/

推荐阅读

都在谈中台,究竟什么是中台?

微服务架构实践 (二):微服务架构的设计原则和核心话题

无服务器架构是小型创业公司的未来

微服务架构下各类项目的顺势崛起

为什么高级程序员写的代码都是傻瓜式的?

程序员编程时戴耳机是在听什么?

简历就该这么写

Maven的爱恨情仇

640?wx_fmt=png

喜欢就点个"在看"呗

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/xcbeyond/article/details/100015780

智能推荐

视图中的键保留表_视图键保留表-程序员宅基地

文章浏览阅读3.2k次。视图中的键保留表:连接视图中所有更新的列必须映射到键保留表的列中,也就是视图DML操作的列必须映射到键保留表的列中键保留表的理解是:一个复杂视图,若需要出现键保留表的话则必须保证基表中至少有一张表是有主键的! 其次,这两张表在进行关联时(可以是表连接也可以是多表查询,但一定要有关联条件,其关联条件其实相当于两表的主外键关系),如果关联条件是使用了主键的话,则外键表为键保留表_视图键保留表

java创建不定长数组_java二维不定长数组测试-程序员宅基地

文章浏览阅读209次。package foxe;import javax.swing.JEditorPane;import javax.swing.JFrame;/*** @author fooxe** @see:Test.java***/public class Test extends JFrame {private String arr[][] = null;private String str[][] = { ..._java创建一个不定长的数组

51信用卡Android 架构演进实践-程序员宅基地

文章浏览阅读227次。随着业务的快速扩张,原本小作坊式的单个工程的开发模式越来与不能满足实际需求。早在两年多以前,51信用卡管家就向下沉淀出了单独的公用基础库,一些通用的功能组件和个别独立的业务被拆分成 SDK,形成了一套中型项目、多人并行的开发模式,也为未来组件化拆分做准备。这套框架运行了一段时间之后,伴随着单应用内业务需求的增加、开发人员数量的增多、基础库数量的膨胀,导致了一些问题:主工程代码耦合严重,牵一发而动全...

机器学习模型评分总结(sklearn)_model.score-程序员宅基地

文章浏览阅读1.5w次,点赞10次,收藏129次。文章目录目录模型评估评价指标1.分类评价指标acc、recall、F1、混淆矩阵、分类综合报告1.准确率方式一:accuracy_score方式二:metrics2.召回率3.F1分数4.混淆矩阵5.分类报告6.kappa scoreROC1.ROC计算2.ROC曲线3.具体实例2.回归评价指标3.聚类评价指标1.Adjusted Rand index 调整兰德系数2.Mutual Informa..._model.score

Apache虚拟主机配置mod_jk_apache mod_jk 虚拟-程序员宅基地

文章浏览阅读344次。因工作需要,在Apache上使用,重新学习配置mod_jk1. 分别安装Apache和Tomcat:2. 编辑httpd-vhosts.conf: LoadModule jk_module modules/mod_jk.so #加载mod_jk模块 JkWorkersFile conf/workers.properties #添加worker信息 JkLogFil_apache mod_jk 虚拟

Android ConstraintLayout2.0 过度动画MotionLayout MotionScene3_android onoffsetchanged-程序员宅基地

文章浏览阅读335次。待老夫kotlin大成,扩展:MotionLayout 与 CoordinatorLayout,DrawerLayout,ViewPager 的 交互众所周知,MotionLayout 的 动画是有完成度的 即Progress ,他在0-1之间变化,一.CoordinatorLayout 与AppBarLayout 交互时,其实就是监听 offsetliner 这个 偏移量的变化 同样..._android onoffsetchanged

随便推点

小米组织架构再调整,王川调职,雷军自任中国区总裁_小米更换硬件负责人-程序员宅基地

文章浏览阅读335次。5月17日,小米集团再发组织架构调整及任命通知。新通知主要内容为前小米中国区负责人王川调职,雷军自任中国区总裁。小米频繁调整背后,雷军有些着急了中国区手机业务持续下滑。根据IDC最近公布的数据,小米一季度全球出货量为2750万台,相比去年同期的2780万台,小幅下降。参考Canalys、Counterpoint的统计,小米一季度出货量也都录得1%的同比下滑。作为对比,IDC数据显示,华为同期出..._小米更换硬件负责人

JAVA基础学习大全(笔记)_java学习笔记word-程序员宅基地

文章浏览阅读9.1w次。JAVASE和JAVAEE的区别JDK的安装路径[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-perPRPgq-1608641067105)(C:\Users\王东梁\AppData\Roaming\Typora\typora-user-images\image-20201222001641906.png)]卸载和安装JDK[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SYnXvbAn-1608641067107)(C:\Users_java学习笔记word

vue-echarts饼图/柱状图点击事件_echarts 饼图点击事件-程序员宅基地

文章浏览阅读7.8k次,点赞2次,收藏17次。在实际的项目开发中,我们通常会用到Echarts来对数据进行展示,有时候需要用到Echarts的点击事件,增加系统的交互性,一般是点击Echarts图像的具体项来跳转路由并携带参数,当然也可以根据具体需求来做其他的业务逻辑。下面就Echarts图表的点击事件进行实现,文章省略了Echarts图的html代码,构建过程,option,适用的表格有饼图、柱状图、折线图。如果在实现过程中,遇到困难或者有说明好的建议,欢迎留言提问。_echarts 饼图点击事件

操作系统思维导图(一)_操作系统课程思维导图-程序员宅基地

文章浏览阅读1.3k次,点赞4次,收藏14次。内容整理自,华中科技大学,苏曙光老师《操作系统原理》,可在MOOC课程学习相关课程。_操作系统课程思维导图

vite build-程序员宅基地

文章浏览阅读4.3k次。vite在开发阶段采用的是按需加载的方式,不会将所有文件打包。但是生产环境的部署是需要进行打包的,这里它使用的是rollup打包方式。对于代码切割的需求,使用原生动态导入,因此打包后支持新浏览器,对IE的兼容性不是很好,但是可以用对应的polyfill解决。使用esbuild来处理需要pre-undle的在cli.ts的build命令中引入build.ts调用doBuild方法,在这个方法中配置打包参数(input output plugin等)调用buildHtmlPlugin解析文件入口in_vite build

Scala:访问修饰符、运算符和循环_scala ===运算符-程序员宅基地

文章浏览阅读1.4k次。http://blog.csdn.net/pipisorry/article/details/52902234Scala 访问修饰符Scala 访问修饰符基本和Java的一样,分别有:private,protected,public。如果没有指定访问修饰符符,默认情况下,Scala对象的访问级别都是 public。Scala 中的 private 限定符,比 Java 更严格,在嵌套类情况下,外层_scala ===运算符