前端和后端开发人员比例_前端开发人员vs后端开发人员–实践中的定义和含义
前端和后端开发人员比例
Websites and applications are complex! Buttons and images are just the tip of the iceberg. With this kind of complexity, you need people to manage it, but which parts are the front end developers and back end developers responsible for?
网站和应用程序很复杂! 按钮和图像只是冰山一角。 有了这种复杂性,您需要人来管理它,但是前端开发人员和后端开发人员负责哪些部分?
The many layers of development
多层次的发展
But we’re not all full stack
但是我们还不是全部
So what is the difference between Front End Development and Back End Development?
那么前端开发和后端开发有什么区别?
What is Front End Development?
什么是前端开发?
What is Back End Development?
什么是后端开发?
Where things get fuzzy
事情变得模糊
Resources to learn
学习资源
多层次的发展 (The many layers of development)
Whether you’re working on a website or a native iOS app, all development environments share a common theme — there’s a front end to an application and a back end.
无论您是在网站上工作还是在本机iOS应用程序上工作,所有开发环境都具有一个共同的主题-应用程序的前端和后端。
This line can get blurry, especially given the rise of javascript and the serverless world. With the tooling somewhat merging together, we might sometimes wonder if we’re a full stack developer.
这条线可能会变得模糊,特别是考虑到javascript和无服务器世界的兴起。 随着工具的融合,我们有时可能会怀疑我们是否是一名全栈开发人员 。
但是我们还不是全部 (But we’re not all full stack)
As much as we might all want to be, we’re not all full stack developers. Personally, I find myself able to be productive in the back end of an application, but it’s not my strength and I much prefer to be heads down building UIs.
尽管我们所有人都想成为 ,但我们并不是全栈开发人员。 就个人而言,我发现自己能够在应用程序的后端高效工作,但这不是我的强项,我更喜欢低头构建UI。
And some people are the opposite, where they are strongest dealing with building APIs in the back end of an application and while they can build out a UI, it might be more of a prototype-like experience than a fleshed out application.
与某些人相反,他们最擅长在应用程序后端构建API,尽管他们可以构建UI,但与充实的应用程序相比,它更像是一种原型体验。
那么前端开发和后端开发有什么区别? (So what is the difference between Front End Development and Back End Development?)
Even if you are a full stack developer, that doesn’t mean there’s not a division of responsibilities.
即使您是全栈开发人员,也不意味着没有责任分工。
So what do those look like?
那这些长什么样呢?
什么是前端开发? (What is Front End Development?)
The front end of an application typically refers to the layer that represents the UI (user interface). This can include anything from a static site with HTML and CSS to a full React app that powers the UI.
应用程序的前端通常是指代表UI(用户界面)的层。 这可以包括从具有HTML和CSS的静态站点到为UI提供支持的完整React应用程序等所有内容。
前端开发传统上是什么样的? (What did Front End Development traditionally look like?)
Javascript currently rules the front end web, but that wasn’t always the case. While it could have been used to add little bits of interaction to a site, typically front ends were rendered using server-side templating languages like framework-driven PHP and Template Toolkit (Perl).
目前,Java语言统治着前端网站,但并非总是如此。 尽管可以使用它来增加与站点的少量交互,但通常使用服务器端模板语言(如框架驱动的PHP和Template Toolkit ( Perl ))来渲染前端。
This grew to be super popular in practice with home grown frameworks or tools like Wordpress that used PHP to drive a massive community of developers who built their websites with those tools.
在实践中,这已经变得非常流行,例如使用PHP的本地框架或工具(如Wordpress)来驱动庞大的开发人员社区,这些社区使用这些工具构建网站。
The way it worked was the templating language was able to get its data straight from the server as it was rendered. When a browser requested the page directly from the origin (the server itself), whatever data the template would need, the application logic would provide at that time.
它的工作方式是模板语言能够在渲染时直接从服务器获取数据。 当浏览器直接从源(服务器本身)请求页面时,无论模板需要什么数据,应用程序逻辑都会在那时提供。
Some of the more traditional front end tools include:
一些更传统的前端工具包括:
Libraries like jQuery or MooTools
jQuery或MooTools之类的库
Website frameworks like Wordpress
网站框架(如Wordpress)
Plain CSS
纯CSS
Abundant use of Table elements
表元素的大量使用
But as time went on, javascript kept getting more mature as a language and browsers kept getting more powerful, which led to the idea that we could move more of that work to the browser to build faster and more interactive experiences.
但是随着时间的流逝,JavaScript逐渐成为一种语言,浏览器也变得越来越强大,这导致我们可以将更多的工作转移到浏览器上,以建立更快,更互动的体验。
前端开发现在看起来像什么? (What does Front End Development look like now?)
Now it’s common to see javascript-heavy websites and apps built using UI frameworks like React, Vue, and Angular. These tools provide abstractions that allow developers to build complex UIs with reusable patterns like components.
现在,常见的是使用UI框架(如React , Vue和Angular)构建大量javascript的网站和应用程序。 这些工具提供了抽象,允许开发人员使用可重用的模式(例如组件)构建复杂的UI。
When the browser loads the page, the page receives an initial HTML document that also includes the script tag to the javascript (same as always). But once that javascript loads, it reaches out to APIs using browser requests that when completed, update the page to fill in any kind of dynamic data that you’d typically get along with that first HTML document.
当浏览器加载页面时,页面会收到一个初始HTML文档,该文档还包括javascript的script标签(与以往一样)。 但是,一旦加载了JavaScript,它就会使用浏览器请求到达API,并在完成后更新页面以填充通常与第一个HTML文档一起使用的任何类型的动态数据。
While it sounds like more steps, it commonly provides a faster initial page load and render, not to mention it has a great developer experience. By delivering less on that first request and prioritizing what loads after that, it usually ends up as a better user experience.
虽然听起来似乎需要更多步骤,但通常可以提供更快的初始页面加载和呈现速度,更不用说它具有出色的开发人员体验。 通过在第一个请求上减少交付并确定随后的负载优先级,通常可以带来更好的用户体验。
Some of the front end tools that are more common and growing in popularity include:
一些更常见且越来越流行的前端工具包括:
UI frameworks like React or Vue
UI框架,例如React或Vue
Web frameworks like Gatsby
像盖茨比这样的Web框架
Compilers like Babel
像Babel这样的编译器
Bundlers like Webpack
Webpack等捆绑软件
CSS tools like Sass
Sass之类的 CSS工具
But those APIs, whether ones we pay for or create ourselves, need to be built somewhere. That’s where the back end comes in.
但是这些API,无论是我们自己付费还是自己创建的API,都需要在某个地方构建。 那就是后端进来的地方。
什么是后端开发? (What is Back End Development?)
The back end layer is usually where the business logic occurs. This can be super complex like the rules that determine revenue for an e-commerce company or something more common like a user profile.
后端层通常是业务逻辑发生的地方。 这可能非常复杂,例如确定电子商务公司收入的规则,或者更常见的情况(例如用户个人资料)。
后端开发传统上是什么样的? (What did Back End Development traditionally look like?)
The back ends of applications were historically built using server-side languages like PHP or Ruby. The idea is that you have a server that you need to perform complex operations on, so the way to do that is with a language that server would understand.
历史上,应用程序的后端是使用服务器端语言(如PHP或Ruby)构建的。 这个想法是,您需要在服务器上执行复杂的操作,因此该方法是使用服务器会理解的语言。
On each request to the server, the backend would perform the full stack of the operations, including rendering out the front end. By using frameworks or DIY architectures, the back end would accept the request, figure out what it should do with that request, run any business logic needed with the request, and provide the front end any data that it would need to display a response to that request.
在对服务器的每个请求中,后端将执行完整的操作堆栈,包括渲染前端。 通过使用框架或DIY架构,后端将接受请求,弄清楚它应如何处理该请求,运行该请求所需的任何业务逻辑,并为前端提供显示响应所需的任何数据。该请求。
Some of the more traditional back end tools include:
一些更传统的后端工具包括:
On-premise or remotely managed servers like Rackspace
本地或远程管理的服务器,例如Rackspace
HTTP servers using Apache
使用Apache的 HTTP服务器
Databases like MySQL
像MySQL这样的数据库
Server side languages like PHP or Perl
服务器端语言,例如PHP或Perl
Application frameworks like Ruby on Rails
Ruby on Rails等应用程序框架
后端开发现在看起来像什么? (What does Back End Development look like now?)
Back end stacks look somewhat similar to the way they did before, aside from newer code patterns, except more often you’ll see the back ends provide data through APIs via HTTP requests instead of directly to the templates the front end team are working on.
除了更新的代码模式外,后端堆栈看起来与以前的方式有些相似,不同之处在于,您会经常看到后端通过HTTP请求通过API提供数据,而不是直接提供给前端团队正在处理的模板。
While the foundation isn’t super different, it actually be comes increasingly complex as you have to deal with different security implications that could compromise your system if not properly configured such as leaving an API open to the public that returns sensitive user data.
尽管基础并没有什么不同,但实际上它变得越来越复杂,因为您必须处理不同的安全隐患,如果配置不当,这些隐患可能会损害您的系统,例如向公众开放返回敏感用户数据的API。
But also how the server operates can be completely different. While previously, we might run our python on our own managed server (we still can), we can now make use of serverless functions with tools like AWS Lambda that simplify how we manage code.
但是服务器的运行方式也可能完全不同。 之前,我们可能会在自己的托管服务器上运行python(我们仍然可以),现在我们可以使用无服务器功能以及AWS Lambda等工具来简化代码管理方式。
While “serverless” doesn’t necessarily mean there are literally no servers, it means that as a service, the developer doesn’t have to worry about maintaining that server and can instead just focus on the code they need to run.
尽管“ 无服务器 ”并不一定意味着实际上没有服务器,但这意味着作为服务,开发人员不必担心维护该服务器,而可以只专注于他们需要运行的代码。
Some of the back end tools that are more common and growing in popularity include:
一些更常见且越来越流行的后端工具包括:
Cloud servers like AWS EC2
像AWS EC2这样的云服务器
Serverless services like AWS Lambda
无服务器服务,例如AWS Lambda
NoSQL databases like MongoDB
像MongoDB这样的NoSQL数据库
Languages like Python or javascript via NodeJS
通过NodeJS的 Python或javascript之类的语言
Web application frameworks like Serverless Framework
Web应用程序框架(如无服务器框架)
事情变得模糊 (Where things get fuzzy)
Part of the twist with back ends is now you can write your back end with javascript. With the inception of Node.js, developers were given the ability to use their favorite browser language to do most of the same things they were used to and familiar with but now on a server.
后端扭曲的一部分是您现在可以使用javascript编写后端。 自从Node.js诞生以来,开发人员就可以使用自己喜欢的浏览器语言来完成他们以前习惯并熟悉的大多数事情,但是现在都在服务器上。
While not everyone is fond of running javascript as a server side language, it became a little easier to use the same language to write the full stack of an application. This changed the game a bit as far as front ends and back ends were concerned.
虽然并非每个人都喜欢将javascript作为服务器端语言运行,但是使用相同的语言编写应用程序的整个堆栈变得有点容易。 就前端和后端而言,这彻底改变了游戏。
But it’s also started to come full circle where you now see systems that build APIs right next to the front end similar to what you might see in a traditional stack.
但是它也开始全面发展,您现在可以看到在前端附近构建API的系统,就像您在传统堆栈中看到的一样。
前端与后端 (Front End vs Back End)
Regardless of the stack, there will always be the separation of concerns. The UI and all of the interaction, whether rendered on the server or in the browser, is what makes the front end the front end and the data and business logic, whether coming from the server in your company’s closet or a managed function, is what makes the back end the back end.
无论堆栈如何,总会有关注点分离。 UI和所有交互(无论是呈现在服务器上还是在浏览器中)都是使前端成为前端的原因,而数据和业务逻辑(无论是来自公司壁橱中的服务器还是托管功能)是什么?使后端成为后端。
Whether you prefer to work on the user facing features or build the logic that lets them do things, there are plenty of resources to get started.
无论您是喜欢使用面向用户的功能,还是构建让他们执行操作的逻辑,都有很多资源可以入门。
学习资源 (Resources to learn)
前端 (Front End)
freecodecamp.org Responsive Web Design Certification (freecodecamp.org)
freecodecamp.org响应式Web设计认证 (freecodecamp.org)
Beginner Javascript (beginnerjavascript.com - Wes Bos)
初学者Javascript (beginnerjavascript.com-Wes Bos)
React Tutorial for Beginners (youtube.com - Programming with Mosh)
React初学者教程 (youtube.com-用Mosh编程)
Front End Masters (frontendmasters.com)
前端大师 (frontendmasters.com)
后端 (Back End)
freecodecamp.org APIs and Microservices Certification (freecodecamp.org)
freecodecamp.org API和微服务认证 (freecodecamp.org)
Super simple start to serverless (kentcdodds.com)
超级简单的无服务器启动 (kentcdodds.com)
AWS Certified Cloud Practitioner Training 2019 - A Free 4-hour Video Course (freecodecamp.org)
AWS认证的Cloud Practitioner Training 2019-4 小时免费视频课程 (freecodecamp.org)
CS50's Introduction to Computer Science (edx.org)
CS50的计算机科学入门 (edx.org)
以上全部 (All the above)
How to Become a Full Stack Web Developer in 2020 (colbyfayock.com)
如何在2020年成为一名全栈Web开发人员 (colbyfayock.com)
Egghead.io (egghead.io)
Egghead.io (egghead.io)
100 Days of Code (100daysofcode.com)
100天的代码 (100daysofcode.com)
The Web Developer Bootcamp (udemy.com - Colt Steele)
Web开发人员训练营(udemy.com-Colt Steele)
🐦 Follow Me On Twitter
Twitter在Twitter上关注我
📽️ Subscribe To My Youtube
Subscribe️订阅我的YouTube
✉️ Sign Up For My Newsletter
✉️注册我的时事通讯
翻译自: https://www.freecodecamp.org/news/front-end-developer-vs-back-end-developer-definition-and-meaning-in-practice/
前端和后端开发人员比例
相关文章:

