Maison  >  Article  >  Qu’entendent les programmeurs par front-end, back-end et full stack ?

Qu’entendent les programmeurs par front-end, back-end et full stack ?

藏色散人
藏色散人avant
2021-07-30 11:58:413757parcourir

Que sont les programmeurs front-end, les programmeurs back-end et les programmeurs full-stack ? Lorsque je recherche un emploi, dois-je choisir le front-end ou le back-end ? Pourquoi y a-t-il tant de programmeurs de sites complets aux États-Unis ? Avec ces questions, cet article y répondra une à une pour s’assurer que vous compreniez bien ces concepts !

Adresse originale : https://www.bilibili.com/video/BV1DV411B7v5/

Tout d'abord, qu'est-ce que le développement front-end ?

En termes simples, le développement front-end consiste à développer « l'affichage du contenu » sur la page Web et l'interaction avec les utilisateurs ;

L'« affichage du contenu » ici : fait référence à ce que vous pouvez voir sur la page Web, comme images, textes et vidéos, chiffres et autres informations.

Ainsi, l'interaction avec l'utilisateur fait référence à l'utilisateur qui fournit des données sur le site Web en cliquant sur des boutons, en saisissant du texte et d'autres actions sur la page, puis le front-end répond à la saisie de l'utilisateur.

Par exemple, mettre à jour le contenu de la page. Pour donner un exemple plus précis, si vous commentez sous mon article, la page répondra à votre commentaire. Par exemple, elle mettra à jour mon contenu dans la base de données en arrière-plan. le nombre de commentaires.

Et affichez le nombre de commentaires sur l'article sur la page, comme indiqué ci-dessous.

Qu’entendent les programmeurs par front-end, back-end et full stack ?

Les technologies de base utilisées dans le développement front-end sont html, css et javascript, qui sont utilisées pour 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 renderingcontrôler le contenu de la page Web respectivement

, 🎜effets visuels🎜 et 🎜interaction utilisateur🎜. 🎜🎜Ce qui suit est une brève introduction à chacun. 🎜🎜html n'est pas un langage de programmation, c'est un langage de balisage utilisé pour définir des données structurées. La page Web que vous voyez sur le navigateur correspond en fait à un fichier html, et ce fichier contient le code html. consiste à télécharger le code html correspondant à partir du site Web via l'URL que vous entrez et à restituer le code dans ce que vous voyez à l'œil nu. 🎜🎜Ainsi, l'une des tâches d'un ingénieur front-end consiste à écrire du code HTML ou à utiliser une technologie pour générer dynamiquement du code HTML pour la page. Pour n'importe quelle page Web, vous pouvez voir son code correspondant via les outils de développement du navigateur. code html. 🎜🎜Si vous regardez attentivement un morceau de code HTML, vous constaterez qu'il est en fait composé d'un ensemble de différents types de balises angulaires imbriquées ensemble. Par exemple, sur une page YouTube, le titre de la vidéo correspond à un. balise de type title, le lecteur vidéo correspond à une balise de type video ; son image d'avatar correspond à une balise image et ; le texte dans le commentaire correspond à une balise de type yt formatted-string. Le yt ici ne doit porter que youtube, donc cette balise doit être youtube lui-même. Les balises définies puis le code css sont utilisés pour spécifier. l'apparence et le style de chaque balise html à afficher, comme la longueur et la largeur, la position, le centrage des couleurs ou les attributs d'affichage des polices dispersées, etc. 🎜🎜Le code CSS est également lu par le navigateur et rendu dans l'effet que vous voyez à l'œil nu. Parfois, PM voudra affiner la taille et la couleur d'un bouton sur la page, et ce réglage est modifié par. l'ingénieur front-end ; Ce bouton est implémenté par le code CSS qui lui correspond. La véritable partie de programmation dans le développement front-end est le javascript. La façon dont la page Web interagit avec l'utilisateur et la façon dont elle interagit avec le backend sont toutes implémentées via javascript. Le code, tout comme le code html et le code css, est implémenté par le navigateur. Le navigateur exécute la même chose et le code javascript de la page est également exécuté par le navigateur. 🎜🎜Insérez une phrase ici, javascript n'a rien à voir avec java, les caractéristiques des deux sont très différentes, c'est comme l'Inde C'est très différent de l'Indonésie, le panda est loin du panda roux et le Leifeng est loin de la pagode Leifeng. 🎜🎜Pour en revenir au sujet, lorsque les gens écrivent des programmes, quel que soit le langage qu'ils utilisent, ils ne réinventent généralement pas la roue. Au lieu de cela, ils appellent la bibliothèque prête à l'emploi du langage pour implémenter certaines fonctions communes, créant ainsi le programme. processus de développement plus facile. 🎜🎜Pour le développement JavaScript front-end, react est actuellement une bibliothèque populaire, et c'est également ce que j'utilise lorsque je fais du travail front-end. La bibliothèque React peut non seulement être utilisée pour implémenter une logique d'interaction et une réponse aux événements avec les utilisateurs. En fait, presque tous les codes HTML de la page peuvent être générés par React. Cette méthode de génération de codes HTML pour le rendu côté navigateur est appelée rendu côté client, l'opposé est le <code>rendu côté service, qui est le code html complet de la page. Tout est généré par le serveur frontal du site Web, et puis envoyé au navigateur. 🎜

