Débuter avec le développement Web Fullstack
Ces jours-ci, moderne développement full stack est très populaire dans les petites agences et les grandes entreprises avec une équipe technique dédiée. Les ingénieurs Web à pile complète travaillent sur toute une pile de technologies Web y compris frontend, backend, et gestion de serveur.
Beaucoup de gens prétendent que le full stack ne fait que devenir un "homme à tout faire, un maître de tous". D'un certain point de vue, cela peut être vrai, mais les compétences sont aussi importantes que ce qui peut être accompli. De nombreux développeurs full stack offrent de la valeur car ils peuvent prendre une idée de la conception au lancement, et comprendre pleinement chaque étape du processus.
Si tu penses à aller le chemin de la pile complète, alors cet article est pour vous. J'expliquerai les exigences générales d'un développeur de stack complet, en quoi consiste le rôle et comment les compétences peuvent être utiles aux pigistes / sous-traitants qui souhaitent travailler directement pour des clients ou dans le cadre de leurs propres projets..
Principes fondamentaux de la pile
Le développement moderne de la pile complète a parcouru un long chemin, car la technologie Web a beaucoup évolué. Les conditions de pile complètes doivent être utilisées comme lignes directrices à prendre en compte. D'une manière générale, une "pile" représente les technologies fonctionnant à l'unisson faire fonctionner un site web. Cela signifie un code frontal, un code principal, un système de base de données et une plate-forme de serveur Web + système d'exploitation pour le serveur..
Le principe de base du développement intégral de la pile consiste à comprendre tous les aspects de la construction d'un site Web. Cela ne signifie pas une connaissance de la conception ou du travail UI / UX, bien que cela puisse grandement améliorer votre viabilité et la qualité de votre travail.
- Les principes fondamentaux de frontend comprennent HTML / CSS et JavaScript, le plus probable avec un cadre, comme Angular ou React.
- Pour un langage de base, vous voudrez choisir quelque chose qui peut être associé à un système de base de données.. PHP / MySQL est le plus commun et le plus facile à apprendre car il alimente de nombreux moteurs de CMS tels que WordPress. Également LAMPE pile est indéniablement la pile Web la plus populaire aujourd'hui.
- La connaissance du serveur peut être aussi simple ou aussi détaillée que vous le souhaitez. Les bases absolues seraient la connaissance d'un programme de serveur comme Apache couplé avec une base de données comme MySQL ou PostgreSQL.
- Vous pourriez aller encore plus loin en incluant des connaissances en matière d’installation de serveurs de messagerie ou d’outils de performance tels que memcached ou Varnish..
Un développeur à pile complète devrait toucher les trois domaines avec suffisamment de connaissances pour lancer un site web de manière indépendante, et sans beaucoup d'aide de quelqu'un d'autre.
Profondeur technique de la connaissance
Une grande question sur le développement de la pile complète est à quelle profondeur aller dans chaque zone. Un ingénieur full stack est-il vraiment un maître de quelque chose? Certains soutiennent que c'est possible, mais cela peut ne pas être le but d'aller plein pile.
La plupart des entreprises veulent embaucher des ingénieurs complets qui ont un peu de connaissances partout. Ces ingénieurs peuvent se spécialiser dans un domaine, mais ils peuvent remplir n'importe quel rôle en cas de besoin.
Les développeurs qui commencent tout juste dans cette voie devraient jouer dans tous les domaines d'apprentissage "juste assez" pour résoudre les problèmes à mesure qu'ils surgissent. Cela donne une interprétation du monde réel aux technologies pour voir comment différents problèmes s’appliquent à des projets réels..
Le plus grand avantage du codage complet de la pile est la possibilité de construisez vos propres applications sans travailler pour quelqu'un d'autre.
Si vous apprenez à chaque étape du processus de développement, vous pouvez tout faire vous-même. Vous n'avez pas besoin d'être un maître de PHP pour créer une application Laravel personnalisée. Et vous n'avez pas besoin d'être un guru JavaScript pour créer une navigation par liste déroulante flexible, en particulier maintenant que nous avons autant de code source ouvert disponible sur le Web..
Alors, à quelle profondeur devriez-vous aller dans l'un de ces domaines? Cela dépend entièrement de vous et votre réponse changera probablement avec le temps..
Mais quand on commence, juste aller assez loin pour mettre en œuvre ce que vous avez appris dans un vrai projet. Quand vous tombez sur quelque chose que vous ne comprenez pas, l'utiliser comme une opportunité d'aller plus loin, et en savoir plus sur ce sujet particulier.
Choisir les langues
C'est un peu difficile pour le nouveau développeur de choisir les technologies à apprendre. Obtenir les nécessités de la route, HTML et CSS sont absolument nécessaires. JavaScript est aussi une nécessité, mais vous n'avez pas besoin de vous considérer comme un maître JS. Vous devriez cependant être intéressé à apprendre plus que du simple JavaScript.
La plupart des développeurs apprennent aussi jQuery, mais les frameworks tels que React, Ember, Angular, Vue ou Backbone offrent tous un processus plus simple pour la création d'applications Web à grande échelle..
Il est possible d'approfondir l'apprentissage effets JavaScript fantaisie, tels que des animations, mais ils sont totalement facultatifs. Un développeur de pile complète devrait en savoir suffisamment pour faire le travail et partir de là..
Le choix de la langue d’arrivée dépend moins de l’avantage technique que du confort. La plupart des programmeurs se rendent compte que Python est un langage plus polyvalent que PHP, Cependant, la majorité des sites Web fonctionnent sur des serveurs PHP. Cela fait PHP un langage précieux à plus d'entreprises.
Choisissez la langue qui vous convient ou qui vous offre les meilleures perspectives. Gardez aussi à l'esprit que vous n'êtes pas coincé avec une langue principale pour toujours. Si vous commencez avec Ruby mais passez en Python, vous ne perdez rien dans le processus.
Cependant, je vous recommande de vous plonger plus profondément dans cette langue dès que vous aurez trouvé la langue de base, et ramasser un cadre connexe. PHP a Laravel, Ruby a Rails et Python a Django - parmi beaucoup d’autres options. Ces frameworks vont accélérer votre processus de développement et vous aider à structurer correctement vos applications..
Bases de données et serveurs
Le choix d'un moteur de base de données dépend des exigences du projet et de la pile de serveurs. PHP fonctionne souvent avec MySQL, c'est donc le choix le plus préféré. le deux plus grandes piles Web aujourd'hui sont LAMPE (Linux-Apache-MySQL-PHP) et SIGNIFIER (MongoDB-ExpressJS-AngularJS-Node.js).
La plupart des hébergeurs proposent LAMP dès le début, sans aucune configuration. Mais des solutions personnalisées telles que Digital Ocean vous permettent d’exécuter presque tout avec un peu de graisse au coude. Vous pouvez trouver plus de piles Web sur cette liste ou en cherchant en ligne..
Votre base de données de choix sera souvent lié à votre langue principale. Python est livré avec le support SQLite par défaut, et RoR Les développeurs peuvent généralement travailler avec n'importe quoi. Et honnêtement, n'importe quelle langue peut généralement fonctionner avec n'importe quelle base de données.
Mais vous voulez choisir quelque chose d'assez commun pour pouvoir être utilisé dans la majorité des projets Web. SQL est un langage général qui utilise principalement la même syntaxe dans tous les moteurs de base de données. Vous trouverez des différences dans la configuration et l’administration des tables, mais elles sont généralement mineures..
Au-delà des bases de données, voici quelques rubriques techniques côté serveur que vous voudrez peut-être approfondir.
- CDN et hébergement de contenu
- Installation du logiciel serveur et mises à jour
- Meilleures configurations de serveur pour les pics de trafic et les temps de chargement
- Solutions de cache pour les requêtes de base de données et le stockage du système de fichiers
- Sauvegardes automatisées de bases de données et de fichiers plats, ou sauvegardes d'images disque
- Configuration HTTPS avec gestion de domaine (serveurs DNS, enregistrements CNAME, etc.)
- Sujets plus détaillés, tels que la messagerie électronique, les microservices et l'équilibrage de la charge
L’un des meilleurs moyens d’apprendre est bricoler avec des serveurs comme vous construisez des projets. Prenez une base VPS compte, et essayez de configurer vos propres piles. Ces VPS sont des environnements de serveur virtuel complets dans lesquels vous avez le contrôle total pour tout configurer (ou tout détruire). De plus, la liste ci-dessus n'est pas une feuille de route obligatoire pour tous les développeurs de pile complète..
La seule connaissance dont vous avez vraiment besoin est tout ce qui est nécessaire pour créer un environnement de serveur vierge et installer le logiciel nécessaire pour exécuter un site Web. À partir de là, tout ce qui reste est simplement une connaissance améliorée. Si vous avez des questions ou souhaitez apprendre de professionnels, consultez la communauté / r / SysAdmin de Reddit.
Le chemin à parcourir
Si vous voulez vraiment apprendre le développement full stack, Faites une liste de toutes les technologies que vous souhaitez apprendre.. À partir de là, vous pourrez les aborder un par un en élaborant vos propres projets de pratique pour tester ce que vous apprenez..
Le développement Web est une industrie en constante évolution, vous devez donc toujours être prêt à en apprendre davantage. Testez différentes piles et langues jusqu'à ce que vous trouviez ce que vous aimez. Mais soyez toujours prêt à aller plus loin et à vous améliorer!
Le développement en pile complète en vaut-il la peine? C'est à vous de décider. Mais voici quelques articles liés qui pourraient vous aider à comprendre cela.
- Sur la légitimité de "Full-Stack" (heapsortjobs.com)
- Donc, vous voulez devenir un développeur full-stack (rubysteps.com)
- 7 conseils pour devenir un développeur Full Stack (usersnap.com)