Aan de slag met Fullstack Web Development
Tegenwoordig modern volledige stapelontwikkeling is erg populair bij zowel kleine agentschappen als grotere bedrijven met een toegewijd technisch team. Full stack-webengineers werken aan een hele webstack van technologieën inclusief frontend, backend, en server management.
Veel mensen beweren dat volledige stack alleen maar leidt tot een "jack of all trades, master of none". Vanuit een bepaald gezichtspunt kan dit waar zijn, maar skillset is alleen zo belangrijk als wat ermee kan worden bereikt. Veel full-stack-ontwikkelaars bieden waarde omdat ze een idee kunnen nemen van ontwerp tot lancering, en volledig begrijpen elke stap van het proces.
Als je denkt de volledige stapelroute gaan, dan is dit artikel iets voor jou. Ik zal de algemene vereisten van een full-stack ontwikkelaar uitleggen, wat de rol inhoudt en hoe de skillset nuttig kan zijn voor freelancers / contractanten die direct voor klanten of in hun eigen projecten willen werken..
Volledige stapelbeginselen
De moderne ontwikkeling van de volledige stapel heeft een lange weg afgelegd, omdat de webtechnologie veel is veranderd. Volledige stapelvereisten moeten worden gebruikt als richtlijnen om het volgende te overwegen. Over het algemeen stelt een "stapel" de technologieën voor die samen werken om een website te laten werken. Dit betekent frontendcode, back-endcode, een databasesysteem en een webserverplatform + besturingssysteem voor de server.
Het basisprincipe van volledige stapelontwikkeling is om alle aspecten van het bouwen van een website te begrijpen. Dit betekent niet dat u kennis hebt van ontwerp of UI / UX-werk, hoewel dat uw levensvatbaarheid en werkkwaliteit aanzienlijk kan verbeteren.
- De fundamenten van frontend omvatten HTML / CSS en JavaScript, waarschijnlijk met een kader, zoals Hoekig of Reageren.
- Voor een backend-taal wil je iets kiezen dat kan worden gekoppeld aan een databasesysteem. PHP / MySQL is de meest voorkomende en gemakkelijkst te leren omdat het vele CMS-engines aanstuurt, zoals WordPress. Ook de LAMP stack is ontegensprekelijk de meest populaire webstack van vandaag.
- Serverkennis kan zo eenvoudig of gedetailleerd zijn als u wilt. De absolute basis is kennis van een serverprogramma zoals Apache gekoppeld aan een database zoals MySQL of PostgreSQL.
- U kunt zelfs nog verder gaan met kennis van het installeren van e-mailservers of prestatiegereedschappen, zoals memcached of Varnish.
Een volledige stack-ontwikkelaar moet op alle drie de gebieden voldoende kennis hebben om mee te doen onafhankelijk een website lanceren, en zonder veel hulp van iemand anders.
Technische kennisdiepte
Een grote vraag over volledige stapelontwikkeling is hoe diep je in elk gebied kunt gaan. Is een ingenieur met een volledige stack ooit echt een meester in alles? Sommigen beweren dat het mogelijk is, maar dat is misschien niet het doel van full-stack gaan.
De meeste bedrijven willen full stack-engineers inhuren die overal een beetje kennis hebben. Deze technici kunnen zich op een bepaald gebied specialiseren, maar ze kunnen elke rol vervullen wanneer dat nodig is.
Ontwikkelaars die net beginnen met dit pad zouden dat moeten doen speelgoed rondlezen in alle gebieden om 'net genoeg' te leren om problemen op te lossen als ze zich voordoen. Dit geeft een echte wereldinterpretatie aan de technologieën om te zien hoe verschillende problemen van toepassing zijn op echte projecten.
Het grootste voordeel van volledige stapelcodering is de mogelijkheid om bouw je eigen applicaties zonder voor iemand anders te werken.
Als je elke fase van het ontwikkelingsproces leert, kun je alles zelf doen. U hoeft geen beheerder van PHP te zijn om een aangepaste Laravel-app te bouwen. En u hoeft geen JavaScript-goeroe te zijn om een flexibele vervolgkeuzelavigatie te maken, vooral nu er zoveel open source-code op internet beschikbaar is.
Dus hoe diep moet je naar een van deze gebieden gaan? Dit is geheel aan jou en je antwoord zal waarschijnlijk in de loop van de tijd veranderen.
Maar als je net begint, gewoon ga diep genoeg om te implementeren wat je hebt geleerd in een echt project. Wanneer je iets tegenkomt dat je niet begrijpt, gebruik het als een kans om dieper te gaan, en leer meer over dat specifieke onderwerp.
Talen kiezen
Het is een beetje een raadsel voor de nieuwe ontwikkelaar om te kiezen welke technologieën hij moet leren. De benodigdheden uit de weg ruimen, HTML en CSS zijn absoluut vereist. JavaScript is ook een noodzaak, maar je hoeft jezelf niet als een JS-meester te beschouwen. U moet echter geïnteresseerd zijn om meer te weten te komen dan alleen JavaScript.
De meeste ontwikkelaars leren jQuery ook, maar frameworks zoals React, Ember, Angular, Vue of Backbone bieden allemaal een eenvoudiger proces voor het bouwen van full-scale webapplicaties..
Het is mogelijk om nog dieper te leren mooie JavaScript-effecten, zoals animaties, maar ze zijn volledig optioneel. Een ontwikkelaar van een volledige stack zou precies genoeg moeten weten om de klus te klaren en van daaruit verder te gaan.
Bij het kiezen van een back-endtaal gaat het minder om technisch voordeel en meer om comfort. De meeste programmeurs realiseren dat Python is een veelzijdiger taal dan PHP, de meeste websites draaien echter op PHP-servers. Dit maakt PHP een waardevolle taal naar meer bedrijven.
Kies de taal die bij u past, of biedt u de beste vooruitzichten. Onthoud dat ook je zit niet voor altijd vast met één backend-taal. Als je met Ruby begint maar overschakelt naar Python, verlies je niets in het proces.
Ik raad echter aan dat als u eenmaal een backend taal vindt die u bevalt, dieper met die taal duikt, en een gerelateerd kader oppikken. PHP heeft Laravel, Ruby heeft Rails en Python heeft Django - naast vele andere opties. Deze frameworks zullen uw ontwikkelingsproces versnellen en u helpen uw applicaties op de juiste manier te structureren.
Databases en servers
Het kiezen van een database-engine komt neer op projectvereisten en serverstack. PHP werkt vaak met MySQL, dus dat is de voorkeur. De twee grootste webstapels vandaag zijn LAMP (Linux-Apache-MySQL-PHP) en GEMIDDELDE (MongoDB-ExpressJS-angularjs-Node.js).
De meeste hostingbedrijven bieden LAMP vanaf het begin zonder installatie aan. Maar met aangepaste oplossingen zoals Digital Ocean kunt u bijna alles met een beetje elleboogvet uitvoeren. U kunt meer webstacks vinden in deze lijst of door online rond te zoeken.
Uw database van keuze zal vaak zijn gekoppeld aan uw backend-taal. Python wordt standaard geleverd met SQLite-ondersteuning en RoR ontwikkelaars kunnen meestal met alles werken. En eerlijk gezegd, elke taal kan meestal met elke database werken.
Maar u wilt iets kiezen dat gebruikelijk genoeg is om te gebruiken in de meeste webprojecten. SQL is een algemene taal en gebruikt meestal dezelfde syntaxis voor alle databasemotoren. U zult verschillen vinden in het instellen en beheren van de tabel, maar deze zijn meestal van ondergeschikt belang.
Naast databases, zijn hier enkele technische onderwerpen over de server waar u misschien meer over wilt leren.
- CDN's en contenthosting
- Installatie en updates van serversoftware
- Beste serverconfigs voor verkeerspieken en laadtijden
- Cacheoplossingen voor zowel databasevragen als bestandssysteemopslag
- Geautomatiseerde back-ups van databases en platte bestanden of back-ups van back-ups van schijven
- HTTPS-instellingen met domeinbeheer (DNS-servers, CNAME-records, etc.)
- Meer gedetailleerde onderwerpen, zoals e-mail, microservices en taakverdeling
Een van de beste manieren om te leren is knutselen met servers terwijl je projecten bouwt. Grijp een basis VPS account en probeer je eigen stacks in te stellen. Deze VPS's zijn complete virtuele serveromgevingen waar je de volledige controle hebt om alles te configureren (of te vernietigen). De bovenstaande lijst is ook geen vereiste routekaart voor alle full-stack-ontwikkelaars.
De enige kennis die je echt nodig hebt, is alles wat nodig is om een lege serveromgeving te creëren en de software te installeren die nodig is om een website te draaien. Vanaf daar is al het andere gewoon betere kennis. Als u ooit vragen hebt of wilt leren van professionals, kijk dan eens naar de Reddit's / r / SysAdmin-community.
De weg voor ons
Als je echt de ontwikkeling van een volledige stapel wilt leren, maak een lijst van alle technologieën die u wilt leren. Van daaruit kun je ze één voor één aanpakken bij het maken van je eigen oefenprojecten om te testen wat je leert.
Webontwikkeling is een steeds veranderende industrie, dus je moet altijd bereid zijn om meer te leren. Test verschillende stapels en talen totdat u vindt wat u leuk vindt. Maar wees altijd bereid om dieper te gaan en beter te worden!
Is een volledige stackontwikkeling de moeite waard? Dat is aan u om te beslissen. Maar hier zijn enkele gerelateerde berichten die u kunnen helpen om dat uit te zoeken.
- Over de legitimiteit van "Full-Stack" (Heapsortjobs.com)
- Dus u wilt een full-stack-ontwikkelaar worden (Rubysteps.com)
- 7 tips om een volledige stack-ontwikkelaar te worden (Usersnap.com)