Le serveur front-end est mentionné ici. D'ailleurs, la logique du serveur front-end peut être implémentée via n'importe quel langage de programmation, tel que java, javascript, php ou même Scheme. avec le protocole http, le le rendu côté client et le le rendu côté argent ont leurs propres avantages et inconvénients. Par conséquent, lors du développement de pages Web au début du projet, vous devez choisir la méthode de rendu de page la plus appropriée en fonction de la situation réelle. ;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

En plus de réagir, une autre bibliothèque javascript populaire est vue, qui est largement utilisée en Chine si vous vérifiez le html. code de la station b, vous constaterez que le front end de la station b l'utilise également. Arrivé à vue. 🎜🎜Ci-dessus sont quelques technologies courantes pour le développement front-end. Les principes de fonctionnement du HTML, des navigateurs et des serveurs front-end sont généralement introduits dans le cours « Réseau informatique » à l'école. CSS, JavaScript et React sont principalement auto-apprenants. . 🎜🎜 Si vous êtes intéressé par les cours d'apprentissage Javascript et React, vous pouvez vous rendre sur le "tutoriel avancé Javascript "oh ! 🎜🎜Après avoir parlé du front-end, parlons du back-end. 🎜🎜Qu'est-ce que le développement backend ? 🎜🎜Une partie considérable du travail de développement back-end consiste à développer des services d'accès aux données, afin que le front-end puisse ajouter, supprimer, vérifier et modifier des données en appelant le service back-end, qui est le caillé que tout le monde entend souvent, afin de réaliser la réponse à la demande de l'utilisateur frontal. 🎜🎜Par exemple, lorsque vous vous inscrivez sur un grand site Web, le front-end du site Web appellera son back-end pour écrire vos informations utilisateur dans la base de données. Un service backend ne se limite pas à être appelé uniquement par le front-end, il peut également être appelé par des applications mobiles et d'autres services backend. 🎜🎜Par analogie, le front-end a souvent besoin d'appeler le service back-end pour compléter la réponse à la demande de l'utilisateur, et le service back-end doit souvent interroger la base de données. 🎜🎜Pour compléter la réponse à la demande du front-end. A partir de cette analogie, vous pouvez voir que le point commun entre le front-end et le back-end est de répondre à la demande du client front-end en appelant un service derrière. Le travail de l'ingénieur back-end La portée est très large. Certaines des plus courantes consistent à concevoir l'API du service back-end, à concevoir le schéma d'architecture du service back-end, à concevoir la base de données du service back-end. service back-end et code pour implémenter la logique métier du service back-end. Dans le même temps, vous devez également vous assurer que vous concevez des services back-end, hautement disponibles, c'est-à-dire qu'ils sont disponibles. ne diminuez pas même lorsque le trafic est très important et que le temps de réponse aux demandes des clients est très court, ou que le débit est élevé et que les demandes peuvent être traitées par unité de temps en grande quantité. 🎜🎜Si vous souhaitez créer un nouveau service back-end à partir de zéro, l'ensemble du processus nécessite beaucoup de conception de système. Autrement dit, lors de l'entretien avec l'ingénieur back-end, vous passerez le test de conception de système. important de tester l’accumulation des connaissances quotidiennes. 🎜🎜Alors, à quels technologies et outils les ingénieurs back-end doivent-ils généralement faire face ? 🎜🎜Le premier est le serveur back-end. Comme le serveur front-end, le serveur back-end peut également être implémenté par presque n'importe quel langage de programmation, à condition que les données correctes puissent être renvoyées à l'appelant. 🎜🎜Les langages de programmation grand public ont également leurs propres frameworks Web populaires, qui sont des roues prêtes à l'emploi pour aider tout le monde à s'appuyer sur le framework et à implémenter rapidement un service back-end. Par exemple, le framework Web basé sur PHP a. thinkphp et <code>laravel (insérer une phrase "PHP est le bon langage le plus populaire au monde"), basé sur javascript il existe express, basé sur java le framework Web comprend Spring Boot et Drop Wizard, et basé sur Java, Python dispose de plusieurs frameworks Web tels que flask, dont chacun est utilisé par les principaux fabricants. Le choix du framework par les différentes entreprises dépend, dans une certaine mesure, de celui-ci. langage que les programmeurs fondateurs aiment le plus. , quel framework est le plus utilisé ? Il existe également des frameworks de services back-end qui peuvent vous aider à développer dans plusieurs langages de programmation au lieu d'être lié à un langage spécifique. 🎜🎜 Cela dit, tant de langages et de frameworks, si vous souhaitez travailler pour une certaine entreprise pour faire du développement back-end, devez-vous maîtriser les langages et les frameworks qu'ils utilisent ? 🎜🎜 De manière générale, non. Lorsque je cherchais un emploi, j'ai vu la description de poste, et elle contenait des langages et des frameworks que je ne connaissais pas, j'ai quand même postulé pour l'entreprise. , il suffit que vous en connaissiez certaines. Beaucoup de choses sont identiques. L'apprendre au travail, et en fait, apprendre un nouveau langage de programmation en deux semaines est une qualité de base pour un programmeur professionnel en plus de développer et de maintenir en arrière-plan. serveurs finaux, les ingénieurs back-end consacrent également beaucoup de temps à la base de données, qu'il s'agisse de créer une base de données pour votre service back-end, d'ajuster les performances de la base de données ou d'analyser les données qu'elle contient. 🎜🎜Les bases de données les plus couramment utilisées à l'heure actuelle sont les bases de données relationnelles, telles que MySQL et PostgreSQL qui sont largement utilisées dans l'industrie. 🎜