Linux 创建子进程执行任务
Linux 操作系统紧紧依赖进程创建来满足用户的需求。例如,只要用户输入一条命令,shell 进程就创建一个新进程,新进程运行 shell 的另一个拷贝并执行用户输入的命令。Linux 系统中通过 fork/vfork 系统调用来创建新进程。本文将介绍如何使用 fo…

metasploit-smb扫描获取系统信息
1.msfconsle 2.use auxiliary/scanner/smb/smb_version 3. msf auxiliary(smb_version) > set RHOSTS 172.16.62.1-200RHOSTS > 172.16.62.1-200msf auxiliary(smb_version) > set THREADS 100THREADS > 100msf auxiliary(smb_version) > run 4.扫描结果&#x…

算法(1)斐波那契数列
1.0 问题描述 实现斐波那契数列,求第N项的值 2.0 问题分析 斐波那契数列最简单的方法是使用递归,递归和查表法同时使用,可以降低复杂度。根据数列特点,同时进行计算的数值其实只有3个,所以可以使用3个变量循环递进计…

主键SQL教程–如何在数据库中定义主键
Every great story starts with an identity crisis. Luke, the great Jedi Master, begins unsure - "Who am I?" - and how could I be anyone important? It takes Yoda, the one with the Force, to teach him how to harness his powers.每个伟大的故事都始于…

