Početak rada s Fullstack Web Developmentom
Ovih dana, moderno potpuni razvoj stogova vrlo je popularan u malim agencijama i većim tvrtkama s posvećenim tehničkim timom. Web-inženjeri s punim stogom rade na cijelom nizu tehnologija uključujući frontend, backend, i upravljanje poslužiteljem.
Mnogi ljudi tvrde da puni stack vodi samo ka tome da je "jack of all trades, master of none". Iz određenog stajališta to može biti istina, no vještina je jednako važna kao i ono što se može postići njome. Mnogi full stack devs nude vrijednost jer mogu uzeti ideju od začeća do lansiranja, i potpuno razumjeti svaki korak u procesu.
Ako misliš na to ići na cijeli niz stog, onda je ovaj članak za vas. Objasnit ću opće zahtjeve razvojnog inženjera s punim stogom, kakvu ulogu ima i kako vještina može biti korisna za slobodnjake / ugovaratelje koji žele raditi izravno za klijente ili u svojim vlastitim projektima.
Osnove pune razine
Moderni razvoj potpunog stog je prešao dug put, budući da se web tehnologija mnogo promijenila. Potpuni zahtjevi za stog trebaju se koristiti kao smjernice za razmatranje. Općenito govoreći, "stog" predstavlja tehnologije koje se pokreću unisono izraditi web stranicu. To znači frontend kod, backend kod, sustav baze podataka i platformu web poslužitelja + OS za poslužitelj.
Osnovni princip razvoja cjelovitog stogova je razumijevanje svih aspekata izrade web-lokacije. To ne znači poznavanje dizajna ili UI / UX rada, iako to može uvelike poboljšati vašu održivost i kvalitetu rada.
- Osnove sučelja uključuju HTML / CSS i JavaScript, najvjerojatnije s a okvir, kao što su Angular ili React.
- Za pozadinski jezik trebate odabrati nešto što može biti povezano sa sustavom baze podataka. PHP / MySQL je najčešći i najlakši za učenje, jer ovlasti mnoge CMS motore kao što je WordPress. Također i LAMP stack je danas najpopularniji web stack.
- Znanje poslužitelja može biti jednostavno ili detaljno koliko želite. Apsolutne osnove bi bile znanje o poslužiteljskom programu apaš zajedno s bazom podataka MySQL ili PostgreSQL.
- Možda ćete čak i više uključiti znanje o instaliranju poslužitelja pošte ili alata za izvedbu, kao što su memcached ili Varnish.
Developer s punim stogom trebao bi se baviti svim trima područjima s dovoljno znanja pokrenite web stranicu samostalno, i bez mnogo pomoći od bilo koga drugoga.
Tehnička dubina znanja
Veliko je pitanje o razvoju cijelog stogova koliko duboko ići u svako područje. Je li inženjer s punim stogom stvarno ikada majstor svega? Neki tvrde da je to moguće, ali to možda nije svrha punog stog.
Većina tvrtki želi zaposliti inženjere koji imaju puno znanja svugdje. Ovi inženjeri mogu se specijalizirati u jednom području, ali oni mogu ispuniti svaku ulogu kada je to potrebno.
Devovi koji tek počinju ovim putem trebaju igrati se u svim područjima učenja "dovoljno" kako bi riješili probleme čim se pojave. To daje tehnologiju u stvarnom svijetu tumačenje kako bi se vidjelo kako se različiti problemi odnose na stvarne projekte.
Najveća prednost kodiranja s punim stogom jest mogućnost izgradite vlastite aplikacije bez rada za bilo koga drugog.
Ako naučite svaku fazu razvojnog procesa, onda sve možete sami. Ne morate biti majstor PHP-a za izradu prilagođene aplikacije Laravel. A ne morate biti JavaScript guru da biste kreirali fleksibilnu navigacijsku navigaciju, posebno sada kada imamo toliko otvorenog izvornog koda na webu.
Koliko duboko trebate ići u bilo koje od ovih područja? To je u potpunosti na vama i vaš će se odgovor s vremenom vjerojatno promijeniti.
Ali kada je prvi put počeo, samo dovoljno duboko provesti ono što ste naučili u stvarnom projektu. Kada naletiš na nešto što ne razumiješ, iskoristite ga kao priliku za dublje, i saznajte više o toj temi.
Odabir jezika
Malo je zagonetka da novi programer odabere koje će tehnologije naučiti. Izvlačenje potrepština s puta, HTML i CSS su apsolutno potrebni. JavaScript je također nužna, ali ne morate sebe smatrati majstorom JS-a. Međutim, trebali biste biti zainteresirani da naučite više od običnog JavaScripta.
Većina razvojnih programera također uči jQuery, ali okviri poput React, Ember, Angular, Vue ili Backbone nude jednostavniji proces za izgradnju web aplikacija.
Moguće je još dublje zaroniti fancy JavaScript učinci, kao što su animacije, ali oni su potpuno neobavezni. Programer s punim stogom trebao bi znati dovoljno za obavljanje posla i nastaviti dalje.
Izbor pozadinskog jezika manje je o tehničkoj prednosti, a više o udobnosti. Većina programera to shvaća Python je svestraniji jezik od PHP-a, međutim većina web-mjesta radi na PHP poslužiteljima. Ovo cini PHP vrijedan jezik više tvrtki.
Odaberite jezik koji odgovara vašim potrebama ili vam nudi najveće mogućnosti. Također imajte na umu to niste zauvijek zaglavljeni s jednim pozadinskim jezikom. Ako počnete s Rubyjem, ali se prebacite na Python, nećete izgubiti ništa u tom procesu.
Međutim, preporučujem da nakon što pronađete pozadinski jezik koji vam se sviđa, produbite taj jezik i pokupiti odgovarajući okvir. PHP ima Laravel, Ruby ima Rails, a Python ima Django - među mnogim drugim opcijama. Ti će okviri ubrzati vaš razvojni proces i pomoći vam da ispravno strukturirate svoje aplikacije.
Baze podataka i poslužitelji
Odabir mehanizma baze podataka svodi se na zahtjeve projekta i hrpu poslužitelja. PHP često radi s MySQL-om, tako da je to najpoželjniji izbor. dva najveća web stacka danas jesu LAMP (Linux-Apache-MySQL-PHP) i SREDNJA (MongoDB-ExpressJS-AngularJS-Node.js).
Većina hosting tvrtki nudi LAMP od početka bez potrebe za postavljanjem. Ali prilagođena rješenja poput digitalnog oceana omogućuju vam da pokrenete gotovo sve s malo masnoće za lakat. Na ovom popisu možete pronaći više web-hrpe ili pretraživati online.
Vaša baza podataka često će biti vezan za vaš pozadinski jezik. Python dolazi sa SQLite podrškom po defaultu, i RoR Devovi obično mogu raditi s bilo čim. I iskreno, svaki jezik obično može raditi s bilo kojom bazom podataka.
Ali želite odabrati nešto što je dovoljno zajedničko za korištenje u većini web-projekata. SQL je općeniti jezik i koristi uglavnom istu sintaksu u svim pogonima baza podataka. Naći ćete razlike u postavljanju i upravljanju tablicama, ali one su obično manje.
Osim baza podataka, evo nekih tehničkih tema na strani poslužitelja o kojima biste htjeli saznati.
- CDN-ovi i hosting sadržaja
- Instalacija i ažuriranje softvera poslužitelja
- Najbolji poslužiteljski konfigurirati za prometne rezove i vrijeme učitavanja
- Caching rješenja za upite baze podataka i pohranu datotečnog sustava
- Automatizirane sigurnosne kopije baza podataka i ravnih datoteka ili sigurnosnih kopija slikovnih datoteka na disku
- Postavka HTTPS-a s upravljanjem domenom (DNS poslužitelji, CNAME zapisi itd.)
- Detaljnije teme, kao što su e-pošta, mikroservisi i balansiranje opterećenja
Jedan od najboljih načina učenja je tinkering sa poslužiteljima dok gradite projekte. Zgrabite osnovnu VPS i pokušajte postaviti vlastite hrpe. Ovi VPS-ovi su potpuna virtualna okruženja poslužitelja gdje imate potpunu kontrolu za konfiguriranje (ili uništavanje) svega. Isto tako, gornji popis nije obavezna mapa za sve programere s potpunim stogom.
Jedino znanje koje stvarno trebaš je sve što je potrebno za stvaranje praznog okruženja poslužitelja i instaliranje softvera potrebnog za pokretanje web-mjesta. Odatle je sve drugo samo poboljšano znanje. Ako imate pitanja ili želite naučiti od profesionalaca, provjerite Redditovu / r / SysAdmin zajednicu.
Cesta ispred
Ako stvarno želite naučiti potpuni razvoj stog, napravite popis svih tehnologija koje želite naučiti. Odatle ih možete rješavati jedan po jedan, čineći vlastite projekte prakse kako biste testirali ono što naučite.
Web razvoj je industrija koja se stalno mijenja, tako da biste uvijek trebali biti voljni učiti više. Testirajte različite stackove i jezike dok ne pronađete ono što vam se sviđa. Ali uvijek budite spremni ići dublje i bolje!
Je li puna izrada stog vrijedna truda? To je za tebe. No, evo nekih povezanih postova koji bi vam mogli pomoći da to shvatite.
- O legitimnosti "punog stack-a" (Heapsortjobs.com)
- Tako želite postati full-stack programer (Rubysteps.com)
- 7 savjeta o tome kako postati Full Stack Developer (Usersnap.com)