Najlepší spôsob, ako sa naučiť vývoj backendu na webe

Môj predchádzajúci článok popisoval, ako sa môžete dostať k vývoju frontendu. Diskutovalo sa tiež o tom, ako môže byť predná časť miestom plným mín - krok na nesprávnom mieste a budete ohromení mnohými štruktúrami ekosystému JavaScript.

V tomto článku v blogu sa pozrime, ako sa môžete dostať k vývoju koncových zariadení. Po ceste zodpoviem niektoré z najbežnejších otázok, ktoré sa ma na ňu ľudia pýtajú.

Čo je Backend Development?

Vývoj klientskeho rozhrania zahŕňa to, čo používateľ vidí na obrazovke, keď otvorí konkrétnu adresu URL, ktorú vlastníte. Dokonca aj v úplne statickom prostredí (iba s HTML / CSS), keď niekto otvorí web, musí na vás nejaký server na planéte odpovedať týmito súbormi HTML a CSS.

Tento server je iba počítač, rovnako ako ten, ktorý sami používate na prehľadávanie internetu. Bol však vyladený na výkon a nemá pripojené nepotrebné komponenty ako myš alebo klávesnica. A sedí s hromadou ďalších počítačov pravdepodobne v dátovom sklade.

Programovanie týchto počítačov nejakým špeciálnym spôsobom sa nazýva back-end vývoj .

Možno si myslíte, že vývoj backendu sa nazýva to, čím je, pretože beží za chrbtom používateľa. Návštevník vašich webových stránok nikdy skutočne úplne „nepríde“ k koncovému zariadeniu. Komunikujú iba so serverom, a to buď priamo cez porty, ktoré majú veľmi obmedzený prístup (napríklad prenos súborov HTML / CSS), alebo dokonca ani to - sú zakopané hlboko pod sieťami CDN alebo firewallmi (napríklad Cloudflare).

Teraz, keď máme surové pochopenie toho, čo znamená vývoj koncových zariadení, poďme k niektorým skutočným otázkam.

Vyžadujú sa pre backend znalosti programovania v rozhraní frontend?

TLDR; Č.

Vývoj back-endu, ako je uvedené vyššie, spočíva v programovaní počítača sediaceho pravdepodobne na druhej strane planéty, ktorý je zodpovedný za reakciu na to, čo hovoria vaši používatelia, zo svojich vlastných počítačov.

Ak ste backendovým vývojárom na plný úväzok, nemusíte sa vlastne zaujímať o to, čo sa deje vo vnútri týchto súborov HTML, CSS a JavaScript, ktoré odosielate do prehliadača používateľa. Namiesto toho sa musíte viac sústrediť na výkon servera, kód servera a priepustnosť.

Čo sa týka vývoja na konci?

Ak pôjdeme podľa kníh, môžete povedať, že človek, ktorý kóduje aplikáciu, ktorá dokáže odpovedať na požiadavky HTTP, je back-end vývojár.

Ale v skutočnosti sú vývojári back-endu niekedy schopní urobiť oveľa viac než len písať serverové skripty. Majú znalosti na nastavenie reverzných proxy serverov (NGiNX / HAProxy), umožnenie kompresie a ďalších spôsobov na zrýchlenie servera a nastavenie produkčného dokovacieho prostredia.

Ak sa chcete kvalifikovať ako backendový vývojár, povedal by som, že nevyhnutné minimálne znalosti:

  1. Dobré znalosti programovacieho jazyka, v ktorom môžete písať servery HTTP. Príklady: C #, Java, Node, PHP, Python atď. (Existuje veľa!)
  2. Spravovať hostiteľa pomocou cPanel (tradičné) alebo pomocou terminálu bash (cloudový hosting / tradičné)
  3. Práca so systémami riadenia verzií (VCS), ako je git, na správu a nasadenie zostáv

Rovnako ako každá hra prichádza s minimálnymi a odporúčanými špecifikáciami, pre vývojárov typu back-end by moje odporúčané špecifikácie boli (vrátane minimálnych schopností):

  1. NGiNX pre statické súbory a správu servera
  2. Schopnosti správy databáz (SQL / NoSQL)
  3. Zabezpečenie backendu (písanie bezpečného a robustného kódu, spustenie aplikácií v dokovacích kontajneroch s obmedzenými oprávneniami, ochrana pred útokmi DoS)
  4. Automatické škálovanie / vyvažovanie záťaže