算法(2)KMP算法
1.0 问题描述 实现KMP算法查找字符串。 2.0 问题分析 “KMP算法”是对字符串查找“简单算法”的优化。字符串查找“简单算法”是源字符串每个字符分别使用匹配串进行匹配,一旦失配,模式串下标归0,源字符串下标加1。可以很容易计算字符串查…

告别无止境的增删改查:Java代码生成器
对于一个比较大的业务系统,我们总是无止境的增加,删除,修改,粘贴,复制,想想总让人产生一种抗拒的心里。那有什么办法可以在正常的开发进度下自动生成一些类,配置文件,或者接口呢&…

Maven国内源设置 - OSChina国内源失效了,别更新了
Maven国内源设置 - OSChina国内源失效了,别更新了 原文:http://blog.csdn.net/chwshuang/article/details/52198932 最近在写一个Spring4.x SpringMVCMybatis零配置的文章,使用的源配的是公司的私有仓库,但是为了让其他人能够通过…
如何使用Next.js创建动态的Rick and Morty Wiki Web App
Building web apps with dynamic APIs and server side rendering are a way to give people a great experience both with content and speed. How can we use Next.js to easily build those apps?使用动态API和服务器端渲染来构建Web应用程序是一种使人们在内容和速度上都…

安装部署Spark 1.x Standalone模式集群
Configuration spark-env.sh HADOOP_CONF_DIR/opt/data02/hadoop-2.6.0-cdh5.4.0/etc/hadoop JAVA_HOME/opt/modules/jdk1.7.0_67 SCALA_HOME/opt/modules/scala-2.10.4 ####################################################### #主节点 …

