坎德人的小包包

欧剃,游荡的坎德人,在他的旅途中收集了许许多多有趣的东西。

发表日期:2019-08-20

前端后端和全栈,它们都是啥?

—— 今天就让我们好好聊聊这几个岗位,也希望能为将来要进入这个领域的新手指引一下方向。

作者:girl learning tech


我是个半路出家的开发者。

在我真正转行之前,我也曾经一遍遍刷着招聘网站上的职位信息,看着那些 Web 开发岗位的要求,想要确定自己在这个领域还需要哪些技能。我还记得,被搜索结果中大量技术名词淹没的无助感。这可不仅仅是因为上面列出的那许许多多能力和语言,还因为我发现很多看起来差不多的职位,却有着不同的岗位名称:“前端”“后端”“全栈”,这都是啥?

当然,在搜索的过程中,你会碰到的岗位名称可远不止这些。但可以确定的一点是,这些对 Web 开发岗位来说,是最常见不过的了。

那么,今天就让我们好好聊聊这几个岗位,也希望能为将来要进入这个领域的新手指引一下方向。

所以,为啥要有这么多不同的岗位名称呢?

这些岗位名称,每一种都代表了应聘者/员工需要掌握的一大类特定的技术体系。

如今,网络技术的发展不断加快,复杂度也不断提高。随之而来的是,在某些开发流程中,程序员的岗位内容也变得更具专门性。换句话说,对于 Web 应用的每个不同的属性,对某些特定的编程语言、框架或是技术上的专门知识,我们都有一个专门的职位,用于描述在工作中使用这一系列技术的开发者。

对刚入门新手,或是正在尝试在这一领域求职的人来说,你需要理解“前端”“后端”和“全栈”之间的区别,以便更好地充实自己的技术储备。每一种岗位,你都必须具备一套不同的技术储备。然而,要在它们之间画出一条严格的界限,并不是件容易的事。每一个岗位都带有一系列 必须掌握的附加技能。是的,如果你希望能成为一名更好的开发者,你就需要对这三种岗位的特性有比较好的理解。

好吧,我啰里啰唆地讲了这么多,现在就让我们详细聊一聊“前端”“后端”“全栈”工程师都要做些什么,以及你需要哪些技能才能胜任这些工作。

前端开发者

前端开发者的工作,就是构建一个网页 APP 中你能直接看到并与之交互的部分。想象一下,对一个网站来说,它可能有设计师设计好了 Logo,有摄影师提供的精彩照片,还有作者们提供的文字与内容等各种素材。那么,简单地说,前端开发者就是把这些素材都整合在一起,形成一个我们可以浏览的网站页面。

为此,前端开发者需要深入掌握三种语言: HTML、CSS 以及 Javascript

HTML——超文本标记语言——是网页的骨架,是每个网站必备的基础。简单地说,HTML 文档中包含了各种成对的标签,网页上的各种元素通过这个标签组合成了一个整体。

CSS——层叠样式表——是让HTML结果变得更加好看的样式规则。这让网页能够拥有各种颜色、字体以及背景图案。CSS 可以用与管理网页上的各种元素,并控制这些元素在页面上的位置与样式。

最后是 Javascript,它是网页动画与交互的魔法之源,也是构建一个 Web 应用的核心部分。

如果你想要从事前端开发,上面这些就是你必须掌握的基础技能。但前端开发可远不止于此。有许多框架可以被用在这些语言上,比如 Bootstrap、Semantic-UI 以及 Foundation 等。它们能让你的应用更加美观,也更易使用。此外,还有许多代码库,比如 jQuery、React 以及 Angular 等。在这些已经包装好的代码库的帮助下,你能方便而直接地引入许多有用的功能,省下许多重复造轮子的时间。此外,你可能还会碰到 Node.js,在这一跨平台环境的加持下,你能用 Javascript 给前端和后端程序编写代码。最后,一些 Ajax 技术能让网页更加动态化,还能让网页更好地和后端的数据服务器协同工作。

使用这些技术,前端开发者能连接起网站设计者和后端开发者之间的桥梁。他们能提供用户体验方面的分析,构建模型和线框,给设计团队提出建议。他们能给后端编写的服务应用赋予生命,提升格调,营造美感。

