搜索
首页常见问题程序员前端、后端、全栈是什么意思

前端程序员,后端程序员,全栈程序员分别都是什么?找工作到底选前端还是后端?为什么美国很多都是全站程序员呢?带着这些疑问,本文来给大家一一解答,保证让你对这些概念搞的明明白白!

原文地址:https://www.bilibili.com/video/BV1DV411B7v5/

首先什么是前端开发?

简单来说,前端开发就是开发网页上的“内容展示”,和与用户的交互;

这里的“内容展示”:指的是你在网页上能看到的,图片文字、视频、数字等信息。

那么与用户的交互指的就是,用户在页面上通过点击按钮、输入文字等动作对网站提供数据输入,然后前端对用户的输入进行响应。

比如更新页面上的内容,举一个更具体的例子就是,如果你在我的文章下面进行评论,那么页面对你评论这个动作就会做出响应,比如会在后台数据库里面,把我的评论量加一。

并且在页面上显示文章评论后的数量等,如下图。

程序员前端、后端、全栈是什么意思

前端开发用到的基础技术就是 htmlcss javascript,分别用来控制网页里面的内容视觉效果用户交互

下面分别简单介绍一下。

html 并不是一门编程语言,他是一种用来定义结构化数据的标记语言,你在浏览器上看到的网页,其实就对应一个 html 文件,这个文件里装的就是 html 代码,而浏览器的职责之一,就是通过你输入的网址,从网站上下载对应的 html 代码,并且把代码渲染成你肉眼看到的样子。

那么,前端工程师的工作内容之一,就是编写 html代码,或者使用一些技术来为页面动态的生成 html 代码,任何一个网页,你都可以通过浏览器的开发者工具,看到他对应的 html 代码。

如果你仔细查看一段 html 代码,你会发现他其实就是由一堆各种类型的尖括号标签组合嵌套而成的,比如某视频在 youtube 页面上,视频的标题,对应于代码里面一个title类型的标签,那视频的播放器就对应于一个video类型的标签;其头像图片,对应于一个嵌套在超链接标签里的 image 标签;而评论里的文字又对应于一个 yt formatted-string 类型的标签,这里的 yt 应该只带的是youtube,那么这个标签,应该就是 youtube 自定义的标签,然后 css 的代码,则是用来指定每个 html 的标签,以什么样的外观和风格来展示,比如长宽、位置、颜色居中还是分散字体显示属性等等。

css的代码也是被浏览器读入,并且渲染成你肉眼所看到的效果,有时候pm会想把页面里面一个按钮的大小和颜色进行微调,而这个微调就是由前端工程师去改动;这个按钮对应的 css代码来实现的,前端开发中真正编程的部分是javascript,网页如何与用户交互,如何与后端交互,都是通过 javascript 的代码实现的,就像html代码和 css代码是被浏览器执行一样,页面里面的 javascript 代码也是交给浏览器来执行。

这里插一句,javascrip与java并没有什么关系,两者之间的特性差的很远,这就好比是印度跟印度尼西亚差的很远,熊猫跟小熊猫差的很远,雷峰和雷峰塔差的很远。

说回正题,大家在写程序的时候,不管用什么语言,通常都不会重复的造轮子,而是会调用该语言现成的 library来实现一些常见的功能,让开发过程更加高效。

对于前端javascript的开发,react是目前比较流行的library,也是我在工作中,做前端的时候会用到的。react这个library,不仅可以用来实现与用户的交互逻辑和事件响应,事实上页面上几乎全部的 html 代码,都可以通过 react来生成,这种在浏览器端生成 html代码进行渲染的方式,叫做 client-side rendering,与之相反的就是 service-side rendering,也就是页面完整的 html代码,是全部由网站的前端服务器生成好了之后,再发给浏览器的。

这里提到了前端服务器,就顺便说一下,前端服务器的逻辑,可以通过任何编程语言来实现,比如 java、javascript、php 甚至是Scheme,只要服务器的行为遵守 http 的协议就可以了,client-side renderingsilver-side rendering两种方式各有优缺点,因此前段工程是在开发网页的时候,需要结合实际情况,选择最合适的页面渲染方式;

除了 react,另外一种比较流行的 javascript library就是vue,在国内用的比较多,如果你去查看 b 站的html代码,你会发现 b 站的前端也用到了vue。

以上介绍的这些,就是前端开发的一些常规技术,html、浏览器和前端服务器的工作原理,一般会在学校里面的《计算机网络》课里面介绍,css、javascript、react就主要靠自学了。

 javascript和react学习课程感兴趣的可以去看《javascript高级教程》哦!

讲完了前端,现在来讲讲后端。

什么是后端开发呢?

相当一部分的后端开发工作,就是开发数据访问服务,使得前端可以通过调用后端的服务,来对数据进行增删查改,也就是大家经常听到的 curd,从而实现前端对用户的请求响应。

比如你在一个大型网站注册的时候,这个网站的前端就会调用他的后端,把你的用户信息写入数据库。一个后端服务其实不局限于只被前端调用,他还可以被 mobile app 调用,还可以被其他的后端服务调用。

类比一下,前端往往需要通过调用后端服务,来完成对用户的请求响应,而后端服务往往需要通过查询数据库。

