Comment auto-étudier la pile complète du Web : nous devons d'abord comprendre l'architecture à trois couches du processus de développement Web, à savoir la couche de présentation, la couche de logique métier et la couche de base de données ; pour maîtriser la gestion des services, la plate-forme d'hébergement cloud, le serveur Web, la base de données, le système de journalisation et d'autres connaissances.
L'industrie Internet a toujours été en vogue aujourd'hui, et je pense qu'elle le restera à l'avenir. Par conséquent, de nombreux amis ont commencé à envisager d'apprendre sur Internet. Certains choisissent la formation et d'autres choisissent l'auto-apprentissage. Mais de nombreux amis peuvent se sentir confus lorsqu’il s’agit d’apprendre la technologie Internet. Il y a quelques jours, un ami m'a demandé comment apprendre tout seul le Web. Ensuite, je parlerai avec vous de la façon d’apprendre par vous-même la pile complète du Web.
(Tutoriel recommandé : tutoriel HTML)
Tout d'abord, vous devez comprendre ce qu'est le web full stack et quelles connaissances vous devez apprendre pour connaître le web pile complète.
Deuxièmement, vous devez savoir que l'auto-apprentissage de la pile complète du Web n'est pas une affaire simple. Cela nécessite que vous ayez suffisamment de persévérance pour persister, et que vous ayez également la capacité d'apprendre efficacement pour pouvoir apprendre. pour bien l'apprendre dans les plus brefs délais.
Un processus de développement Web a une architecture à trois niveaux :
Couche de présentation : La couche de présentation est également appelée la partie frontale du site Web. Il gère les problèmes liés à l’interface utilisateur du site Web.
Couche de logique métier : La couche de logique métier est également appelée couche back-end du site Web et est responsable de la validation des données et du traitement dynamique.
Couche de base de données : Enfin, il y a la couche d'accès aux données, qui utilise des API pour fournir des données pour le site Web.
Les trois couches ci-dessus sont collectivement appelées développement Web full-stack.
En tant qu'ingénieur Web full-stack, vous devez connaître les connaissances suivantes :
1. Gestion/exploitation et maintenance des services
Un développeur doit comprendre les connaissances de base en gestion de serveur. . Y compris, mais sans s'y limiter, les connaissances suivantes :
Se connecter à distance au serveur via un terminal ou un autre environnement sans interface utilisateur
Être capable d'écrire des scripts shell de base
Utilisateurs et groupes sur le serveur Gestion des groupes
Gérer les programmes serveur comme Apache et Nginx pour fournir des applications
Gestion des pare-feu et gestion des autorisations
Installer et mettre à jour les logiciels
En plus de ces compétences de base, les développeurs doivent savoir comment créer un bon environnement de développement sain et séparé dans Docker ou un environnement de machine virtuelle comme Vagrant. Si vous n'êtes pas familier avec toutes les techniques ci-dessus, alors je dois vous recommander un livre génial, cliquez ici pour l'acheter.
Les développeurs doivent maîtriser très bien les systèmes de contrôle de version afin de développer des sauvegardes de production fiables et des bases de code partageables et collaboratives capables de suivre les modifications du code au fil du temps. De nos jours, aucun flux de travail de développeur n'est totalement indépendant du contrôle de version. Nous avons un excellent didacticiel vidéo sur le contrôle de version, achetez-le ici.
2. Cloud
Différent de la gestion réelle ou des serveurs virtuels, un développeur peut avoir besoin de connaître les plateformes d'hébergement cloud, telles que Heroku, Google Cloud, Azure, AWS, etc.
Une chose qu'il faut dire est que les plateformes et les outils sont plus une question de battage médiatique que de praticité. Même s'il existe de nombreuses plateformes et outils qui ne fonctionnent pas aussi bien qu'annoncé, il sera utile à long terme de comprendre les services dont tout le monde parle : les clients peuvent demander à changer de fournisseur à tout moment. Heureusement, nous disposons de ces guides définitifs sur le déploiement de l'hébergement cloud.
3. Backend
Dans le backend, en plus de savoir quel langage choisir, comme PHP et de nombreux frameworks et CMS, un développeur full-stack doit être familier avec :
Les serveurs Web, tels que Nginx et Apache, sont étroitement liés à l'exploitation et à la maintenance
Malheureusement, NodeJS peut déjà compiler JS, CSS et d'autres fichiers de ressources dans des fichiers statiques qui peuvent être facilement mis en cache. Heureusement, il existe des moyens d'éviter d'apprendre NodeJS, et il est également possible d'utiliser PHP
PHP (http://www.ujiuye.com/zt/php/) des outils de gestion de packages comme Composer peuvent être utilisés dans un environnement de développement moderne
Une bonne conception d'API est indispensable puisque la plupart des nouvelles pages Web sont basées sur des API et ne servent que le front-end (décrit en détail ci-dessous)
ElasticSearch (introduction ici) Le moteur est très important pour améliorer les performances du site Web
Cronjobs et travail back-end, utiliser des bibliothèques telles que Gearman ou Crunz
En savoir plus sur la mise en cache, Varnish, Redis et d'autres outils géniaux peuvent être fragmentés Stocker les données afin qu'un projet puisse être déployé sur plusieurs hôtes
4. Base de données
La base de données est une partie distincte, car à part une bonne compréhension nous n'aurons fondamentalement pas de changements structurels En plus de Pour le schéma de données d'une base de données relationnelle (MySQL ou PostgreSQL), un ingénieur full-stack doit avoir une certaine connaissance des bases de données non relationnelles telles que MongoDB, Redis ou Cassandra, sans parler des bases de données graphiques comme Neo4j.
Malheureusement, tout cela se trouve sur le serveur et est sous le contrôle de l'ingénieur full stack. Il existe également plusieurs solutions distantes similaires à Mong, telles que RestDB ou Firebase, propriété de Google.
5. Front-end
Si vous voulez savoir à quoi ressemble un graphe de connaissances front-end normal, vous pouvez lire cet excellent article dans la section JavaScript. Mais en tant qu'ingénieur full-stack, vous devez comprendre
NodeJS et NPM
Yarn
Préprocesseurs et compilateurs (tels que Babel), utilisés pour compiler Typescript, ES6, LESS, SCSS, SaSS
Outils de build, tels que Grunt et Gulp
Frameworks, tels que VueJS, React, Angular
Outils de packaging de modules, tels que Webpack, Browserify, Rollup
6 Design
En termes de conception, les développeurs full-stack doivent comprendre comment se transformer. un produit dans Avant le code HTML et CSS réellement utilisable, dessinez un diagramme prototype. Ensuite, vous pouvez utiliser JS pour écrire des interactions, et le backend peut également utiliser de fausses données pour simuler l'environnement de production. Ce n’est que lorsque ce dessin de prototype critique sera terminé et que la conception de l’expérience utilisateur et la conception de l’interface seront prêtes que le véritable développement pourra commencer. C'est en soi une tâche difficile et nécessite un ensemble d'outils spéciaux :
Photoshop et Illustrator ou certains outils open source comme Gimp/Inkscape. Visitez la chaîne Design pour en savoir plus sur ces outils.
Un éditeur sympa et rapide, tel qu'Atom ou Sublime Text (voici dix plug-ins sublimes utiles)
Le sélecteur d'arrière-plan et le sélecteur de couleur comme Subtlepatterns peuvent être associés à certaines couleurs
Système de grille CSS
Toutes les connaissances que le front-end a besoin de connaître et simulation de données JS mentionnées ci-dessus
Publiez le prototype en ligne pour que tout le monde puisse le parcourir et le donner. Pour vos commentaires, Ngrok est très facile à utiliser
7. Système de journalisation
Afin de surveiller efficacement la santé de l'application, les développeurs full-stack doivent être capables de suivre les erreurs, de trouver les journaux d'erreurs et d'en extraire des informations utiles. eux des informations. Les développeurs full-stack doivent également prédire certaines tendances à partir des journaux, telles que l'augmentation de l'utilisation du processeur ou des E/S, au cas où l'application se bloquerait sans savoir quand. Cette partie est également liée à l'exploitation et à la maintenance, mais elle nécessite des compétences particulières :
Recommandez un excellent article sur la pile ELK, qui vous aidera à comprendre les connaissances requises pour construire un système de journalisation. Il comprend ElasticSearch pour rechercher des journaux, Logstash pour collecter des journaux, Kibana pour afficher des journaux avec de superbes graphiques et même Logz.io pour fournir des solutions.
8. Terminal mobile
Enfin, il est temps pour nous de parler du terminal mobile. À mesure que les webviews sur iOS et Android deviennent plus efficaces et avec l’avènement des PWA (Progressive Web Apps), les applications natives deviennent obsolètes car trop complexes à développer. Par conséquent, un ingénieur full-stack doit comprendre PWA ou React Native, ou comme NativeScript, Tabris, Cordova, Phonegap ou d'autres vues Web pour permettre aux applications clientes d'appeler des API et de s'exécuter.
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!