算法(3)简单四则运算
1.0 问题描述 实现10以内四则运算(只包含数字,*/和小括号) 2.0 问题分析 四则运算使用“后缀表达式”算法来计算,后缀表达式可以无需考虑运算符优先级,直接从左至右依次计算。问题分解成2部分,一是将“中…

调用短信接口,先var_dump()看数据类型是object需要json_decode(json_encode( $resp),true)转换成array...
返回的数据.先看类型,如果是object类型 先json_encode, 再json_decode,加true 转换成数组 $resp $c->execute($req); var_dump($resp); object(stdClass)#12 (2) { ["result"]> object(stdClass)#13 (3) { ["err_code"]> string(1) "0"…

nlp文本数据增强_如何使用Texthero为您的NLP项目准备基于文本的数据集
nlp文本数据增强Natural Language Processing (NLP) is one of the most important fields of study and research in today’s world. It has many applications in the business sector such as chatbots, sentiment analysis, and document classification.Preprocessing an…

R语言-基础解析
二、操作基础%%取余%/%整数除法(1)eigen(...)求解方阵的特征值和特征向量(2)solve(D,A)求解DXA(3)data<-list(...)取里面的对象data[["列名称"]];data[[下标]];data$列名称(4)unlist(列表对象)把列表对象转化为向量对象(5)names(数据框)读取…

