A háttér-webfejlesztés megtanulásának legjobb módja

Előző cikkem leírta, hogyan lehet belépni a frontend fejlesztésébe. Megbeszélte azt is, hogy a kezelőfelület hogyan lehet a taposóaknákkal teli hely - lépjen rossz helyre, és elárasztja Önt a JavaScript ökoszisztéma sok kerete.

Ebben a blogcikkben nézzük meg, hogyan tud bekapcsolódni a háttérfejlesztésbe. Útközben megválaszolom az emberek által feltett leggyakoribb kérdéseket.

Mi a Backend Fejlesztés?

A kezelőfelület fejlesztése magában foglalja azt, amit a felhasználó lát a képernyőn, amikor megnyit egy saját tulajdonában lévő URL-t. Még egy teljesen statikus környezetben is (csak HTML / CSS használatával), amikor valaki megnyit egy webhelyet, a bolygón lévő szervereknek válaszolniuk kell rájuk a HTML és CSS fájlokkal.

Ez a szerver csak egy számítógép, csakúgy, mint amellyel magad használod az internetet. De a teljesítményre hangolták, és nincsenek felesleges alkatrészei, például egér vagy billentyűzet. És rengeteg más számítógéppel ül valószínűleg egy adattárházban.

Ezeknek a számítógépeknek valamilyen speciális programozását háttér-fejlesztésnek nevezzük .

Gondolhatja, hogy a háttérprogram fejlesztését azért hívják, amilyen, mert a felhasználó háta mögött fut. A webhely látogatói soha nem "érik el" teljesen a hátulját. Csak kommunikálnak a szerverével, vagy közvetlenül a portokon keresztül, nagyon korlátozott hozzáférés érdekében (például HTML / CSS fájlok átvitele), vagy nem is - mélyen a CDN-ek vagy a tűzfalak (például a Cloudflare) alá temetve.

Most, hogy nyersen megértettük, hogy mit jelent a háttérfejlesztés, térjünk ki néhány valós kérdésre.

Szükség van-e a kezelőfelület programozási ismereteire a háttér számára?

TLDR; Nem.

A háttér-fejlesztés, amint azt fentebb említettük, magában foglalja egy valószínűleg a bolygó másik oldalán ülő számítógép programozását, amely azért felel, hogy válaszoljon arra, amit a felhasználók a saját számítógépükről mondanak.

Ha teljes munkaidős háttér-fejlesztő vagy, nem igazán kell törődnöd azzal, hogy mi folyik azokban a HTML, CSS és JavaScript fájlokban, amelyeket a felhasználó böngészőjéhez küldesz. Ehelyett inkább a szerver teljesítményére, a kiszolgáló kódjára és az átviteli sebességre kell összpontosítania.

Mi megy a háttérfejlesztésbe?

Nos, a könyvek mellett haladva azt mondhatja, hogy az a személy, aki kódol egy olyan alkalmazást, amely képes reagálni a HTTP kérésekre, háttér-fejlesztő.

De a valóságban néha a háttér-fejlesztők sokkal többet képesek megtenni, mint pusztán szerver-szkripteket írni. Tudással rendelkeznek a fordított proxy szerverek (NGiNX / HAProxy) beállításához, a tömörítés és a webhely felgyorsításának egyéb módjainak lehetővé tételéhez, valamint a gyártási dokkoló környezet beállításához.

Ahhoz, hogy háttérfejlesztőként kvalifikálhassam magam, azt mondanám, hogy a szükséges minimális készségek a következők:

  1. Jó ismeretek egy olyan programozási nyelvről, amelyen HTTP szervereket írhat. Példák: C #, Java, Node, PHP, Python stb. (Sok van!)
  2. Gazdálkodás a cPanel (hagyományos) vagy a bash terminál (felhő tárolás / hagyományos) használatával
  3. Verziókezelő rendszerekkel (VCS), például gitekkel való együttműködés az építések kezeléséhez és telepítéséhez

Csakúgy, mint minden játék minimális és ajánlott specifikációkkal rendelkezik, a háttér fejlesztők számára is ajánlom a specifikációkat (a minimális készségeket is beleértve):

  1. NGiNX statikus fájleszközökhöz és szerverkezeléshez
  2. Adatbázis-kezelési készségek (SQL / NoSQL)
  3. A háttérprogram biztonsága (Biztonságos és robusztus kód írása, alkalmazások futtatása korlátozott jogosultságokkal rendelkező dokkoló konténerekben, védelem a DoS támadások ellen)
  4. Automatikus méretezés / terheléselosztás