来完成对前端请求的响应,从这个类比你可以看出,前端和后端的共性,都是通过调用一个比自己靠后的服务,来对前方客户的请求进行响应,后端工程师的工作范畴很广,几个比较常见的就是,设计后端服务的api,设计后端服务的架构图,设计后端服务的数据库且代码实现后端服务的业务逻辑,同时你还需要保证你设计的后端服务,highly available,也就是访问量很大的时候仍然不宕机,并且对客户请求的响应时间很短,或者说吞吐量高,单位时间内能处理的请求数量多。

如果要从头搭建一个新的后端服务,那么整个过程需要进行大量的系统设计,也就是后端工程师面试的时候,会考到了System Design,做System Design非常考察平时知识的积累。

那么后端工程师平时一般需要与哪些技术和工具打交道呢?

首先就是后端服务器了,和前端服务器一样,后端服务器也可以由几乎任何一种编程语言实现,只要能把正确的数据,返回给调用者就可以了。

主流的编程语言,也有各自流行的 Web Framework,也就是现成的轮子,来帮助大家站在框架的肩膀上,快速的实现一个后端服务,比如基于 PHP的 Web Framework有thinkphplaravel(插一句“PHP是世界上最好的语言”),基于 javascript 有 express,基于 java 的 Web Framework有Spring BootDrop wizard,以及基于python有flask这几个Web Framework,每一个都有大厂在使用,不同的公司具体选择哪种框架,一定程度上,是看创始的程序员们最喜欢哪种语言,哪种框架用的最6,还有一些后端服务的框架,可以支持你用多种编程语言来开发,而不是绑在一门特定的语言上。

说了这么多的语言和框架,如果你想去某个公司做后端开发,一定需要对他们使用的语言和框架很熟练吗?

一般来讲不会,我找工作的时候看到岗位描述,里面有我不会的语言和框架,也无所谓,照样投,对公司来说你会其中一部分就够了,很多东西都是在工作里面学的,而且事实上,两周内上手一门新的编程语言,是一名职业程序员的基本素养,除了开发和维护后端服务器,后端工程师还会花大量的时间,在数据库上,不管是为你的后端服务创建数据库,还是为数据库的性能调优或者是分析里面的数据。

目前最常用到的数据库是关系型数据库,比如在工业界被广泛使用的MySQLPostgreSQL

如何设计一个关系型数据库,如何使用SQL query来访问数据,以及如何依靠 index 来为数据查询加速,这些知识点,在学校的数据库课程里面也会介绍的,然而学校数据库课程里面介绍的比较少,但是近年来用的又越来越多的是非关系型的数据库,也就是大家常说的No-SQL数据库。

比如基于JSON文档的MongoDB,比如基于LSM treeLevelDB,这些数据库在某些特定的情况下,可能会比关系型数据库更适合你的业务需求,

大家一般也是在工作中去学习他的原理和特性,数据库往往是一个后端系统里面的性能瓶颈,也就是最慢的一环,因此后端工程师在进行系统设计的时候,会用很多办法来使得后端的性能,比如响应的时间,尽量的少被数据库拖后腿,比如使用MemCached这种缓存系统,来加速读取数据的速度,比如用Kafaka把数据写入异步化,提升后端写数据的性能,后端开发就大致介绍到这里。

后端开发里的其他重要环节,比如性能监视,比如 DevOps 这里就略过不讲啦!

下面来讲讲全栈全栈就是全干,要能够自己构建和部署一个完整的,可以工作的Web App,能够独立编写前端,后端代码能够配置服务器,还能够设计数据库。

我参加工作以来前端和后端都做,大概80%时间都是在做后端,对于要找程序员工作的你,有很多小伙伴问我,前端和后端哪个的发展前景好转,专业选哪个比较容易入行,或者女孩子适合做哪个?这里我推荐大家看看这篇文章《零基础学编程应该从哪入手?推荐2021年适合学习的编程语言

选前端还是后端区别只在于使用的技术和考虑的方面不同,前端主要考虑用户体验,后端主要考虑底层业务逻辑,平台稳定和性能,最主要是看你喜欢做什么,你是喜欢做用户看得见的部分,还是去考虑用户看不见的部分呢?

很多人觉得女生审美好适合做前端,可是公司里面有统一的界面规格,做什么都直接调用,library 里面现存的 component,按钮字体边框长啥样,内容排序都不是我决定是 pm 和 ui设计师决定,我的审美也肯定没有设计师专业。

最后即使你选择了某一个方向,你在工作中也会实际了解到其他是做什么的,自己喜欢什么想做什么,如果你想转前端或者是后端,可以看看组里公司里有没有机会,也可以自学寻找其他的机会,你之前的工作经验不会白费,公司也总是喜欢技能比较多的员工嘛!

全栈程序员岗位比较多,可能是因为技术比较全面,花一份工资请会两个岗位技术的人,对于求职者来讲,全栈程序员有几年工作经验的会高的更多,所以大家基本上都冲着全栈程序员去了,工作后再根据个人兴趣和擅长的领域,慢慢发展成主前端,主后端全站或者是管理。

以上是程序员前端、后端、全栈是什么意思的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文转载于:bilibili。如有侵权,请联系admin@php.cn删除

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版