算法(4)数据结构:堆
1.0 问题描述 实现数据结构:堆。 2.0 问题分析 堆一般使用数组来表示,其中某个节点下标i的两个子节点的下标为 2i1 和 2i2。堆是一棵完全二叉树。堆有3种基本操作:创建,插入,删除。这3种操作都需要通过“调整堆”的…

cookie 和session 的区别详解
转自 https://www.cnblogs.com/shiyangxt/archive/2008/10/07/1305506.html 这些都是基础知识,不过有必要做深入了解。先简单介绍一下。 二者的定义: 当你在浏览网站的时候,WEB 服务器会先送一小小资料放在你的计算机上,Cookie 会…

如何设置Java Spring Boot JWT授权和认证
In the past month, I had a chance to implement JWT auth for a side project. I have previously worked with JWT in Ruby on Rails, but this was my first time in Spring. 在过去的一个月中,我有机会为辅助项目实现JWT auth。 我以前曾在Ruby on Rails中使用…

算法(5)哈希表
1.0 问题描述 实现数据结构:哈希表。 2.0 问题分析 哈希表可以看作我们经常使用的字典(swift)或对象(js),可以让一个key&value对一一对应,可以快速根据key找到value。哈希表内部使用数组…

《面向对象程序设计》c++第五次作业___calculator plus plus
c第五次作业 Calculator plusplus 代码传送门 PS:这次作业仍然orz感谢一位同学与一位学长的windows帮助,同时再次吐槽作业对Mac系统用户的不友好。(没朋友千万别用Mac!!!) 还有想吐槽作业对规范的要求大大超…