Rendben, túl sokat beszélünk arról, ami a háttér fejlesztésbe megy. De hogyan válhat ilyenné?

Kezdje a minimális követelményekkel

Mint mondtam, a háttérbe, csakúgy, mint a játékokra, van egy sor minimumkövetelményünk és ajánlott követelményünk. A minimumkövetelmények 3 dologból állnak:

Tanuljon meg egy háttérprogramozási nyelvet

Amikor az emberek maguk tanulnak, általában nincs csapatuk vagy senki, aki képes lenne a front end fejlesztésére. Mindannyian egyedül vannak. Tehát gyakran önnek kell létrehoznia weboldalakat és szervereket, legalábbis az elején.

Bár sokféle választási lehetőség van a háttérprogramozási nyelvek számára, és nem tudok egyetlen olyan népszerű rendszernyelvre sem gondolni, amely nem támogatja a HTTP szervereket. A Csomópont kiválasztásának előnye, hogy a kezelőfelület JavaScript-készségei átadhatók a háttérbe.

Ennek ellenére többféle nyelv közül választhat, például Java, C ++, C #, Python, PHP stb.

Hogyan választhat egyet, megkérdezheti. A válasz ugyanaz, mint a kezelőfelület fejlesztői cikkében: Kezdetben mindent ki kell próbálnod, és megnézheted, melyik kattint a legjobban veled.

A csomópont egyszerű, mivel a JS programozását már elvégezhette a kezelőfelületen. De ha Ön Python vagy Java fejlesztő, akkor könnyen megtalálhatja ezeket. Teljesen a szakmájától és az ízlésétől függ.

Tudjon meg többet a tárhely kezeléséről

Elmúltak azok az idők, amikor kézzel kell megvásárolnia a szervereket, és be kell állítania őket otthonában, csatlakoznia kell az internetszolgáltatójához, és mindent meg kell tennie. Ez a felhőalapú számítástechnika korszaka. Most, amikor webhelyét tárolja, főként két lehetőség közül választhat:

  1. Olyan felügyelt tárhelyszerverekre törekszik, mint a HostGator vagy a GoDaddy.
  2. Olyan felhőalapú tárhelyszolgáltatókra törekszik, mint a GCP, az AWS vagy a DigitalOcean.

Mi a különbség a kettő között? Mindkét esetben a szerverek az adott vállalatok tulajdonában vannak és működtetik őket. De a fő különbség az, hogy a felügyelt tárhely sokkal GUI-barátabb, gazdag eszközkészlettel rendelkezik a fájlrendszer megtekintéséhez, a használat ellenőrzéséhez, a hivatalos domain e-mailjeinek kezeléséhez, fájlok feltöltéséhez / letöltéséhez a szerveréről stb. Alapvetően kevésbé műszaki ismeretekkel rendelkező emberek számára készült beállítás.

Ezért nem ajánlom a kezelt webhelyeket, mint például a HostGator vagy a GoDaddy a tapasztalt fejlesztők számára. Ennek ellenére jó platform lehet a hibák elkövetésére és a továbbtanulásra, elsősorban azért, mert általában előre fizetett tervekkel rendelkezik. Ezenkívül lesz egy szép felhasználói felület a dolgok kezeléséhez, amely nem teszi lehetővé, hogy véletlenül lelője a számláit.

De amikor elkezdi felvenni a sebességet, azt javaslom, hogy váltson felhő szolgáltatóra. Ez elveszi a cPanel minden olyan szép eszközét, amelyet a szervereken található fájlok és mappák kezeléséhez használt. De ugyanakkor kihívást jelent arra, hogy sokat emeljen a képességeivel.

Ma sok felhőszolgáltató is kínál egy tisztességes, ingyenes próbaverziót, hogy Ön valóban kipróbálhassa a platformját, mielőtt teljes körűen belépne. A fejlesztőknek szánt weblapomat - codedamn - a DigitalOcean-on tárolom, és úgy találom, hogy ez jó egyensúlyban van. a webhely összetettsége és jellemzői.

Ezzel a linkkel regisztrálhat a DigitalOcean-on, és ingyenes 100 USD kreditet kaphat . A DigitalOcean példányok olcsóbbak, mint havi 5 dollár, tehát kb. 20 hónapos lesz a kifutópálya, nagyon, mi?