Dobre, príliš veľa hovoríme o tom, čo sa týka koncového vývoja. Ako sa ním však stať?

Začnite s minimálnymi požiadavkami

Ako som už povedal, pre koniec koncov, rovnako ako hry, máme súbor minimálnych požiadaviek a odporúčaných požiadaviek. Minimálne požiadavky pozostávajú z 3 vecí:

Naučte sa backendový programovací jazyk

Keď sa ľudia učia sami, zvyčajne nemajú tím ani nikoho, kto by mohol robiť front-end vývoj. Všetci sú na to sami. Takže budete musieť často vytvárať webové stránky a servery sami, aspoň na začiatku.

Aj keď existuje veľa možností pre back-endové programovacie jazyky, nenapadá ma žiadny populárny systémový jazyk, ktorý nepodporuje servery HTTP. Výhodou výberu uzla je, že vaše zručnosti v ovládaní jazyka JavaScript v klientskom rozhraní sú prenosné do servera typu back-end.

Môžete si však vybrať z rôznych jazykov, ako sú Java, C ++, C #, Python, PHP atď.

Ako sa dá vybrať, môžete sa spýtať. Odpoveď je rovnaká ako v článku o vývojovom rozhraní frontend: musíte si najskôr vyskúšať všetko a zistiť, ktorý z nich s vami klikne najlepšie.

Uzol je jednoduchý, pretože ste už možno vykonali programovanie JS pre klientske rozhranie. Ale ak ste vývojár v jazyku Python alebo Java, je ľahké nájsť ich. Závisí to od vašej profesie a vkusu úplne.

Dozviete sa viac o správe hostingu

Časy, keď budete musieť ručne nakupovať servery a nastavovať si ich doma, pripájať sa k svojmu poskytovateľovi internetu, sú preč, robiť si všetko sami. Toto je doba cloud computingu. Pri hostovaní svojich webových stránok máte teraz hlavne dve možnosti:

  1. Chystáte sa na spravované hostiteľské servery ako HostGator alebo GoDaddy.
  2. Ide o poskytovateľov cloudového hostingu, ako sú GCP, AWS alebo DigitalOcean.

Aký je medzi nimi rozdiel? V obidvoch prípadoch servery vlastnia a prevádzkujú príslušné spoločnosti. Ale hlavný rozdiel je v tom, že spravovaný hosting je priateľskejší k GUI, má bohatú sadu nástrojov na prehliadanie súborového systému, sledovanie používania, správu vašich oficiálnych e-mailov z domény, nahrávanie / sťahovanie súborov zo servera atď. Je to v podstate nastavenie pre ľudí s menej technickými zručnosťami.

Z tohto dôvodu neodporúčam spravovaným webom ako HostGator alebo GoDaddy pre ostrieľaných vývojárov. Stále by to mohla byť dobrá platforma na robenie chýb a učenie sa, predovšetkým preto, že pre ne máte väčšinou predplatené plány. Budete mať tiež pekné používateľské rozhranie na správu vecí, ktoré vám neumožňuje náhodne vystreliť svoje účty.

Keď ale začnete naberať rýchlosť, odporúčam vám prepnúť na poskytovateľa cloudu. Týmto z cPanel odoberáte všetky pekné nástroje, ktoré ste používali na správu súborov a priečinkov na serveroch. Zároveň vás však bude vyzývať, aby ste si veľmi zdokonalili svoje schopnosti.

Dnes veľa poskytovateľov cloudových služieb ponúka aj slušné bezplatné skúšobné obdobie, aby ste si ich platformu mohli vyskúšať predtým, ako sa zapoja. Hostím svoju webovú stránku pre vývojárov - codedamn - na webe DigitalOcean a zisťujem, že je v rovnováhe zložitosť a funkcie stránky.

Pomocou tohto odkazu sa môžete prihlásiť na DigitalOcean a získať zadarmo kredity 100 dolárov . Prípady DigitalOcean sú rovnako lacné ako 5 dolárov mesačne, takže v takom prípade máte pristávaciu dráhu približne 20 mesiacov, čo?

Môžete si však vybrať ktoréhokoľvek poskytovateľa cloudu. Potom je dôležité naučiť sa spravovať server iba pomocou príkazového riadku tak, že do neho vložíte príkazový riadok.

Získajte viac informácií o systémoch riadenia verzií