Comment concevoir une base de données relationnelle, comment utiliser une requête SQL pour accéder aux données et comment s'appuyer sur l'index pour accélérer l'interrogation des données. Ces points de connaissances sont également introduits dans les cours de bases de données scolaires, mais ils sont rarement introduits dans les cours de bases de données scolaires. mais ces dernières années, de plus en plus de bases de données non relationnelles ont été utilisées, ce que tout le monde appelle souvent des bases de données No-SQL.

Par exemple, MongoDB basé sur des documents JSON, tels que LevelDB basé sur Arbre LSM, ces bases de données peuvent être meilleures que les bases de données relationnelles ne l'est plus adapté aux besoins de votre entreprise. MongoDB,比如基于LSM treeLevelDB,这些数据库在某些特定的情况下,可能会比关系型数据库更适合你的业务需求,

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

后端开发里的其他重要环节,比如性能监视,比如 DevOps

Tout le monde apprend généralement ses principes et ses caractéristiques au travail. La base de données est souvent le goulot d'étranglement des performances d'un système back-end, qui est le maillon le plus lent, donc les ingénieurs back-end utilisent de nombreuses méthodes lors de la conception du système. sera utilisé pour améliorer les performances du backend, comme le temps de réponse, et minimiser les gênes causées par la base de données. Par exemple, en utilisant un système de mise en cache tel que MemCached pour accélérer la lecture des données, comme en utilisant Kafaka pour stocker les données de manière asynchrone. pour améliorer les performances d'écriture des données back-end. Il s'agit d'une introduction approximative au développement back-end.

