2.Full Stack, back-end, front-end programuotojas
Palyginsime front-end, back-end ir full stack programuotojus, jų darbus ir skirtumus. Kiekvienas iš šių vaidmenų atlieka svarbias funkcijas kuriant programas ir svetaines.
1. Front-end programuotojas
- Apibrėžimas: Atsakingas už vartotojo sąsają ir viską, ką mato vartotojas.
- Technologijos: HTML, CSS, JavaScript, dažnai naudojamos bibliotekos ar framework'ai (pvz., React, Angular).
- Darbo užduotys:
- Sukurti ir optimizuoti puslapių dizainą.
- Užtikrinti, kad svetainė būtų patogi naudoti (UX).
- Testuoti, kaip svetainė veikia įvairiuose įrenginiuose ir naršyklėse.
2. Back-end programuotojas
- Apibrėžimas: Atsakingas už serverio pusę, duomenų bazes ir logiką, kuri vyksta už scenos.
- Technologijos: Python, Java, Ruby, PHP, Node.js, SQL, NoSQL.
- Darbo užduotys:
- Kurti ir valdyti duomenų bazes.
- Rašyti serverio logiką ir API.
- Užtikrinti duomenų saugumą ir našumą.
3. Full stack programuotojas
- Apibrėžimas: Turi žinių ir įgūdžių tiek front-end, tiek back-end srityse.
- Technologijos: Kombinuoja front-end ir back-end technologijas.
- Darbo užduotys:
- Dirbti su visais projekto aspektais – nuo vartotojo sąsajos iki serverio pusės.
- Galėti spręsti problemas bet kurioje vystymo stadijoje.
- Būti lankstus ir greitai prisitaikyti prie įvairių technologijų.
Palyginimas
Vaidmuo | Atsakomybės | Reikalingos technologijos |
---|---|---|
Front-end | Vartotojo sąsajos kūrimas | HTML, CSS, JavaScript, React, Angular |
Back-end | Serverio logika ir duomenų bazės | Python, Java, Ruby, PHP, SQL, Node.js |
Full stack | Viskas – front-end ir back-end | Visos anksčiau išvardytos technologijos |
Kuris geresnis?
- Nėra objektyvaus „geresnio“: tai priklauso nuo jūsų interesų ir karjeros tikslų.
- Front-end: jei jums patinka dizainas ir vartotojo patirtis.
- Back-end: jei domitės serverių, duomenų ir logikos valdymu.
- Full stack: jei norite turėti platesnį žinių spektrą ir dirbti įvairiose srityse.
„Pinterest“ technologijų paketą sudaro:
- HTML, CSS ir JavaScript
- Python
- Java
- Eik
- Django
- Reaguoti
- Stuburas
- Redis
- MySQL
- nginx
„Uber“ technologijų paketą sudaro:
- HTML, CSS ir JavaScript
- Reaguoti
- jQuery
- Node.js
- Python
- PostgreSQL
- MongoDB
- Kasandra
- Hadoop
- Kafka
Svarbu suprasti, kad pateikus užklausą dėl tinklalapio, pvz., udemy.com, serveris neatsako pateikdamas tobulai suformuotą tinklalapį, paruoštą naudoti. Vietoj to, jis reaguoja kodu, kuris paprastam žmogui neturi prasmės. Jūsų naršyklė turi paimti tą kodą ir paversti jį žmonėms suprantamu tinklalapiu.
Visas procesas yra panašus į vieną iš tų patiekalų rinkinio paslaugų, kurios jums atsiunčia dėžutę ingredientų, kuriuos turite gaminti patys. Pirma, jūs paprašote valgio rinkinio, tarkime, abrikosų vištienos su balzaminėmis žaliosiomis pupelėmis. Maisto rinkinių įmonė gauna jūsų užklausą ir atlieka visus reikalingus darbus, kad sukurtų jūsų dėžutę: perka ingredientus, supakuoja juos ir paruošia instrukcijas. Galiausiai įmonė atsako pateikdama patiekalų rinkinį, o po poros dienų gausite dėžutę, pilną žalių vištienos krūtinėlių, abrikosų konservų, balzamiko padažo, šparaginių pupelių ir patiekalo gaminimo instrukcijų rinkinį. Jūs vis dar neturite paties valgio; šiuo metu tai tik sudedamųjų dalių rinkinys. Jūs turite patys gaminti maistą savo virtuvėje.
Ši metafora yra sudėtingas būdas paaiškinti, kad tinklalapiai yra kodo, veikiančio kažkur serveryje, IR kodo, veikiančio jūsų naršyklėje, rezultatas. Kaip visada sakydavo mano tėvų vedybų patarėjas – darbo yra abiejose pusėse!
BACK-END
Užpakalinė dalis, dar vadinama serverio puse, yra „užkulisinė“ logika, kuri veikia serveryje. Pagal mūsų patiekalų rinkinio analogiją, užpakalinė dalis yra tai, kas nutinka prieš valgio rinkiniui patenkant į jūsų priekines duris. Perkamos sudedamosios dalys, surašomos instrukcijos, viskas supakuota ir išsiųsta jums. Panašiai, kai pateikiate tinklalapio, pvz., udemy.com , užklausą, serveris turi atlikti daug darbo, kad sukurtų tinklalapio „valgo rinkinį“.
Tai apima tokių klausimų apdorojimą kaip:
Ar šis vartotojas yra prisijungęs? O gal jie visiškai naujas vartotojas? Ar jie prašo tinklalapio, kurį turi leidimą peržiūrėti? Kokius kursus jie jau turi, jei tokių yra? Kiek pažangos jie padarė kiekviename kurse? Kokios yra šiandien populiariausios temos ir geriausiai įvertinti kiekvienos temos kursai? Kokia tvarka turėčiau išvardyti šiuos kursus? Kokius kursus galiu pasiūlyti šiam vartotojui, kurie jam galėtų patikti? Ar parduodami kursai? Ar šis vartotojas turi kokių nors pranešimų ar pranešimų, apie kuriuos turėčiau pranešti?
rašo kodą, kad visa tai veiktų. Užpakalinės dalies kūrėjo vaidmuo yra įdiegti visą būtiną „verslo logiką“ tam tikroje žiniatinklio programoje. Paprastai tam reikia darbo su serveriu, tikrosios programos logikos ir duomenų baze. Kaip matėte ankstesniame kamino pavyzdyje, daugelis įmonių kartu naudoja kelias programavimo kalbas ir duomenų bazes.
Populiariausios galinių scenarijų kalbos yra Java, Python ir PHP, tačiau taip pat dažnai naudojamos kitos kalbos, pvz., Ruby, Node.js, Go, Scala ir C++. Užpakalinės dalies kūrėjai dažnai dirba su serverio sistemomis, tokiomis kaip Django, Python sistema ir Laravel, PHP sistema. Kitos populiarios sistemos yra „Flask“, „Express“, „Spring“, „Phoenix“ ir „Ruby on Rails“. Šie įrankiai padeda kūrėjams kurti žiniatinklio programas ir atsakyti į gaunamas užklausas; kai kurie iš jų taip pat daro daug daugiau!
Back-end kūrėjai taip pat dažnai dirba su sudėtingais duomenimis ir sąveikauja su tokiomis duomenų bazėmis kaip MySQL, PostgreSQL, MongoDB ir daugelis kitų
Front End
„Priekinė dalis“ reiškia žiniatinklio programos dalį, kuri veikia jūsų naršyklėje. Pagal mūsų anksčiau pateiktą patiekalų rinkinio analogiją, priekinė dalis yra jūsų virtuvė namuose, kur jums reikia paruošti patiekalą iš ingredientų, kuriuos gavote paštu. Kai pateikiate tinklalapio, pvz. , udemy.com , užklausą, serveris sukuria tinklalapį, kurį siunčia atgal į jūsų naršyklę, tačiau atminkite, kad tinklalapis iš tikrųjų yra tik kodo rinkinys, skirtas jūsų naršyklei paleisti. Front-end kūrėjai rašo tą kodą.
Žiniatinklio naršyklės supranta tris pagrindinius įrankius: HTML, CSS ir JavaScript. Šios technologijos leidžia kurti gražias (arba negražias) interaktyvias žiniatinklio programas. Jie yra duona ir sviestas bet kuriam priekinės dalies kūrėjui. Kiekvienas įrankis atlieka tam tikrą vaidmenį:
- HTML – HTML dažnai apibūdinamas kaip tinklalapio pagrindas, nes jis apibūdina pagrindinę puslapio struktūrą ir turinį. Padarykite man nuorodą į kontaktų puslapį. Rodyti mano „cute_cat.jpg“ vaizdą. Pridėkite teksto pastraipą.
- CSS – Svetainės, sukurtos tik naudojant HTML, atrodo siaubingai. Laimei, galime naudoti CSS, kad sukurtume savo HTML turinį ir sukurtume gražius tinklalapius. Naudodami CSS galime keisti spalvas, perkelti turinį, kad sukurtume gražiai atrodančius maketus, manipuliuoti šriftais ir dydžiais ir netgi pridėti animacijų. Pirmąją teksto pastraipą padarykite purpurine ir paryškinta. Padarykite kiekvieną vaizdą 500 pikselių pločio. Padidinkite pirmąją antraštę ir apačioje padėkite jai oranžinį kraštelį.
- „JavaScript“ – „JavaScript“ leidžia kūrėjams į tinklalapius įtraukti interaktyvumo ir dinamiško turinio. Naudodami „JavaScript“ galime atlikti tokius veiksmus, kaip reaguoti į vartotojo paspaudimus, rodyti ir slėpti turinį, įkelti naują informaciją arba nusiųsti duomenis į serverį, neįkeldami puslapio iš naujo.
Pavyzdžiui, kai paskelbiate naują komentarą „Facebook“ įraše, „JavaScript“ kodas klauso, ar spustelėsite „pateikti“ arba paspaudę klavišą „Enter“. Tada jis nuskaito jūsų naują komentarą iš formos ir siunčia duomenis į serverį, kad būtų išsaugotas duomenų bazėje (dėl tam tikros užpakalinės logikos). Galiausiai jis atnaujina dabartinį tinklalapį, kad kartu su esamais komentarais būtų rodomas naujas komentaras. „JavaScript“ taip pat gali būti naudojamas kuriant naršyklės žaidimus.
Priekinės dalies kūrėjai didžiąją laiko dalį praleidžia dirbdami su šiomis trimis priekinės dalies technologijomis. Be to, dauguma šiuolaikinių žiniatinklio programų yra sukurtos naudojant „JavaScript“ bibliotekas ir sistemas, tokias kaip „React“, „Angular“ ir „Vue“, kurios padeda kūrėjams valdyti sudėtingų sąsajų kūrimą. Prietaiso kūrėjai dažnai glaudžiai bendradarbiauja su interneto dizaineriais ir UX dizaineriais, kad sukurtų programų vartotojo sąsajas. Daugelis pradedančiųjų mano, kad priekinės dalies kūrimas yra tik „papuošimas“ ir „dailų išvaizda“, tačiau taip nėra! Daugelis front-end kūrėjų praleidžia savo laiką spręsdami sudėtingus techninius iššūkius, kylančius dėl naršyklių apribojimų ir rašydami sudėtingą JavaScript logiką.
Full stack
Dabar prieiname prie pagrindinio šio straipsnio klausimo: kas iš tikrųjų yra viso paketo kūrėjas? Teoriškai viso paketo kūrėjas yra visų sričių kodavimo specialistas, įvaldęs kiekvieną kūrimo krūvos dalį .
Pagal mūsų patiekalų rinkinio analogiją, pilno krūvos kūrėjas sukuria patiekalų rinkinį ir jį taip pat gamina. Viso paketo kūrėjai turėtų turėti galimybę patys sukurti visą žiniatinklio programą, priekinę ir galinę dalį. Jiems turėtų būti patogu vieną dieną rašyti „JavaScript“ ir CSS, o kitą – „Python“ (ar kokią nors kitą kalbą) ir SQL, visa tai yra vyresnio lygio. Tai idealu, bet ar tai iš tikrųjų įmanoma?
Pastaraisiais metais buvo smarkiai atsisakoma šio pilno krūvos apibrėžimo. Kūrėjų advokatas Brianas Rinaldi rašo: „Nesu termino „full stack developer“ gerbėjas. Manau, kad tai suteikia įmonėms lengvą būdą nerealiai visko prašyti ir nustato nepasiekiamą standartą, ypač jaunesniems kūrėjams.
Šiandieniniame itin sudėtingų programų ir nuolat kintančių technologijų pasaulyje yra pakankamai sunku neatsilikti nuo naujausių tendencijų ir įrankių, skirtų vienai kalbai, jau nekalbant apie kiekvieną paketo dalį. Tikrai yra dieviško lygio kūrėjų, kurie turi gilių, enciklopedinių žinių apie kiekvieną kūrimo krūvos dalį, tačiau jie yra išimtis. Daugelis iš mūsų esame paprasti mirtingieji, kurie bando išgyventi dieną nesulaužydami savo prašymų ir nepakliūdami į ašarų balą.
Realesnis Full stack apibrėžimas
Šiomis dienomis daugelis kūrėjų teikia pirmenybę labiau pasiekiamam, platesniam viso paketo kūrėjo apibrėžimui. Šis asmuo yra tam tikros krūvos dalies ekspertas, tačiau jam patogu dirbti per visą krūvą. Viso paketo kūrėjas gali parašyti visą programą nuo nulio, tiek priekinio, tiek galinio kodo, nors tai gali būti ne visa tai aukštesnio lygio.
IDEO generalinis direktorius Timas Brownas vartoja terminą „t formos asmuo“, kad apibūdintų žmones, turinčius plačią žinių bazę (horizontalioji „T“ dalis) kartu su gilia patirtimi vienoje ar daugiau sričių (vertikalioji „T“ dalis). ). Viso krūvos kūrėjas turėtų būti „t“ formos kūrėjas. Kitaip tariant, viso paketo kūrėjas turi turėti didelę patirtį ir supratimą apie visą krūvą IR specialių žinių. Laikykite juos „visų amatų meistru ir bent vieno meistru“.
Pavyzdžiui, hipotetinis viso krūvos kūrėjas gali turėti eksperto lygio patirties su JavaScript, React ir kitais sąsajos įrankiais, tačiau jis taip pat turėtų jaustis patogiai rašydamas pagrindinę vidinės sistemos logiką, dirbdamas su duomenų bazėmis, diegdamas autentifikavimą, diegdamas ir pan. būti „silpnesni“ su foniniu kodu nei specialus užpakalinis kūrėjas, tačiau apskritai jie turi išsamesnį įgūdžių rinkinį.
Kodėl šis skirtumas yra svarbus
Nėra nieko blogo būti specializuotu kūrėju. Daugeliu atvejų specializuoti front-end arba back-end ekspertai yra labiau samdomi ir gali gauti didesnį atlyginimą. Tuo pačiu metu daugeliui įmonių reikia universalių kūrėjų, turinčių platesnį įgūdžių rinkinį. Tai ypač būdinga pradedančiosiose įmonėse ir mažose įmonėse, kur kūrėjams gali tekti dirbti per visą krūvą, kad produktas išeitų.
Jis netinka visiems, tačiau būdamas pilno krūvio kūrėju turi savo privalumų. Susipažinimas su visomis kamino dalimis daro jus „empatiškesniu“ kūrėju. Visapusiškai supratę, kaip veikia programa, galite nustatyti, kur viskas gali suklysti. Tai suteikia jums galimybę bendradarbiauti ir bendrauti su labiau specializuotais savo komandos kūrėjais. Ir galiausiai, pilno krūvos kūrėjai gali panaudoti savo įgūdžius kurdami savo prototipus ir šalutinius projektus.
Jei esate pradedantysis, nesijaudinkite dėl šių pozicijų terminų ar etikečių. Neįtempkite savęs, bandydami išmokti visas kalbas ir sistemas po saule. Sutelkite dėmesį į vieną ar du įrankius ir laikykitės jų, kad ir kaip būtų viliojanti šokinėti tarp technologijų.
Visiems pradedantiesiems rekomenduoju išmokti HTML, CSS ir JavaScript, net jei planuojate tapti pagrindiniu kūrėju. Ribos tarp priekinės ir užpakalinės dalies yra prastai apibrėžtos, ir tikriausiai savo kelionėje šiek tiek išmoksite abiejų. Gana lengva tapti „visų profesijų meistru ir nė vieno meistru“, tačiau atminkite, kad čia tikslas yra būti „visų amatų meistru ir bent vieno meistru“, o tai reikalauja daug daugiau darbo.
Komentarai
Rašyti komentarą