Okrem Gitu pre VCS existujú aj iné riešenia. Ale Git je najpoužívanejší a najjednoduchšie pochopiteľný.

Ako jednotlivec by ste to nemuseli hneď oceniť. Ale pochopíte, prečo je to také dôležité vo chvíli, keď vo svojom projekte začnete pracovať buď v tíme, na viacerých funkciách súčasne.

Git vám umožňuje spravovať váš pracovný tok pomocou záväzkov a pobočiek. Záväzky sú ako kontrolné body v databáze kódov - tie, na ktoré sa môžete kedykoľvek vrátiť, ak ich pokazíte.

Pobočky sú ako alternatívna realita vášho projektu, kde sa môže stať niečo úplne iné. Tieto alternatívne reality je možné vytvoriť z ktoréhokoľvek časového bodu a je možné ich kedykoľvek znova zlúčiť.

Ak je možné tieto reality spojiť spolu s kompatibilitou, potom je to v poriadku. Ale ak dôjde ku konfliktu (ako keby ste boli nažive v jednej realite a mŕtvi v druhej), musíte si zvoliť manuálne. Ostatné zmeny je možné zlúčiť automaticky.

Git je super zaujímavý a akonáhle sa ho chytíte, budete ho chcieť použiť v každom projekte. Históriu svojej práce môžete udržiavať efektívnym spôsobom (komprimuje a ukladá iba rozdiel medzi záväzkami).

Umožňuje vám tiež vytvárať online úložiská git na stránkach ako GitHub, ktoré fungujú ako centrálny zdroj pravdy pre vaše webové stránky. Webové stránky ako GitHub je možné nakonfigurovať pomocou špeciálnych webhookov, ktoré môžu skutočne aktualizovať vaše webové stránky vždy, keď pridáte nový kontrolný bod (nové potvrdenie), bez toho, aby ste museli manuálne prejsť na server a sami ho aktualizovať.

Choďte na odporúčané zručnosti

Som veľkým zástancom učenia sa tým, že robím. A najlepší spôsob, ako niečo urobiť, vychádza z nevyhnutnosti alebo záujmu. Akonáhle sa považujete za dostatočne dobrého s minimálnymi požiadavkami, je čas získať odporúčané zručnosti. Patria sem všetky nástroje ako Docker a NGiNX uvedené vyššie.

DevOps je tiež niečo, čo super zapadá do backendových vývojárov. Môžete vyskúšať a preskúmať TravisCI alebo CircleCI pre automatické nasadenie zostáv . Nepretržitá integrácia a nasadenie (CI / CD) je téma, ktorá by mohla zabrať ďalší celý blogový príspevok, takže sa tým nebudem zaoberať. Po správnom nastavení vám v skutočnosti ušetrí čas na vývojárov!

Potom nasledujú databázy, ktoré som umiestnil do odporúčaných schopností. Ale budete potrebovať databázy pre takmer každú aplikáciu, ktorá bude vyžadovať istý druh vytrvalosti údajov generovaných používateľom.

S databázami sa zvyčajne začína ľahko pracovať, ale ťažšie sa udržiavajú a správne upravujú. Najlepší spôsob, ako začať pracovať na back-endovom technologickom zásobníku, je mať všetko pohromade na jednom serveri - kód vašej aplikácie, reverzné proxy servery, databázu atď. Potom, ako budete v každej veci zdatnejší, môžete oddeliť to od existujúcej obchodnej logiky.

Týmto krokom povoľujete architektúru, ktorá sa dá vysoko škálovať. Aplikácia náročná na databázovú prevádzku môže mať optimalizované riešenie pre databázy. A stránka s hustou premávkou by mala mať dobrý mechanizmus CDN na vykládku statického majetku atď.

Záver

Je toho veľa, čo sa naučiť, ale je to všetko dosiahnuteľné, ak sa nevzdáte. Dajte mi vedieť, čo si myslíte o tomto príspevku, prostredníctvom môjho twitteru a Instagramu . Bude to pre mňa veľa znamenať, ak sa tam pripojíme!

Ak vás tiež zaujíma, pozrite sa na kódované peniaze - platforma zameraná na vývojárov pre výukové technológie, ako je napríklad vývoj backendu! Dokonca som zverejnil YT video o roztočení vášho vlastného jednoduchého servera webových stránok za 2 minúty! Skontrolujte to a dajte mi vedieť, čo si myslíte!

Mier!