后端开发者

前端开发关注的是用户见到并交互的内容,而这一切的幕后驱动力,则来自后端开发者的劳动。你访问的这个网站之所以会存在,完全是因为后端服务器将这些数据发送到了你的计算机或者移动设备上。不仅如此,被传送的这些网页、表单、用户账号,以及所有相关的个人信息等数据,全部都是由后端团队进行存储和操作的。

后端开发者的工作就是保证服务器、应用程序和数据库之间的正常通信和协作。因此,他们使用的更多是服务器端的编程语言—— PHP、Ruby、Python、Java 甚至 .Net,一边构建出足够健壮的服务器程序,驱动网页应用的正常运作。此外,他们需要使用诸如 MySQL、Oracle 以及 SQL Server 等数据库,来保存、修改、更新以及删除服务器上的数据。后端开发的工作还可能需要掌握一些特定的框架,比如 Zend、Symfony 以及 CakePHP,或许还需要一些 Linux 方面的知识。

如果你想找一个后端开发的工作,你会发现许多岗位往往都被冠以某一个基础语言的名字,比如 **Ruby 程序员** 或者 **PHP 程序员**。编程语言是这一职位的关键要素,因为你在后端开发时使用的这些应用,往往也都是用同一门语言编写的。

说到这里,你可能会想,“如果 Javascript 已经能搞定动画创建和交互逻辑,我真的会需要一门后端语言吗?”。确实,现在的 JS 已经摆脱了许多以往存在的限制与不足,并且纯 JS 已经能完成几乎无限的可能。然而,对于大型且复杂的后端应用来说,为了保证性能,一个专业的后端编程语言还是非常有必要的。况且,学习多门编程语言,能让你从不同的角度进行思考,并针对某个特定的情况选择最适合的解决方案。

后端开发者需要编写出与业务策略相协调的代码,将企业的需要翻译成技术需求,并最终确定最高效的服务器与数据库架构。

全栈开发者

全栈开发者,顾名思义,就是前端和后端的活儿都能干。这里的“栈”指的是网页应用的各个层,也就是这样的开发者具备了包括服务器程序、数据结构与模型、用户界面、用户体验等多层次的技术,掌握了业务中所需要的每一个阶段的技术。没错,没错,“全栈”意味着你已经完全了解整个开发流程中的每一个环节。

不过,和你想的不太一样,全栈开发并不意味着整个项目都是你一个人来干。在大多数情况下,全栈开发者还是会将主要的精力花在前端或者后端之一的开发流程上。但和其他开发者不同的是,全栈开发者能在需要的时候跨越项目中的界限,比如能在改善用户体验的同时,优化数据库的模型。

全栈开发者的一个常见情况是,他们通常会专用一种后端编程语言,比如 Ruby 全栈开发者,或者 Python 全站开发者等等。

那么,我该学些什么呢?

事实上,技术的领域始终处于变化之中,正如你能看到各种新型的手机和电脑不断出现一样。对于技术岗位而言也是如此。最常用的语言、最热门的框架随着时间的推移也总会改变,甚至它们的版本和语法都会不一样。要想变成一名多才多艺的开发者,前端和后端的各项技术都是至关重要的,能让你更好地面对未来可能发生的改变。

但是,无论您选择首先将精力放在哪种语言上,你都要清楚地理解这门语言的各种细节、可使用的框架和第三方库等。这会使你在就业市场中获得较为显著的优势。在争取某个项目职位的时候,那些掌握了足够语言知识的人,那些熟悉框架和库并让代码更加简洁的人,以及那些更好地遵循应用文档的人,总是更容易脱颖而出。

就是这样!让我们一起努力吧!

(本文已投稿给「优达学城」。 原作: girl learning tech ,译者:欧剃 转载请保留此信息)

编译来源: https://blog.usejournal.com/front-end-back-end-full-stack-what-exactly-are-they-talking-about-fbd5d3fd4939

标签:UdacityTranslate

Powered by Jekyll on Github.io
2022 © 欧剃