Kom i gang med Fullstack Web Development
Disse dage, moderne fuld stack udvikling er meget populær i både små bureauer og større virksomheder med et dedikeret teknisk team. Fuld stak web-ingeniører arbejder på en hel web stakke af teknologier herunder frontend, backend, og serveradministration.
Mange argumenterer for, at fuld stack kun fører til at være en "jack of all trades, master of none". Ud fra et bestemt synspunkt kan det være sandt, men skillset er kun lige så vigtigt som hvad der kan opnås med det. Mange fuld stack devs tilbyder værdi, fordi de kan tage en ide fra befrugtning til lancering, og fuldt ud forstå hvert trin i processen.
Hvis du tænker på går den fulde stakrute, så er denne artikel til dig. Jeg vil forklare de generelle krav til en fuld stack-udvikler, hvad rollen indebærer, og hvordan færdighederne kan være nyttige for frilansere / entreprenører, der ønsker at arbejde direkte enten for kunder eller i deres egne projekter.
Fuld Stack Fundamentals
Moderne fuld stack udvikling er kommet langt, da webteknologi har ændret sig meget. Fuld stak krav bør bruges som retningslinjer for at overveje at følge. Generelt repræsenterer en "stak" de teknologier, der kører i fællesskab at lave et websted arbejde. Dette betyder frontend kode, backend kode, et databasesystem og en webserver platform + OS til serveren.
Den grundlæggende grundsætning for fuld stack udvikling er at forstå alle aspekter af at opbygge en hjemmeside. Dette betyder ikke kendskab til design eller UI / UX arbejde, selvom det i høj grad kan forbedre din levedygtighed og arbejdskvalitet.
- Grunden for frontend er HTML / CSS og JavaScript, mest sandsynligt med a rammer, såsom vinkel eller reaktion.
- For et backend-sprog vil du gerne vælge noget, der kan kobles sammen med et databasesystem. PHP / MySQL er den mest almindelige og nemmeste at lære, fordi den har mange CMS-motorer som WordPress. Også den LAMPE Stakken er uden tvivl den mest populære webstabel i dag.
- Server viden kan være så enkel eller så detaljeret som du vil. Det absolutte grundlæggende ville være kendskab til et serverprogram som Apache kombineret med en database som MySQL eller PostgreSQL.
- Du kan gå endnu længere for at inkludere viden om installation af mail-servere eller præstationsværktøjer, såsom memcached eller larn.
En fuld stack dev burde dabble i alle tre områder med tilstrækkelig viden til lancere et websted uafhængigt, og uden meget hjælp fra nogen anden.
Teknisk Dybde
Et stort spørgsmål om fuld stack udvikling er hvor dybt at gå ind i hvert område. Er en fuld stack ingeniør virkelig nogensinde en mester for noget? Nogle hævder at det er muligt, men Det kan ikke være hensigten at gå fuld stack.
De fleste virksomheder ønsker at ansætte fuldstack ingeniører, der har lidt viden overalt. Disse ingeniører kan specialisere sig i et område, men de er i stand til at udfylde enhver rolle, når det er nødvendigt.
Devs, der lige er begyndt ned ad denne sti skal legetøj rundt på alle områder at lære "bare nok" til at løse problemer, som de opstår. Dette giver en reel verdensfortolkning af teknologierne for at se, hvordan forskellige problemer gælder for virkelige projekter.
Den største fordel ved fuld stack kodning er evnen til bygg dine egne applikationer uden at arbejde for nogen anden.
Hvis du lærer hvert trin i udviklingsprocessen, kan du gøre alt selv. Du behøver ikke at være en mester i PHP for at opbygge en brugerdefineret Laravel-app. Og du behøver ikke at være en JavaScript-guru til at oprette en fleksibel dropdown-navigation, især nu, at vi har så meget åben kildekode tilgængelig på internettet.
Så hvor dybt skal du gå ind på et af disse områder? Dette er helt op til dig, og dit svar vil sandsynligvis ændre sig over tid.
Men når først kommer i gang, bare gå dybt nok til at gennemføre det, du har lært til et rigtigt projekt. Når du støder på noget, forstår du ikke, brug det som en mulighed for at gå dybere, og lære mere om det pågældende emne.
Valg af sprog
Det er lidt af en konfrontation for den nye udvikler at vælge hvilke teknologier, der skal læres. Få fornødenheder ud af vejen, HTML og CSS er absolut påkrævet. JavaScript er også en nødvendighed, men du behøver ikke at betragte dig selv som en JS-mester. Du bør dog være interesseret i at lære mere end blot JavaScript.
De fleste devs lærer også jQuery, men rammer som React, Ember, Angular, Vue eller Backbone tilbyder alle en enklere proces til opbygning af fuldskala webapplikationer.
Det er muligt at dykke endnu dybere læring fancy JavaScript-effekter, som animationer, men de er helt valgfrie. En fuld stack-udvikler bør vide lige nok for at få jobbet færdigt, og fortsæt derfra.
Backend sprog valg er mindre om teknisk fordel, og mere om komfort. De fleste programmører indser det Python er et mere alsidigt sprog end PHP, Men de fleste websteder kører på PHP-servere. Dette gør PHP et værdifuldt sprog til flere virksomheder.
Vælg det sprog, der passer til dine behov, eller giver dig de største muligheder. Husk også på det Du sidder ikke fast med ét backend-sprog for evigt. Hvis du starter med Ruby, men skift til Python, taber du ikke noget i processen.
Jeg anbefaler dog, at når du finder et backend-sprog, du kan lide, dykker du dybere med det pågældende sprog og hente en relateret ramme. PHP har Laravel, Ruby har Rails, og Python har Django - blandt mange andre muligheder. Disse rammer vil fremskynde din udviklingsproces og hjælpe dig med at strukturere dine applikationer korrekt.
Databaser og servere
At vælge en databasemotor kommer ned til projektkrav og serverstabel. PHP arbejder ofte med MySQL, så det er det mest foretrukne valg. Det to største webstabler i dag er LAMPE (Linux-Apache-MySQL-PHP) og BETYDE (MongoDB-ExpressJS-AngularJS-node.js).
De fleste hostingfirmaer tilbyder LAMP fra starten uden opsætning påkrævet. Men brugerdefinerede løsninger som Digital Ocean giver dig mulighed for at køre næsten alt med en lille albuefedt. Du kan finde flere webstabler på denne liste eller ved at søge online.
Din valgte database vil ofte være bundet til dit backend sprog. Python leveres med SQLite support som standard og RoR devs kan typisk arbejde med noget. Og ærligt kan ethvert sprog normalt arbejde med enhver database.
Men du vil vælge noget, der er almindeligt nok til at bruge i de fleste webprojekter. SQL er et generelt sprog, og det bruger stort set den samme syntaks på tværs af alle databasemotorer. Du vil finde forskelle i tabelopsætning og administration, men disse er typisk mindre.
Ud over databaser, her er nogle tekniske server-side emner, du måske vil lære om.
- CDN'er og indhold hosting
- Installation af server software og opdateringer
- Bedste server konfigurerer for trafikspidser og belastningstider
- Caching løsninger til både database forespørgsler og filsystem lagring
- Automatiserede sikkerhedskopier af databaser og flade filer eller backup af diskbilleder
- HTTPS-opsætning med domæneadministration (DNS-servere, CNAME-poster osv.)
- Mere detaljerede emner, som e-mail, microservices og load balancing
En af de bedste måder at lære er på tinkering med servere som du bygger projekter. Grib en grundlæggende VPS konto, og prøv at oprette dine egne stakke. Disse VPS'er er komplette virtuelle servermiljøer, hvor du har fuld kontrol til at konfigurere (eller ødelægge) alt. Ovenstående liste er heller ikke en nødvendig køreplan for alle komplette stakkeudviklere.
Den eneste viden du virkelig har brug for er alt hvad der kræves for at oprette et tomt servermiljø, og installer den nødvendige software til at køre en hjemmeside. Derfra er alt andet bare forbedret viden. Hvis du nogensinde har spørgsmål eller ønsker at lære af fagfolk, skal du tjekke ud Reddit's / r / SysAdmin-fællesskabet.
Vejen foran
Hvis du virkelig ønsker at lære fuld stack udvikling, Lav en liste over alle de teknologier, du vil lære. Derefter kan du tackle dem en efter en, der laver dine egne øvelsesprojekter for at teste hvad du lærer.
Webudvikling er en stadigt skiftende industri, så du bør altid være villig til at lære mere. Test forskellige stakke og sprog, indtil du finder hvad du kan lide. Men vær altid villig til at gå dybere og blive bedre!
Er fuld stack udvikling værd at indsatsen? Det er for dig at beslutte. Men her er nogle relaterede indlæg, der kan hjælpe dig med at finde ud af det.
- Om legitimiteten af "full-stack" (Heapsortjobs.com)
- Så du vil blive en full-stack-udvikler (Rubysteps.com)
- 7 tips om, hvordan man bliver en fuldstab-udvikler (Usersnap.com)