联合体union和大小端(big-endian、little-endian)
1.联合体union的基本特性——和struct的同与不同union,中文名“联合体、共用体”,在某种程度上类似结构体struct的一种数据结构,共用体(union)和结构体(struct)同样可以包含很多种数据类型和变量。在成员完全相同的情况下,struct比…

前端面试的作品示例_如何回答任何技术面试问题-包括示例
前端面试的作品示例Technical interviews can be extremely daunting. From the beginning of each question to the end, its important to know what to expect, and to be aware of the areas you might be asked about. 技术面试可能会非常艰巨。 从每个问题的开始到结束&a…

$(shell expr $(MAKE_VERSION) \= 3.81) 这里“\”的解释
android/build/core/main.mk $(shell expr $(MAKE_VERSION) \> 3.81) 为什么要加多一个“\”,因为">"会被shell解析为重定向符号,所以需要转义或用引号包围 所以,也可以这样写$(shell expr $(MAKE_VERSION) “>” 3.81)转载于:https:…

iOS应用模块化的思考及落地方案(一)模块的划分及模块化工作流程
1.0 什么是模块化 很多关于重构及设计模式的介绍中,经常提到的几个词语是复用及解耦。 模块化之所以被提出,也更多是为了解决这几个问题。 复用可以减少重复造轮子的情况,很容易理解的是,我们经常使用的github上的第三方框架&a…

Swiper 用法
部分常用API ininialSlide: 2, //起始图片切换的索引位置(起始从0开始,默认为0) autoplay: 3000, //设置自动切换时间,单位毫秒 speed: 1000, //设置滑动速度 continuous: true, //无限循环的图片切换效果 disableScroll: true, /…
node/js 漏洞_6个可用于检查Node.js中漏洞的工具
node/js 漏洞Vulnerabilities can exist in all products. The larger your software grows, the greater the potential for vulnerabilities. 所有产品中都可能存在漏洞。 您的软件增长得越大,潜在的漏洞就越大。 Vulnerabilities create opportunities for expl…

发现一个浏览器很奇怪的问题
浏览器有8个请求状态为pending时,在另一个tab中,请求就发布出去了,一直是stalled。直到pending状态变成了cancled状态。 试了360浏览器(谷歌内核)和chrome浏览器,都是这样。 具体的原因待深究 参考…

wamp配置虚拟主机
因为wampserver的php版本一直是5.x版本;因此转投xmapp用了一段时间; 意外发现wampserver3更新了;php也终于更新到7了; 果断还是决定回到wampserver的怀抱; 然后有意外的发现了wampserver3有了新功能;可以方…

iOS应用模块化的思考及落地方案(二)模块化自动构建工具的使用
1.0 iOS模块化中的问题 前文已经介绍了模块化的流程及一些常见的问题,我们在这里再次总结一下。 在工作中,当我们开始一个新项目的时候,最先考虑的就是模块化工作。 模块化工作的想法是很美好的,可是执行过程中会遇到很多的问题…

aws fargate_我如何在AWS Fargate上部署#100DaysOfCloud Twitter Bot
aws fargateAfter passing my last certification, I asked myself how much time I spent studying cloud computing.通过上一份认证后,我问自己自己花了多少时间研究云计算。 More than 100 days!超过100天! It also made me realize two things:这也…

think in Java 第五章之垃圾回收类型
1.引用计数: 每个对象都含有一个引用计数器,当有引用连接至对象时,引用计数加1,当引用离开作用域或被置为null时,引用计数减1. 缺陷:在对象循环引用时,存在“对象应该被回收,引用计数…
Yii 错误页面处理
【错误页面处理】 訪问一个错误的控制器 訪问一个错误的方法 有些控制器和方法禁止訪问 以上訪问会提示错误信息 404 403 以上错误信息是不方便给外边用户看到的。 1. 安全隐患 2. 用户体验不好 错误信息在site/error这个地方定义的。如今我们要自己定义错误页面来显示我们的错…