什么是全栈开发者?它是如何与前端或前端开发人员进行比较?
在软件工程世界中,全堆叠开发人员究竟是什么,以及与其他编程角色有何不同?无论好坏,“完整堆栈开发人员”是许多编程作业的共同标题。但是,不是每个人都同意这个词的手段。在这篇文章中,我们将涵盖术语手段以及为什么它是如此的极化。
什么是堆栈?
在定义“完整堆栈”之前,有一个“堆栈”这个词的工作定义是有帮助的。技术堆栈是公司用于构建应用程序的全套技术。通常,一个堆栈包括一种或多种编程语言、库、服务器、数据库、框架和开发人员工具。
大多数科技公司容易讨论其技术堆栈的组成部分,有些人甚至将使用他们的堆栈来吸引未来的员工。例如,根据网站stackshare., Pinterest的技术堆栈包括:
- HTML、CSS和JavaScript
- Python
- java.
- 去
- django.
- 反应
- 骨干
- redis.
- mysql.
- nginx.
2021年4月最后更新
完全重做 - 您唯一需要了解Web开发的课程 - HTML,CSS,JS,Node等!betwayapp下载安装|由Colt Steele.
探索课程优步的技术堆栈包括:
- HTML、CSS和JavaScript
- 反应
- jquery.
- node.js.
- Python
- PostgreSQL.
- MongoDB.
- 卡桑德拉
- Hadoop.
- 卡夫卡
堆栈的各个部分
我从上面的列表中省略了一些技术,但你仍然可以看到现代技术堆栈变得非常复杂。在2000年代初,应用程序的复杂性成长,开发人员开始专门化堆叠的两部分中的一个:前端和后端。在我们潜入两者之间的差异之前,让我们快速回顾互联网的工作原理(非常高,级别)。
当您访问网页时,就像Udemy.com.,你的计算机向服务器发送一个请求,要求获得特定的页面。你好,udemy.com我想要你的主页。在Udemy总部的深处,服务器正在等待与您一样的请求(实际上,这些服务器可能位于某个亚马逊AWS设施中)。一旦服务器接收到您的请求,它的工作就是收集构建特定请求页面所需的任何信息和代码,然后将其发送回您的浏览器显示。这种循环要求和一个结果回复无论是Facebook.com还是whatimeisit.com,就会在幕后发生在幕后。
重要的是要理解,当您要求udemy.com这样的网页时,服务器不会响应完美形成的网页,准备好您使用。相反,它响应代码,这对平均人类没有意义。您的浏览器的工作是拍摄该代码并将其转换为人类可读的网页。
整个过程有点像那些邮寄套装服务之一,邮寄你一盒你必须自己做饭。首先你要求一餐套件,让我们说,杏鸡与醋甘蓝豆豆。膳食套件公司收到您的要求,并完成所有必要的工作来构建您的盒子:购买成分,包装它们,并为您创建指示。最终,公司答案用餐套件,然后几天后你收到一个装满生鸡胸肉,杏蜜饯,香醋敷料,青豆和一套烹饪饭菜的盒子。你仍然没有用餐;此时,它只是一组成分。你必须在自己的厨房里做准备饭的工作。
这种隐喻是一种笨拙的方式,可以解释网页是在浏览器中运行的服务器上运行的代码的结果。就像我的父母的婚姻顾问一样说 - 双方有工作要做!
后端开发人员
后端也称为服务器端,是运行在服务器上的“幕后”逻辑。在我们的饭盒类比中,后端是饭盒到达前门之前发生的事情。原料是买来的,说明书是写好的,所有的东西都包装好寄给你。类似地,当你请求一个类似Udemy.com.,服务器必须做一堆工作来为你创建网页“饭盒”。
这包括处理问题:
该用户是否已登录?或者他们是一个全新的用户?他们是在请求一个他们有权查看的网页吗?如果有的话,他们已经有哪些课程?他们每门课都取得了多少进步?今天的热门话题和每个话题中评分最高的课程是什么?我应该按什么顺序列出这些课程?我可以向用户建议哪些课程,他们可能会喜欢?有打折的课程吗?这个用户是否有我应该告诉他们的通知或消息?
后端开发人员编写代码以完成所有工作。后端开发人员的角色是在给定Web应用程序中实现所有必要的“业务逻辑”。通常,这需要与服务器,实际应用程序逻辑和数据库一起使用。正如您在堆栈的早期示例中所看到的,许多公司一起使用多种编程语言和数据库。
最流行的后端脚本语言包括Java、Python和PHP,尽管Ruby、Node.js、Go、Scala和c++等其他语言也很常用。后台开发人员经常使用服务器端框架,比如Django(一个Python框架)和Laravel(一个PHP框架)。其他流行的框架包括Flask、Express、Spring、Phoenix和Ruby on Rails。这些工具帮助开发人员创建web应用程序和响应传入的请求;他们中的一些人也做得更多!
后端开发人员还经常与复杂的数据一起工作,并与MySQL,PostgreSQL,MongoDB等数据库相互作用。
前端开发人员
“前端”是指在浏览器中运行的Web应用程序的一部分。在我们的膳食试剂盒中,前端是您在家里的厨房,您需要使用您在邮件中收到的配料组装餐。当您要求网页时Udemy.com.,服务器构造它将其发送回浏览器的网页,但请记住网页真正只是浏览器运行的一堆代码。前端开发人员编写该代码。
Web浏览器理解三个主要工具:HTML、CSS和JavaScript。这些技术允许我们创建漂亮(或丑陋)的交互式web应用程序。他们是任何前端开发者的面包和黄油。每种工具都有特定的作用:
- HTML.- HTML通常被描述为网页的骨干,因为它描述了页面上的底层结构和内容。让我成为联系页面的链接。显示我的“uct_cat.jpg”图像。添加文本段落。
- CSS.-只用HTML构建的网站看起来……很可怕。值得庆幸的是,我们可以使用CSS样式化我们的HTML内容,并制作漂亮的网页。使用CSS,我们可以改变颜色,移动内容来构建好看的布局,操作字体和大小,甚至添加动画。将文本的第一段改为紫色和粗体。使每个图像宽500px。使第一个标题更大,并在底部给它一个橙色边框。
- JavaScript- JavaScript允许开发人员将交互性和动态内容添加到网页。通过使用JavaScript,我们可以进行响应用户点击响应,显示和隐藏内容,加载新信息的内容,或将数据发送到某处的服务器,而无需重新加载页面。
例如,当您在Facebook Post上发布新评论时,JavaScript代码会侦听您单击“提交”或点击Enter键。然后它从表单中读取新的注释,并将数据发送到服务器以保存到数据库(谢谢某些后端逻辑)。最后,它更新当前的网页以显示您的新评论与现有评论一起。JavaScript还可用于构建基于浏览器的游戏。
前端开发人员大部分时间都使用这三种前端技术。此外,大多数现代Web应用程序都是用JavaScript库和框架构建的,例如React,Angular和Vue,帮助开发人员管理复杂前端的创建。前端开发人员通常与Web设计人员和UX设计人员密切合作,以构建应用程序的用户界面。许多初学者认为前端开发都是“装饰”和“让事情看起来很好”,但这并非如此!betwayapp下载安装许多前端开发人员花费时间解决浏览器局限性和编写复杂的JavaScript逻辑所强加的困难的技术挑战。
完整的堆栈开发人员
现在我们来到了本文的中心问题:什么是完整堆栈开发人员?在理论上,一个完整的堆栈开发人员是一个编码的杰克 - 所有交易,他们掌握了开发堆栈的每个部分betwayapp下载安装。
在与我们的餐套类别保持类比中,一个完整的堆栈开发人员建造了一餐套件并烹饪。完整的堆栈开发人员应该能够创建一个完整的web应用程序,前端和后端,所有自己。他们应该舒适地写JavaScript和CSS一天和Python(或其他语言)和SQL下一个,所有人都在高级层面。那是理想的,但实际上是可能的吗?
近年来,对这个完整堆栈的定义有很多反对意见。开发人员倡导者Brian Rinaldi写道:“我不是‘全栈开发人员’这个词的粉丝。’我认为这为公司提供了一种不切实际的方式,并设置了一个无法实现的标准,特别是对于初级开发者来说。”
在今天的超复杂应用和不断变化的技术世界中,它很难停留在单一语言的最新趋势和工具之上,更不用说堆栈的每个部分。在开发堆栈的每一部分中,都有深刻,百科全书知识的肯定是上帝级的开发人员,但它们是例外。betwayapp下载安装我们中的大多数人只是凡人试图在没有破坏我们的应用程序并崩溃进入泪水的水坑里。
完全堆栈的更现实的定义
这些日子许多开发人员更喜欢一个更可达的,更广泛的完整堆栈开发人员的定义。这个人是堆栈的某些部分的专家,但在整个堆栈中舒适地工作。完整的堆栈开发人员可以从头开始,前端和后端代码写一个整个应用程序,尽管它可能并非所有人都不在高级。
IDEO CEO Tim Brown使用术语“T形人”来描述具有广泛知识库的人(“T”的水平部分)与一个或多个区域(“T”的垂直部分(“T”的垂直部分)相结合。)。完整的堆栈开发人员应该是“T形开发人员”。换句话说,完整的堆栈开发人员需要在专业中具有广泛的经验和理解整个堆栈和专业知识。考虑一下“所有交易的杰克和至少有一个人的杰克。”
例如,假设的完整堆栈开发人员可能具有JavaScript,React和其他前端工具的专家级别体验,但它们也应该感到舒适地写入必要的后端逻辑,与数据库一起使用,实现身份验证,部署等。它们可能会与后端代码比专用的后端开发人员“弱”,但总的来说,他们有一个更圆圆的技能。
为什么这种区别很重要
作为专业开发商没有任何问题。在许多情况下,专门的前端或后端专家更担钱,可能会占薪酬更高。与此同时,许多公司需要拥有更广泛的技能的多才多艺开发人员。这在开发人员可能需要在堆栈中工作以使产品出门时,这在初创公司和小公司中特别常见。
它不是每个人,但是作为一个完整的堆栈开发人员确实含有它的优势。熟悉堆栈的所有部分都让您成为一个“善解的”开发商。充分了解应用程序如何有助于您识别可能出现问题的地方。它使您能够与团队中的更多专业开发人员合作和沟通。最后,完整的堆栈开发人员可以使用他们的技能来构建自己的原型和侧面项目。
如果您是初学者,请不要陷入这些职位的术语或标签。不要强调自己试图学习太阳下的每种语言和框架。无论多么诱人,都侧重于一两个工具并与它们粘在一起。
即使您计划成为后端开发人员,我建议所有初学者学习HTML,CSS和JavaScript。前端和后端之间的界限定义不佳,您可能会在您的旅程中学习一下。成为“所有行业的杰克和一个大师的杰克”相对容易,但记住这里的目标是成为“所有行业的杰克和至少一个人的大师”,这需要更多的工作。