Egyébként bármelyik felhő szolgáltatót választhatja. Ezután fontos megtanulni kezelni a kiszolgálót csak a parancssor használatával, ssh'ing bele.

További információ a verziókezelő rendszerekről

A Git for VCS-n kívül vannak más megoldások is. De a Git a leggyakrabban használt és legegyszerűbb megérteni.

Magánszemélyként nem biztos, hogy azonnal értékelni fogja. De meg fogja érteni, miért olyan fontos ez a pillanat abban a pillanatban, amikor elkezd egy csapatban dolgozni a projekt több funkciójáról egyszerre.

A Git lehetővé teszi a munkafolyamatok kezelését elkötelezettségek és ágak segítségével. A megbízások olyanok, mint az ellenőrző pontok a kódalapodban - azok, amelyekre mindig visszatérhetsz, ha elcseszed.

Az ágak olyanok, mint a projekt alternatív valóságai , ahol valami egészen más történhet. Ezek az alternatív valóságok bármikor létrehozhatók, és bármikor újra összevonhatók.

Ha ezeket a valóságokat össze lehet egyesíteni a kompatibilitással, akkor rendben van. De ha konfliktus van (például ha az egyik valóságban élsz, a másikban pedig halott vagy), akkor manuálisan kell választanod. Egyéb változtatások automatikusan összevonhatók.

A Git nagyon érdekes, és ha egyszer ráakad, minden projektben érdemes használni. Eredményesen vezetheti munkája előzményeit (csak az elkötelezettségek közötti különbséget tömöríti és tárolja).

Ez lehetővé teszi továbbá online git-tárak létrehozását olyan webhelyeken, mint a GitHub, amely a webhely központi igazságforrásaként működik. A GitHubhoz hasonló webhelyek speciális webhorgokkal konfigurálhatók, amelyek valóban frissíthetik webhelyét, amikor új ellenőrzőpontot (új elköteleződést) ad hozzá, anélkül, hogy bármikor manuálisan kellene a szerverre mennie és saját maga frissítenie.

Keresse meg az ajánlott készségeket

Nagy híve vagyok annak, hogy megtanuljak. És a legjobb módszer valamihez szükségszerűségből vagy érdeklődésből fakad. Amint elég jónak tartja magát a minimumkövetelményekkel, itt az ideje, hogy elsajátítsa az ajánlott készségeket. Ez magában foglalja az összes olyan eszközt, mint a fent említett Docker és NGiNX.

A DevOps is nagyon jól illeszkedik a háttér fejlesztőkhöz. Megpróbálhatja felfedezni a TravisCI-t vagy a CircleCI-t az automatizált építési telepítésekhez. A folyamatos integráció és telepítés (CI / CD) egy olyan téma, amely további egész blogbejegyzést is igénybe vehet, ezért ebbe nem fogok belemenni. Valójában a helyes beállítás után nevetséges mennyiségű fejlesztői időt takarít meg!

Ezután jönnek az adatbázisok, amelyeket az ajánlott készségek közé helyeztem. De nagyjából minden alkalmazásra szükséged lesz adatbázisokra, amelyek valamilyen adatállandóságot tartalmaznak, amelyet a felhasználó generál.

Az adatbázisokkal általában könnyű dolgozni, de nehezebb karbantartani és megfelelően módosítani. A háttér-technológiai verem kezelésének legjobb módja az, ha mindent egy szerveren tárol - az alkalmazás kódját, a fordított proxy szervereket, az adatbázist stb. válassza le a meglévő üzleti logikáról.

Ezzel lehetővé teszi egy olyan architektúrát, amely nagymértékben méretezhető. Egy adatbázis-üzemeltetést igénylő alkalmazásnak lehet egy optimalizált megoldása az adatbázisok számára. A nagy forgalmú helyek számára pedig jó CDN-mechanizmussal kell rendelkeznie a statikus eszközök kitöltésére stb.

Következtetés

Annyi mindent meg kell tanulni, de mindez megvalósítható, ha nem adja fel. Mondja el, mit gondol erről a bejegyzésről a twitter és Instagram kezelőim segítségével. Sokat fog jelenteni számomra, ha ott csatlakozunk!

Továbbá, ha érdekel, fizessen a codedamn oldalon - egy fejlesztői központú platform az olyan tanulási technológiákhoz, mint a háttérfejlesztés ! Még egy YT videót is közzétettem arról, hogy 2 perc alatt felpörgeti a saját egyszerű webszerverét! Ezt nézd meg, és tudasd velem, mit gondolsz!

Béke!