D'autres aspects importants du développement back-end, tels que le suivi des performances, comme DevOps , seront ignorés ici ! Parlons de full stack

,

full stack signifie tout faire Vous devez être capable de créer et de déployer vous-même une application Web complète et fonctionnelle, d'être capable d'écrire indépendamment le front-end et le back-end. le code final peut configurer le serveur et la base de données de conception.

Depuis que j'ai commencé à travailler, j'ai fait du front-end et du back-end. Environ 80 % de mon temps est consacré au back-end. Pour ceux d'entre vous qui recherchent un emploi de programmeur, de nombreux amis l'ont demandé. Moi, laquelle a les meilleures perspectives d'évolution, front-end ou back-end ? Quelle filière est la plus facile d'accès, ou laquelle est la plus adaptée aux filles ? Ici, je recommande à tout le monde de lire cet article "

Par où dois-je commencer à apprendre la programmation sans bases ?" Langages de programmation recommandés adaptés à l'apprentissage en 2021

La différence entre le choix du front-end ou du back-end réside uniquement dans la technologie utilisée et les aspects pris en compte. Le front-end prend principalement en compte l'expérience utilisateur, et le back-end. La fin considère principalement la logique métier sous-jacente, la stabilité et les performances de la plate-forme. La chose la plus importante est que cela dépend de ce que vous aimez faire. Aimez-vous faire les parties que les utilisateurs peuvent voir, ou considérez-vous les parties que les utilisateurs ne peuvent pas faire. Vous voyez ?

Beaucoup de gens pensent que les filles ont une meilleure esthétique et sont adaptées au travail front-end, mais il existe des spécifications d'interface unifiées dans l'entreprise. Tout est appelé directement les composants existants dans la bibliothèque, à quoi ressemblent la police des boutons et la bordure. comme, et le tri du contenu n'est pas décidé par moi mais par les concepteurs PM et UI. Mon esthétique n'est certainement pas aussi professionnelle que celle d'un designer.

Enfin, même si vous choisissez une certaine direction, vous apprendrez réellement ce que les autres font au travail, ce que vous aimez et voulez faire. Si vous souhaitez passer au front-end ou au back-end, vous pouvez regarder les entreprises. dans le groupe Si vous en avez l'opportunité, vous pouvez également étudier par vous-même et rechercher d'autres opportunités. Votre expérience professionnelle antérieure ne sera pas vaine et l'entreprise aime toujours les salariés plus compétents ! 🎜🎜Il y a plus de postes pour les programmeurs full-stack. Cela peut être dû au fait que les compétences sont relativement complètes. Il en coûte un salaire pour embaucher des personnes avec deux postes techniques. Pour les demandeurs d'emploi, des programmeurs full-stack ayant plusieurs années d'expérience professionnelle le seront. plus susceptibles d'être embauchés. Il y en a beaucoup, donc tout le monde opte pour des programmeurs full-stack. Après avoir travaillé, en fonction de leurs intérêts personnels et de leurs domaines d'expertise, ils évoluent lentement vers le site ou la gestion principale du front-end et du back-end. . 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer