Was sind Front-End-Programmierer, Back-End-Programmierer und Full-Stack-Programmierer? Sollte ich mich bei der Jobsuche für Front-End oder Back-End entscheiden? Warum gibt es in den USA so viele Full-Site-Programmierer? In diesem Artikel werden diese Fragen einzeln beantwortet, um sicherzustellen, dass Sie diese Konzepte klar verstehen!
Ursprüngliche Adresse: https://www.bilibili.com/video/BV1DV411B7v5/
Was ist Front-End-Entwicklung?
Einfach ausgedrückt besteht die Front-End-Entwicklung darin, die „Inhaltsanzeige“ auf der Webseite und die Interaktion mit Benutzern zu entwickeln.
Die „Inhaltsanzeige“ bezieht sich hier auf das, was Sie auf der Webseite sehen können, z Bilder, Texte und Videos, Zahlen und andere Informationen.
Die Interaktion mit dem Benutzer bezieht sich also darauf, dass der Benutzer Dateneingaben für die Website bereitstellt, indem er auf Schaltflächen klickt, Text eingibt und andere Aktionen auf der Seite ausführt. Anschließend reagiert das Frontend auf die Eingaben des Benutzers.
Um ein konkreteres Beispiel zu nennen: Wenn Sie unter meinem Artikel kommentieren, wird die Seite beispielsweise auf meinen Inhalt in der Hintergrunddatenbank reagieren die Anzahl der Kommentare.
Und zeigen Sie die Anzahl der Kommentare zum Artikel auf der Seite an, wie unten gezeigt.
Die in der Frontend-Entwicklung verwendeten Basistechnologien sind html
, css
und javascript
, die zur html
、css
和 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
Steuerung des Inhalts verwendet werden der Webseite
title
-Tag, der Video-Player entspricht einem video
-Tag; sein Avatar-Bild entspricht einem in einem Hyperlink-Tag verschachtelten >image -Tag; Der Text im Kommentar entspricht einem Tag vom Typ yt formatted-string
. Das yt sollte hier nur youtube enthalten, daher sollte dieses Tag youtube selbst sein. Die definierten Tags und dann der CSS-Code werden verwendet um das Erscheinungsbild und den Stil jedes anzuzeigenden HTML-Tags anzugeben, z. B. Länge und Breite, Position, Farbzentrierung oder Anzeigeattribute für verteilte Schriftarten usw. 🎜🎜Der CSS-Code wird auch vom Browser gelesen und in den Effekt gerendert, den Sie mit bloßem Auge sehen. Manchmal möchte PM die Größe und Farbe einer Schaltfläche auf der Seite optimieren, und diese Feinabstimmung wird von geändert der Front-End-Ingenieur; Diese Schaltfläche wird durch den entsprechenden CSS-Code implementiert. Der eigentliche Programmierteil in der Front-End-Entwicklung ist Javascript. Wie die Webseite mit dem Benutzer interagiert, wird alle durch Javascript implementiert Code, genau wie HTML-Code und CSS-Code Der Browser führt dasselbe aus, und der Javascript-Code auf der Seite wird ebenfalls vom Browser ausgeführt. 🎜🎜Fügen Sie hier einen Satz ein, Javascript hat nichts mit Java zu tun, die Eigenschaften der beiden sind sehr unterschiedlich, es ist wie in Indien Ganz anders als in Indonesien ist der Panda weit vom Roten Panda entfernt und der Leifeng ist weit von der Leifeng-Pagode entfernt. 🎜🎜Zurück zum Thema: Wenn Leute Programme schreiben, erfinden sie das Rad normalerweise nicht neu, egal welche Sprache sie verwenden. Stattdessen rufen sie die vorgefertigte Bibliothek der Sprache auf, um einige allgemeine Funktionen zu implementieren Entwicklungsprozess einfacher. 🎜🎜Für die Front-End-JavaScript-Entwicklung ist react
derzeit eine beliebte Bibliothek, die ich auch bei Front-End-Arbeiten verwende. Die React-Bibliothek kann nicht nur zum Implementieren von Interaktionslogik und Ereignisreaktionen mit Benutzern verwendet werden. Tatsächlich können fast alle HTML-Codes auf der Seite durch React generiert werden. Diese Methode zum Generieren von HTML-Codes für das Rendern auf der Browserseite wird als Clientseitiges Rendering
, das Gegenteil ist Serviceseitiges Rendering
, bei dem es sich um den vollständigen HTML-Code der Seite handelt. Alles wird vom Front-End-Server der Website generiert dann an den Browser gesendet. 🎜Der Front-End-Server wird hier übrigens erwähnt, die Logik des Front-End-Servers kann über jede Programmiersprache wie Java, Javascript, PHP oder sogar Scheme implementiert werden Mit dem http-Protokoll haben Sowohl das clientseitige Rendering
als auch das Silver-seitige Rendering
ihre eigenen Vor- und Nachteile. Daher müssen Sie bei der Entwicklung von Webseiten die am besten geeignete auswählen ;client-side rendering
和 silver-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有thinkphp
和laravel
(插一句“PHP是世界上最好的语言”),基于 javascript 有 express
,基于 java 的 Web Framework有Spring Boot
和 Drop wizard
,以及基于python有flask
这几个Web Framework,每一个都有大厂在使用,不同的公司具体选择哪种框架,一定程度上,是看创始的程序员们最喜欢哪种语言,哪种框架用的最6,还有一些后端服务的框架,可以支持你用多种编程语言来开发,而不是绑在一门特定的语言上。
说了这么多的语言和框架,如果你想去某个公司做后端开发,一定需要对他们使用的语言和框架很熟练吗?
一般来讲不会,我找工作的时候看到岗位描述,里面有我不会的语言和框架,也无所谓,照样投,对公司来说你会其中一部分就够了,很多东西都是在工作里面学的,而且事实上,两周内上手一门新的编程语言,是一名职业程序员的基本素养,除了开发和维护后端服务器,后端工程师还会花大量的时间,在数据库上,不管是为你的后端服务创建数据库,还是为数据库的性能调优或者是分析里面的数据。
目前最常用到的数据库是关系型数据库,比如在工业界被广泛使用的MySQL
和PostgreSQL
vue
, die in China häufiger verwendet wird. Wenn Sie den HTML-Code von Station B überprüfen Ich werde feststellen, dass das vordere Ende von Station B es auch verwendet. Bei vue angekommen. 🎜🎜Die oben genannten sind einige gängige Technologien für die Front-End-Entwicklung. Die Einführung in die Arbeitsprinzipien von HTML, Browsern und Front-End-Servern erfolgt in der Schule hauptsächlich im Selbststudium. . 🎜🎜 Wenn Sie an Javascript- und React-Learning-Kursen interessiert sind, können Sie zum „Javascript-Tutorial für Fortgeschrittene gehen „Oh! 🎜🎜Nachdem wir über das Front-End gesprochen haben, sprechen wir über das Back-End. 🎜🎜Was ist Backend-Entwicklung? 🎜🎜Ein erheblicher Teil der Back-End-Entwicklungsarbeit besteht in der Entwicklung von Datenzugriffsdiensten, sodass das Front-End Daten hinzufügen, löschen, überprüfen und ändern kann, indem es den Back-End-Dienst, der den Kern darstellt, aufruft Das hört jeder oft, um die Anforderungsantwort des Front-End-Benutzers zu erkennen. 🎜🎜Wenn Sie sich beispielsweise auf einer großen Website registrieren, ruft das Frontend der Website das Backend auf, um Ihre Benutzerinformationen in die Datenbank zu schreiben. Ein Backend-Dienst kann nicht nur vom Frontend aufgerufen werden, sondern kann auch von mobilen Apps und anderen Backend-Diensten aufgerufen werden. 🎜🎜In analoger Weise muss das Front-End häufig den Back-End-Dienst aufrufen, um die Antwort auf die Benutzeranforderung abzuschließen, und der Back-End-Dienst muss häufig die Datenbank abfragen. 🎜🎜Um die Antwort auf die Front-End-Anfrage zu vervollständigen, können Sie sehen, dass die Gemeinsamkeit zwischen dem Front-End und dem Back-End darin besteht, auf die Anfrage des Front-End-Kunden zu reagieren, indem ein Dienst dahinter aufgerufen wird Die Arbeit des Back-End-Ingenieurs ist sehr breit gefächert. Einige der häufigsten Aufgaben sind das Entwerfen der API des Back-End-Dienstes, das Entwerfen des Architekturdiagramms des Back-End-Dienstes und das Entwerfen der Datenbank Back-End-Dienst und Code zur Implementierung der Geschäftslogik des Back-End-Dienstes. Gleichzeitig müssen Sie auch sicherstellen, dass Sie Back-End-Dienste hochverfügbar
entwerfen Auch wenn der Datenverkehr sehr groß ist und die Reaktionszeit auf Kundenanfragen sehr kurz ist oder der Durchsatz hoch ist und die Anfragen pro Zeiteinheit verarbeitet werden können, kommt es nicht zu einem Rückgang. 🎜🎜Wenn Sie einen neuen Back-End-Dienst von Grund auf aufbauen möchten, erfordert der gesamte Prozess viel Systemdesign. Das heißt, wenn Sie den Back-End-Ingenieur interviewen, müssen Sie den Systemdesign-Test absolvieren wichtig, um die Anhäufung von täglichem Wissen zu testen. 🎜🎜Mit welchen Technologien und Tools müssen sich Back-End-Ingenieure normalerweise befassen? 🎜🎜Der erste ist der Back-End-Server, auch der Back-End-Server kann von fast jeder Programmiersprache implementiert werden, solange die korrekten Daten an den Aufrufer zurückgegeben werden können. 🎜🎜Mainstream-Programmiersprachen verfügen auch über ihre eigenen beliebten Web Frameworks, bei denen es sich um vorgefertigte Räder handelt, die jedem helfen, auf den Schultern des Frameworks zu stehen und schnell einen Back-End-Dienst zu implementieren. Zum Beispiel hat das PHP-basierte Web Framework thinkphp und <code>laravel
(fügen Sie einen Satz ein „PHP ist die weltweit beliebteste gute Sprache), auf Basis von Javascript gibt es express
, auf Basis von Java beinhaltet das Web Framework Spring Boot
und Drop Wizard
und basierend auf Java verfügt Python über mehrere Web-Frameworks wie flask
, die jeweils von großen Herstellern verwendet werden. Welches Framework verschiedene Unternehmen wählen, hängt in gewissem Maße davon ab Sprache, die den Gründerprogrammierern am besten gefällt. Welches Framework wird am häufigsten verwendet? Es gibt auch einige Back-End-Service-Frameworks, die Sie bei der Entwicklung in mehreren Programmiersprachen unterstützen können, anstatt an eine bestimmte Sprache gebunden zu sein. 🎜🎜 Wenn Sie bei so vielen Sprachen und Frameworks für ein bestimmtes Unternehmen mit der Backend-Entwicklung arbeiten möchten, müssen Sie dann die von ihnen verwendeten Sprachen und Frameworks beherrschen? 🎜🎜 Im Allgemeinen nein. Als ich auf der Suche nach einem Job war, sah ich die Stellenbeschreibung, die Sprachen und Rahmenbedingungen enthielt, die ich nicht kannte. Ich habe mich einfach für das Unternehmen beworben. Es reicht aus, dass Sie einiges davon kennen. Das Erlernen einer neuen Programmiersprache innerhalb von zwei Wochen ist neben der Entwicklung und Wartung von Back-End-Servern tatsächlich die Grundvoraussetzung , Back-End-Ingenieure verbringen auch viel Zeit mit der Datenbank, sei es beim Erstellen einer Datenbank für Ihren Back-End-Dienst, beim Optimieren der Leistung der Datenbank oder beim Analysieren der darin enthaltenen Daten. 🎜🎜Die derzeit am häufigsten verwendeten Datenbanken sind relationale Datenbanken wie MySQL
und PostgreSQL
, die in der Branche weit verbreitet sind. 🎜Wie man eine relationale Datenbank entwirft, wie man SQL-Abfragen verwendet, um auf Daten zuzugreifen, und wie man sich auf den Index verlässt, um die Datenabfrage zu beschleunigen. Diese Wissenspunkte werden auch in Schuldatenbankkursen eingeführt, aber sie werden selten in Schuldatenbankkursen eingeführt. In den letzten Jahren wurden jedoch immer mehr nicht-relationale Datenbanken verwendet, die von allen oft als No-SQL-Datenbanken bezeichnet werden.
Zum Beispiel MongoDB
basierend auf JSON-Dokumenten, wie LevelDB
basierend auf LSM-Baum
, sind diese Datenbanken möglicherweise besser als relationale Datenbanken Geeignet für Ihre Geschäftsanforderungen. MongoDB
,比如基于LSM tree
的LevelDB
,这些数据库在某些特定的情况下,可能会比关系型数据库更适合你的业务需求,
大家一般也是在工作中去学习他的原理和特性,数据库往往是一个后端系统里面的性能瓶颈,也就是最慢的一环,因此后端工程师在进行系统设计的时候,会用很多办法来使得后端的性能,比如响应的时间,尽量的少被数据库拖后腿,比如使用MemCached这种缓存系统,来加速读取数据的速度,比如用Kafaka把数据写入异步化,提升后端写数据的性能,后端开发就大致介绍到这里。
后端开发里的其他重要环节,比如性能监视,比如 DevOps
Andere wichtige Aspekte in der Back-End-Entwicklung, wie z. B. die Leistungsüberwachung, wie z. B. DevOps
, werden hier übersprungen! Reden wir über Full Stack
Full Stack bedeutet, alles zu tun Sie müssen in der Lage sein, eine vollständige und funktionierende Web-App selbst zu erstellen und bereitzustellen, das Front-End und das Back-End unabhängig zu schreiben. Endcode kann den Server und die Designdatenbank konfigurieren.
Seit ich angefangen habe zu arbeiten, verbringe ich etwa 80 % meiner Zeit im Backend. Viele Freunde haben gefragt Welches Studienfach hat für mich bessere Entwicklungsaussichten, Front-End oder Back-End? Welches Studienfach ist für Mädchen besser geeignet? Hier empfehle ich jedem, diesen Artikel zu lesen: „Wo soll ich anfangen, Programmieren von Grund auf zu lernen?“ Empfohlene Programmiersprachen, die im Jahr 2021 zum Lernen geeignet sind
》Der Unterschied zwischen der Wahl von Front-End oder Back-End besteht nur in der verwendeten Technologie und den berücksichtigten Aspekten. Das Front-End berücksichtigt hauptsächlich die Benutzererfahrung und das Back-End. Ende berücksichtigt hauptsächlich die zugrunde liegende Geschäftslogik, die Plattformstabilität und die Leistung. Das Wichtigste ist, was Sie gerne tun, was die Benutzer sehen können, oder ob Sie die Teile berücksichtigen, die die Benutzer nicht sehen können Sehen Sie? Viele Leute denken, dass Mädchen eine bessere Ästhetik haben und für Front-End-Arbeiten geeignet sind, aber es gibt einheitliche Schnittstellenspezifikationen in der Bibliothek. Alle vorhandenen Komponenten werden direkt aufgerufen Wie und Inhaltssortierung werden nicht von mir, sondern von PM- und UI-Designern entschieden. Meine Ästhetik ist definitiv nicht so professionell wie die eines Designers. Auch wenn Sie sich für eine bestimmte Richtung entscheiden, erfahren Sie tatsächlich, was andere bei der Arbeit tun, was Ihnen gefällt und was Sie tun möchten. Wenn Sie in den Front-End- oder Backend-Bereich wechseln möchten, können Sie sich die Unternehmen ansehen in der Gruppe Wenn Sie die Möglichkeit haben, können Sie auch selbstständig lernen und nach anderen Möglichkeiten suchen. Ihre bisherige Berufserfahrung wird nicht umsonst sein, und das Unternehmen freut sich immer über Mitarbeiter mit mehr Fähigkeiten! 🎜🎜Es gibt mehr Stellen für Full-Stack-Programmierer. Dies liegt möglicherweise daran, dass die Fähigkeiten relativ umfassend sind. Die Einstellung von Personen mit zwei technischen Positionen ist für Arbeitssuchende erforderlich Es ist wahrscheinlicher, dass sie eingestellt werden, daher entscheiden sich im Grunde alle für Full-Stack-Programmierer. Basierend auf ihren persönlichen Interessen und Fachkenntnissen entwickeln sie sich langsam zum Haupt-Front-End, zum Haupt-Back-End für die gesamte Site oder zum Management . 🎜Das obige ist der detaillierte Inhalt vonWas verstehen Programmierer unter Front-End, Back-End und Full Stack?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!