Čo by mal poznať backend developer. Z frontentného na backend

Voľné miesto:
backend Web Developer

Jednou z požadovaných špecialít v oblasti vývoja webového vývoja je vytvorenie backend, to znamená, že server časť webovej aplikácie. Na úspešné zamestnávanie profesionálov je potrebná určitá batéria vedomostí a zručností. Zástupcovia firiem hovoria, čo odborníci by chceli vidieť vo svojom tíme

  1. Aké znalosti a zručnosti by mali mať vývojár Backend-Web?
  2. Čo je toolkit backend web developer?
  3. Aké sú požiadavky spoločnosti na vytvorenie potenciálnych zamestnancov?
  4. Aké sú požiadavky na pracovné skúsenosti?
  5. Existujú nejaké špeciálne požiadavky, ktoré sú spôsobené špecifickosťou spoločnosti?

Arthur Bozhenov, senior programátor oddelenia internej automatizácie pozitívnych technológií

Timur Himullin, Prírodný inžinier pre Automatizačné testovanie Katedra rozvojových technológií Pozitívne technológie

1. Arthur Bozhenov: Developer backend musí mať tieto zručnosti a znalosti:

  • multi-závitové programovanie;
  • princípy kyseliny (atomicity, konzistencie, izolácia, spoľahlivosť) a ich aplikácie v praxi;
  • všeobecné zásady sieťovej architektúry a protokolov;
  • Životný cyklus požiadavky / odozvy HTTP, dráha pasáže;
  • ochrana sieťových pripojení (HTTPS). Autorizácia. Prístupové práva na zdroje;
  • Odpočinok, Odata, Webapi, mydlo;
  • webové služby;
  • hosting webových aplikácií (IIS, NGINX, LIGHTPD, NODE.JS, APACHACH);
  • Škálovateľnosť riešenia, vyrovnávacích / smerovacích požiadaviek;
  • protokolovanie;
  • ukladania údajov;
  • ukladanie dát (primeraný výber metódy ukladania v závislosti od úlohy);
  • práce s veľkým množstvom údajov.

2. Arthur Bozhenov: Základný nástroj TOOLKIT Backend Web Developer:

  • pohodlné IDE (vizuálne štúdio, netbeans atď.);
  • služby alebo nástroje na vytváranie / prezeranie / úpravu výrazov Regex, JSON, XML, text v nesprávnom kódujúcom;
  • Google a stackoverflow;
  • Mongodb / redis / memcached;
  • ElasticsEarch / Kibana;
  • Rabbitmq / Zeromq / MSMQ a ďalšie MQ.

Timur Himullin: Pokiaľ ide o IDE, toto je prípad chuti, aspoň poznámkový blok (Sabloim, JE), ale ja by som vyzeral lepšie v smere výrobkov JetBrain a iných, ktorí sú dobre integrované.

3. Arthur Bozhenov: Vyššie (voliteľné) technické (povinné). Zážitok praktická práca dôležitejšie.

Timur Himullin: Pokiaľ ide o vzdelávanie, je to lepšie technické alebo matematické.

4. Arthur Bozhenov: 3-5 rokov nefrontového vývoja.

Timur Himullin: Pre backend vývojárov nemôžem objasniť.

5. Arthur Bozhenov: Analytická myseľ.

Timur Himullin: Skutočná zručnosť pracovať v tíme a schopnosť rokovať. Developer, ktorý nevie, ako modelovať a pokračovať v práci bezprostredne bez premýšľania z celkovej architektúry a interakcie všetkých aplikačných modulov, nechcel by som nikde vziať. Na outsourcing nechajte sedieť!

Evgeny Kuzin, vedúci oddelenia sieťových projektov,LLC "Doktor Web"

1. Po prvé, backend web developer musí mať spoločnú batožinu pre všetkých vývojárov - inžinierske myslenie, schopnosť zadať podstatu úlohy, rozložiť ho na komponenty a správne vybrať nástroje na jeho vyriešenie.

Architektúra webovej aplikácie sa výrazne líši od architektúry obyčajného aplikovaný softvér V prvom rade, desiatky súčasne a niekedy stovky používateľov môžu pracovať s webovými aplikáciami. Izolácia zákazníkov z seba, bezpečnosť systému, výpočet nárastu produktivity pomocou škálovania systému a súvisiacich architektonických a technických riešení sú úplne padlé na ramenách webových vývojárov.

Po druhé, je dôležité, aby web developer reagoval citlivý na rozvoj internetu, analyzovať použité technológie a nástroje.

The Web Developer by sa nemal báť zvládnuť nové technológie, by sa dalo ľahko zvýšiť (v porovnaní s kolegami - programátormi aplikácií) a bude môcť konať rýchlo.

2. Nevolajte špecifické programy, pretože pre každé možnosti ekvivalentné možnosti sú možné.

Samozrejme, prehliadač, so všetkými rozšíreniami potrebnými na analýzu, overovanie a manipuláciu s prvkami a skriptmi na webovej stránke. Potom nástroje, ktoré umožňujú odosielanie rôznych vlastných požiadaviek HTTP (od 95% Web Development je protokol HTTP) a analyzujú dopravu a výmenu údajov a výmenu údajov podrobne medzi klientom a serverom. Tiež backend web developer potrebujú textový editorJe žiaduce, aby sa používali použité programovacie jazyky, ladenie nástrojov, profilovania a kontroly verzií.

Samostatne stojí za zmienku nástrojov na písanie alebo generovanie technickej dokumentácie. Dokumentácia je dobrá, dobrá dokumentácia nie je tiež zlá.

A samozrejme, hlavné nástroje sú hlavou a rovnými rukami.

3. Je absolútne nevyhnutné poznať ruskú, byť schopný jasne a jasne uviesť svoje myšlienky pri komunikácii s kolegami, a to ako písomne \u200b\u200ba ústne. Pre zvyšok nepotrebujeme žiadateľov o povinnom spôsobe vyššie technického vzdelávania alebo dostupnosti všetkých certifikátov - vyriešiť kvalitu práce a praktických poznatkov.

4. Tu je rovnaký princíp ako so vzdelávaním. Skúsenosti, skúsenosti - bezpodmienečné profesionály, ale každý kandidát považujeme individuálne.

5. Ak hovoríme o vývoji práve pre internet, potom samotný vývoj webového vývoja už predstavuje vytvorenie aplikácie, ktorá funguje vo verejnom prostredí pre užívateľa, ktorých skutočné zámery nie sú známe. Programovanie akúkoľvek akciu, musíte sa spýtať sami seba: Čo ak užívateľ (útočník) automatizuje nekonečné vykonávanie tejto akcie? Čo ak budú vstupné údaje aplikácie ľubovoľne upravené? Že ak sa odkaz na túto službu dostane dovnútra otvorený prístupBude odoslaný cez IM k inému používateľovi? Atď.

Na základe špecifických špecifík našej činnosti často pokračujeme v ceste k útočníkom a údaje, s ktorými pracujeme, majú veľký záujem o niektoré kruhy, takže niektoré z našich webových aplikácií vyžadujú obzvlášť dôkladnú ochranu.

Nikolai Netherry, vedúci nového vývoja, Badoo

1. Backend Web Developer v Badoo, ako každý dobrý inžinier, by mal byť schopný pochopiť úlohu a byť schopný efektívne riešiť ho v rámci dostupných technológií a nástrojov. Používame PHP + MySQL, takže naša web developer musí najprv zdarma mať PHP a SQL. Musí byť zodpovedný a snaží sa robiť svoju prácu dobre - dodržiavať termíny, pochopiť výrobku / technickú hodnotu úlohy, reagovať na konečnú kvalitu.

2. Základným súborom je PHP, MYSQL, NGINX, GIT, JIRA, IDE, Obľúbený prehliadač a príkazový riadok. Okrem toho máme veľký počet rôznych nástrojov, systémov, knižnice, ktoré sa vývojári používajú všade na riešenie určitých úloh. Niektoré z týchto nástrojov sú k dispozícii v open source, napríklad PINBA je real-time PHP monitorovacím činidlom, náš nástroj na formátovanie kódov je PHPCF, PHP-blokovanie pre knižnicu Leptice.

3. Ak osoba spĺňa naše požiadavky na zručnosti a vedomosti, potom sme pripravení ponúknuť mu prácu bez ohľadu na svoje vzdelávanie.

4. Situácia je podobná situácii v oblasti vzdelávania: žiadne prísne a formálne požiadavky.

5. Naše projekty majú veľké publikum a dostatočne načítané php-backends. V špičkách zvládnú až 50 tisíc požiadaviek za sekundu. V tejto súvislosti venujeme osobitnú pozornosť téme produktivity. Je potrebné pochopiť základné princípy cache, replikácie, optimálnej práce s údajmi, optimalizovať spotrebu a distribúciu zdrojov. Buďte schopní vidieť a lokalizovať problém produktivity na akejkoľvek úrovni.

Denis Streetov, vedúci oddelenia technologického rozvoja a údržbu spoločnosti "NTC IT Rosa"

1. Kandidát na takúto pozíciu v NTC IT ROSA budú potrebné nasledovnými zručnosťami:

  • dobrá znalosť Ruby na koľajniciach 4x;
  • oboznámenosť s rozvojom poháňaným správaním;
  • znalosť so zásadami kolektívneho rozvoja - riadiace systémy verzií, trackerov úloh, a tak ďalej;
  • skúsenosti s databázami (relačné a Nosql);
  • skúsenosti s Slim / Haml;
  • vedomostí a skúseností s Javascriptom / Coffeskscriptom;
  • znalosti CSS / SCSS.

2. V NTC IT Rosa pre webový vývoj v súčasnosti používa Bootstrap Framework, ako aj JavaScript Framework Angularjs. PostgreSQL a Redis sa používajú na ukladanie údajov. Vývoj Ruby na koľajniciach sa vykonáva v súlade s prístupovým prístupom poháňaným správaním pomocou Rspec Toolkit.

3. Prítomnosť vyššieho technického vzdelávania bude plus, ale na prvom mieste sa nebudeme pozerať na diplom, ale o zručnostiach a skúsenostiach potenciálneho kandidáta.

4. Skúsenosti je žiaduce z roka na rok na projektoch, kde boli použité tie, ktoré sú uvedené v prvom odseku technológií (aspoň rubín na koľajniciach).

5. Vývojári Backend-Web v NTC IT ROSA pracujú najmä cez vývoj a montážny systém ABF, ktorý sa používa na vytvorenie našich hlavných produktov - riadok distribúcie Linuxu OS a produkty v rámci tohto systému. Preto bude veľkou výhodou, ak je kandidát na toto voľné miesto oboznámený s Linuxom as montážnymi balíčkami pre tento systém. Nebude to ďalším známym s inými technológiami používanými v ABF - virtualizácia (najmä LXC), systémy riadenia konfigurácie (napríklad ASSIble) a systémy na skladovanie kódov (primárne git).

Sergey Kazantsev, Senior Developer, "Kaspersky Lab"

1. Becasend vývojári sú zodpovední za kód vykonaný na webových serveroch.

Tak, Backend vývojári by mali pochopiť nielen programovacie jazyky, ale aj serverovú architektúru, databáz a sieťových interakcií protokoly.

2. Developer musí poznať aspoň jeden programovací jazyk na vysokej úrovni, rámec pre efektívny vývoj webového rozvoja a webového servera.

Populárne zväzky môžu byť:

  • C # + ASP.NET + IIS;
  • Java + pružina MVC + Apache Tomcat;
  • Ruby na koľajniciach + nginx;
  • Python + django + apache;
  • Php + Apache;
  • ... alebo ich kombinácie.

Mnohé spoločnosti Web Services sú postavené na základe technológií spoločnosti Microsoft a platformy .NET, ale Ruby na koľajniciach, Perl, PHP sú tiež aplikované.

V arzenále dobrej backend developer sú vždy nástroje:

  • monitorovanie dopravy: Fiddler, Wireshark;
  • profilovanie, požiadavky na pamäť a databáz;
  • rýchle protokoly vyhľadávania: Grep.

3. Povinné zručnosti pracovať s databázami, frontami správ a veľkých projektov na použitie distribuovaných cache.

4. Požadované skúsenosti môžu závisieť od stanoviska, ktoré žalobca tvrdí: \\ t

  • 1 rok - Junior Web Developer;
  • 2-5 rokov - Web Developer;
  • 5-7 + - senior / vedúci vývojár.

5. Osobitné požiadavky Kaspersky Lab možno pripísať znalosti kryptografie, potenciálnych hrozieb pre webové aplikácie a spôsoby, ako im zabrániť.

Ilya Kutukov, senior programátor, špecialista na webové inžinierstvo v paraleloch

1. My v paraleloch sú teraz otvorene dva voľné miesta pre takýchto špecialistov - popredný vývojár Web Backend (http://hh.ru/vacancy/12586616?queery\u003dparalels) a popredné webové bachend developer a architekt (Python) (http: //hh.ru/vacancy/12599030?Query\u003dAparlels), takže presne vieme, čo chceme od takýchto špecialistov. Rozumie sa, že osoba, ktorá prichádza k nám, vlastní potrebné programovacie jazyky a technológie dostatočne pracovať. Okrem kontrole zručností kódovania a celkovej erudície poskytujeme test na architekt - text, ktorý je voľne napísaný a vedome neúplný TK o vývoji systému. Ďalej, žiadajúci kandidáta, aby objasnil, že nie je pre neho jasné, aké ďalšie otázky má a ako vidí hlavné zložky systému, dátový systém, ako sa všetko zmení s zvyšovaním zaťaženia, množstva údajov a kde možno zanedbať.

2. Hlavný nástroj Toolkit - IDE (budem objasniť, že sme v tíme, preferujú pycharm), vývojárskym prostredím, to znamená súbor programov, ktoré ho robí čo najviac na plnenie bojových serverov, ale v tom istom Čas so schopnosťou rýchlo pochopiť, čo sa deje, vcs, skripty hlavy. Zo zaujímavých, relatívne nových nástrojov, technológií a prístupov by som tiež rád spomenul "Reaktívny" prístup (Akka, Rx. *, Apache Storm, atď), ktorá vyžaduje vývojára myslenia na úrovni správ, udalostí a ich úpravy. Rovnako ako microservice architektúry, ktoré sú dobre dopĺňajú svoje jazyky popisu rozhrania (šetrí, AVRO, protrobafs, JSON Schéma), ktoré umožňujú vytvárať zmluvy, pre ktoré sa údaje vymieňajú.

3. Vzdelávanie pre nás nehrajú zásadnú úlohu.

5. Máme Backend Developers pracovať na takýchto funkčnosti ako Paralls MyAccount, Prístupový portál, Portál na plochu, v riešeniach, ako sú prístupové paralely (riešenie vzdialený prístup) A Parallels Desktop pre Mac (spustenie na Machs rôznych operačných systémov a ich aplikácií bez reštartu), s rôznymi riešeniami infraštruktúry. Preto máme takúto špecifickosť ako nulové prestoje, a dobre, ak osoba nielen chápe, aké zmeny by sa mali vykonať, ale aj ako to urobiť, neovplyvniť používateľov.

Konstantin Kichinsky, expert na strategickú technológiu, Microsoft Rusko

1. Znalosti a zručnosti potrebné pre Backend Web Developer:

  • Sieťová architektúra, protokoly, komunikačné kanály.
  • Technologický stoh zodpovedajúci projektu (napríklad C #, .NET, ASP.NET alebo JavaScript / TIXPRIPTOR + NODEJS) + Riadenie podkladového operačného systému (napríklad Windows / Azure + Powershell).
  • Automatizácia nasadenia a testovania (vrátane zaťaženia).
  • Pochopenie cloudové funkcie Hlavný poskytovatelia (Microsoft Azure, AWS), vrátane poskytovania škálovateľnosti služieb.
  • SDL a vo všeobecnosti bezpečnostné otázky (vrátane šifrovania a autentifikácie).

2. Nástroje: Visual Studio, Git + Zvyšok závisí od procesov a technologického zásobníka.

3. Vzdelávanie: Profil (IT) + Praktické skúsenosti, vítané znalosti kvality v špecifických oblastiach (aj bezpečnosť alebo zabezpečenie tolerancie na poruchu lokality).

4. Skúsenosti: Praktické skúsenosti v reálnych projektoch vrátane účasti na projektoch OS.

5. Osobitné požiadavky: Azure.

Alexander Mountain, riaditeľ informačné technológie MAIL.RU GROUP.

1. Po prvé, musí poznať backend - jeho hlavný programovací jazyk, databázu, princípy organizovania serverových aplikácií. Okrem toho potrebuje znalosti na webe: zariadenie HTTP protokolu, CSS schopnosti, aspoň elementárne vlastníctvo HTML a Javascript. A nakoniec musí byť dobrým vývojárom - aby mohol byť schopný vykladať svoj vlastný a niekoho iného kódu, aby správne používal klasické algoritmy, vyberte príslušné dátové štruktúry.

2. Hlavným nástrojom je samozrejme programovací jazyk. Jazyk definuje druhú úroveň Toolkit: štandard pre tento rámcový jazyk a knižničné súpravy. Potom choďte databázy: najčastejšie MySQL alebo PostgreSQL - a Nosql Skladovacie zariadenia, ako napríklad Tarantool alebo Redis.

3. Neexistujú žiadne formálne požiadavky na diplom počas prístroja na prácu v skupine Mail.ru. Je oveľa dôležitejšie pre skutočné zručnosti a projekty, v ktorých sa zúčastnil. MAIL.RU GROUP má dva veľké vzdelávacie projekty: Technopark na základe MSTU Baumanu a Technika na základe IMC MSU, ktorého cieľom je poskytnúť študentom špecifické zručnosti v oblasti vývoja webového vývoja.

4. Opäť neexistujú žiadne formálne požiadavky, ale vo všeobecnosti možno povedať, že vývojár sa stáva úplne nezávislým niekde po dvoch alebo troch rokoch skúseností "druhé číslo".

5. Dohodňový vývoj bol tradične srdcom našej spoločnosti. Backend developer by mal byť naozaj najlepší vo všetkom - inteligentný, kreatívny, zodpovedný, elegantný, rovnako ako dobrý tímový hráč a najlepšie s okamirou okolo hlavy. Z technického hľadiska je našou špecifickosťou, že väčšina backend je napísaná na C ++, a nie skriptovacími jazykmi - vysoké zaťaženia nútené.

Alexander Nedzelsky, Head Heanto Web Studio

1. Ak hovoríme o určitom kolektívnom obraze Bachend Developer, potom:

  • pochopenie OOP, konštrukčné šablóny, znalosti základných algoritmov a dátových štruktúr;
  • vlastníctvo jedného z programovacích jazykov (alebo niekoľkých);
  • skúsenosti s DBMS, vedomosti SQL;
  • pochopenie princípov navrhovania relačných databáz;
  • skúsenosti s populárnymi rámcami;
  • skúsenosti s systémami riadenia verzií;
  • základné znalosti HTML, CSS, JavaScript;
  • schopnosť nastaviť testovacie prostredie.

2. "Poznámkový blok" a hlava na pleciach. A ak vážne, akýkoľvek IDE / editor a testovacia oblasť. Nástroje sú zvyčajne vybraté v závislosti od preferencií / úloh / schopností.

3. Prísne vyššie technické.

4. Prítomnosť dokončených a pracovných obchodných projektov.

5. Rozvíjame webové aplikácie, stránky a služby hlavne na PHP / MySQL. Zároveň používame Yii / Symfony a 1c-Bitrix pre štandardné riešenia. Preto sú pre nás dôležité relevantné skúsenosti a znalosti.

Eduard Gursky, technický vedenie v tíme vnútorného rozvoja, JetBrains

1. Developer Backend-Web je v skutočnosti osoba, ktorá vyvíja logiku servera a uvedomuje si, ktorý kontext bude vykonaný - v kontexte webových aplikácií. Ak sú backend-webové aplikácie implementované v Jave, a vo väčšine prípadov je to v skutočnosti ten istý špecialista aplikovať všetky rovnaké požiadavky na vedomosti a zručnosti ako obvyklý vývojár Java: Znalosť jazyka, pochopenie práce a zariadení Hlavné komponenty knižnice Java SDK atď. Skúsenosti sa však pridávajú aj s rôznymi webovými rámcami (zjednodušenie implementácie závislosti vstrekovania, MVC atď.), Schopnosť vyhodnotiť a zlepšiť výkonnosť aplikácie, jej škálovateľnosti. Je potrebné vziať do úvahy a pochopiť, ako rýchlo užívateľská aplikácia dostane výsledok serverového kódu, rovnako ako bezpečne a racionálne, iná funkcia servera racionálne prostredníctvom prehliadača používateľa.

Často backend webová aplikácia vyžaduje integráciu s službami tretích strán alebo export jeho funkčnosti ako externé API. Developer musí pochopiť, ako sa takéto úlohy realizujú, ktoré protokoly a mechanizmy sa používajú na to.

Napriek tomu, že takáto osoba sa zaoberá najmä vývojom logiky aplikačného servera, je potrebné vykladať alebo prototypovanie pomocou klientskej časti aplikácie. Odtiaľ nasleduje po tom, že je potrebné pochopiť fungovanie protokolu TCP / IP, HTTP protokolov, princípov interakcie prehliadača s webovou aplikáciou, základné vedomosti o usporiadaní, CSS štýloch, schopnosti Javascript.

2. Zvyčajne tento IDE pre rozvoj. Musíte tiež použiť profilovač na riešenie úloh produktivity, nadmernej spotreby zdrojov atď. V našom tíme používame Intellij.

3. Nesmieme ukladať žiadne formálne požiadavky na úroveň vzdelávania kandidátov. Dôležitejšia skúsenosť, porozumenie a inteligencia, a samozrejme, motivácia človeka.

4. Akékoľvek skúsenosti vo vývoji výrobných webových aplikácií, samozrejme, je plus. Vyššie uvedené znalosti a zručnosti nemôžu byť prítomné na špecialistu v neprítomnosti relevantných skúseností. Na rozhovoroch máme zvyčajne záujem o podrobnosti o účasti na rôznych projektoch uvedených v obnovení, aby sme posúdili skúsenosti, že kandidát mohol byť zakúpený implementáciou takýchto úloh. Špecialista, ktorý vyskúšal rôzne prístupy a technológie na riešenie podobných úloh pri vývoji webových aplikácií, ktoré môžu analyzovať výhody a nevýhody každého prístupu, je veľmi zaujímavým kandidátom.

5. Skúsenosti s vývojom aplikácií pomocou výrobkov JetBrains je vítané. Všetci sme v spoločnosti pokúsiť sa využiť naše výrobky, pretože sú pohodlné a pretože chceme, aby boli ešte pohodlnejšie!

Nedávno si tiež praktizujeme vývoj webových aplikácií v jazyku Kotlin. To dáva množstvo významných výhod a tiež robí proces písania kódu na to príjemnejší. Túžba kandidáta je vítaná na štúdium nových jazykov a nových prístupov k implementácii webových aplikácií.

Dmitry Ovchinnikov, Web Developer
Natalia Beetle, Recruiter v SoOO "Game Stream" v Minskom centre pre rozvoj Wargaming

1. The Backend Developer vyžaduje hlboké pochopenie webu: z tvorby požiadavky HTTP na strane prehliadača pred implementáciou komunikácie Intersperson s použitím rôznych protokolov. Web vo Wargamingu nie je len "osobným účtom" hráča, ale aj veľa služieb, ktoré poskytuje jednotnú autentifikáciu, registráciu, účasť v programe postúpenia atď.

Je tiež dôležité mať inžinierske myslenie. V kombinácii s veľkým technickým horizontom to umožňuje ponúknuť efektívne riešenia.

A samozrejme, nezabudnite písať kód kvality. Tvár programátora je jeho kód. Znalosť veľkých architektúr a moderných modelov programovania je často povinná pri práci vo veľkom tíme cez komplexný projekt.

2. Vo vojne, ktorý sa používa skladby technológie, pomerne štandard: Hlavná škála webových projektov je vyvinutá na Pythone, niektoré služby sú napísané v PHP, a ďalšie, kritické pre rýchlosť a paralelné výpočty, na Erlang. MySQL sa používa na skladovanie, pre cache - memcached. Rabbitmq vybral ako pneumatiku správ v spoločnosti. Z rámcov - django a skrútené. Ak hovoríme o prednej časti, potom je to spoločná chrbtica / podčiarknuté / jquery zväzok.

Pokiaľ ide o vývojové nástroje, vo Wargaming, dodržiavame pozíciu "Čo je lepšie pre vývojára". Niekto používa modernú IDE, niekto pohodlnejší sa cíti s VIM alebo EMACS. Nezáleží na tom, s pomocou, ktoré nástroje vykonávame našu prácu, ak je výsledok pohodlné a užitočné služby, ktoré každý deň po celom svete robia milióny hráčov každý deň.

3. Nemáme formalizované požiadavky na úroveň vzdelania. Profil (technické, matematické) vzdelávanie bude plus, pretože naznačuje prítomnosť základnej teoretickej prípravy kandidáta, ale je nepravdepodobné, že by sa stal rozhodujúcim faktorom, keď vstup do práce. Chápeme, že vedomosti v oblasti matematiky, oop, klasických algoritmov a dátových štruktúr možno získať nezávisle. Uprednostňuje sa uchádzačom so skúsenosťami. Schopnosť kandidáta riešiť inžinierske úlohy a robiť inžinierske riešenia, a nie len napísať kód.

4. Požiadavky na pracovné skúsenosti závisia od voľného miesta. Ak pozývame mladého špecialistu, v prvom rade sa pozrieme na jeho "domáce projekty" a univerzitný vývoj. Musíme si byť istí, že osoba, ktorá prišla, nie náhodou, to bola vedomá voľba, ktorá môže byť potvrdená skutočnými príkladmi aspoň malých, ale dokončených projektov. Pokiaľ ide o skúseného špecialistu - požiadavky sú konkrétnejšie. Sme dôležité zažiť vo viacerých oblastiach: databázy, Linux, webový server (Apache, Nginx), Znalosti a pochopenie systémov ukladania do pamäte cache (MEMCACHED), SYSTÉMY SYSTÉMOV (RABBITMQ) a skúsenosti s rámcami (Django, skrútené). Skúsenosti s optimalizáciou projektov s vysokým zaťažením budú veľmi užitočné a umožní vám rýchlo pripojiť sa k procesu vývoja a pracovať s maximálnou účinnosťou pre seba a tím. Pre popredných odborníkov a odborníkov sú okrem vyššie uvedeného dôležitý široký technický horizont a skúsenosti s rôznymi technologickým zásobníkom.

5. Podpora webovej infraštruktúry pre obrovské množstvo hráčov Wargaming.NET Universe znamená schopnosť pracovať s vysokým zaťažením a ležať v aplikačnej architektúre schopnosť fungovať veľká kvantita Žiadosti.

Okrem pripravenosti pre highload, je dôležité si spomenúť na bezpečnosť. Preto je webový vývojár vo Wargamingu povinný vedieť o mechanizmoch boja proti veľkým hrozbám a zabezpečiť spoľahlivosť jeho kódexu.

Pripravený Igor Strompel

SuperJob.ru Portal Research Center najmä pre "Správca systému" študoval ponuky zamestnávateľov. Svojou pozíciou vývoja backend-webu nie sú špeciálne požiadavky ešte definované, sú podobné najmä tomu, že sú prezentované programátorom.

Programátor Java

Na to
Telekomunikácie
Priemysel
Výroba
Budovanie
Správa nehnuteľností
Služby B2V. Predaj B2B Predaj B2C.
I. 65 000 – 80 000 54 000 – 71 000 50 000 – 67 000 60 000 – 75 000 50 000 – 65 000 50 000 – 64 000
50 000 – 64 000 42 000 – 57 000 40 000 – 53 000 45 000 – 60 000 40 000 – 52 000 40 000 – 51 000
II. 80 000 – 90 000 71 000 – 87 000 67 000 – 85 000 75 000 – 90 000 65 000 – 83 000 64 000 – 87 000
64 000 – 72 000 57 000 – 70 000 53 000 – 68 000 60 000 – 70 000 52 000 – 66 000 51 000 – 70 000
Iii 90 000 – 150 000 87 000 – 125 000 85 000 – 115 000 90 000 – 130 000 83 000 – 120 000 87 000 – 125 000
72 000 – 120 000 70 000 – 100 000 68 000 – 92 000 70 000 – 100 000 66 000 – 96 000 70 000 – 100 000
Iv 150 000 – 200 000 125 000 – 150 000 115 000 – 150 000 130 000 – 180 000 120 000 – 170 000 125 000 – 160 000
120 000 – 160 000 100 000 – 120 000 92 000 – 120 000 100 000 – 145 000 96 000 – 140 000 100 000 – 130 000
CF. 125 000 110 000 100 000 115 000 115 000 110 000
100 000 88 000 80 000 92 000 90 000 90 000

Nepárne mzdy - stredný MSK, dokonca - na Petrohradu

Plat Požiadavky a želania pre odborné zručnosti
Rozsah I.
  • Nedokončené vysokoškolské vzdelávanie (technické / IT)
  • Vynikajúce znalosti HTML, CSS, Java, XML
  • Znalosť programových princípov orientovaných na objektov
  • Znalosť teoretických základov vývoja databázy
  • Znalosť angličtiny na úrovni čítania technickej dokumentácie
  • Java Programovanie skúseností zo šiestich mesiacov
Rozsah II.
  • Skúsenosti s webovými servermi a aplikačnými servermi
  • Programovací zážitok z Java od 1 roka
Rozsah III
  • Vyššie vzdelávanie (technické / IT)
  • Šablóny dizajnu vedomostí Java a J2EE
  • Skúsenosti s použitím špeciálnych nástrojov (hibernate, pružina, vzpery atď.)
  • Skúsenosti v rozvojovom tíme
  • Skúsenosti s riadením verzií
  • Skúsenosti s DBMS (MS SQL Server alebo Oracle)
  • Java Programovanie skúseností z 2 rokov
Rozsah IV.
  • Prítomnosť kvalifikačných certifikátov
  • Skúsenosť informačné systémy a príprava projektovej dokumentácie
  • Skúsenosti s integračnými riešeniami (IBM WebSphere, Oracle Fusion Middleware)
  • Skúsenosti s rozvojom viacúrovňových aplikácií
  • Programovací zážitok z Java od 3 rokov
Možné želania:
  • znalosť angličtiny v kolokovej alebo slobodnej úrovni
  • skupina manuálov zručností

Valery Chernetova pripravený, SuperJob Analyst Leader


V kontakte s

  • Prevod

Tento zoznam sa objavil ako osobná poznámka o témach, o ktorých som diskutoval s kolegami a priateľmi a v ktorom som chcel pochopiť hlbšie ...

Nie som veľký milenec, aby som sa opýtal na rozhovory o technických otázkach: pre mňa je lepšie sedieť tak veľa s kandidátom (alebo kandidátom) na klávesnici nad nejakým skutočným kódom, skutočným problémom - a celý deň na zapojenie sa Párové programovanie, je žiaduce striedavo so zvyškom tímu. Ale verím, že niektoré technické otázky môžu byť dobrým východiskovým bodom pre začiatok fascinujúcej a príjemnej konverzácie a umožnia si navzájom hlbšie.

V tomto úložisku sa zhromažďuje niekoľko otázok týkajúcich sa časti servera, ktoré možno použiť pri kontrole potenciálnych kandidátov. V žiadnom prípade sa neodporúča opýtať sa všetko Otázky na jedného kandidáta: Bude to trvať niekoľko hodín a nemá zmysel vôbec, pretože pokrývajú príliš širokú škálu tém. Nikto nemôže vedieť všetko. Vyberte si najrelevantnejšiu sekciu a najzaujímavejšie otázky na rozšírenie konverzácie.

Varovanie

Väčšina otázok je otvorená, niektoré jednoducho nie správny alebo vhodný Odpoveď. Naopak, mali by byť východiskovým bodom rozhovoru, ktorý by mal v myšlienke lepšie vykazovať ľudské schopnosti ako jednoduchú odpoveď. Osobne, vo všeobecnosti preferujem otázky, odpovede, na ktoré som ja sám neviem.

Znova zdôrazňujem, že je to sotva dosť na to, aby ste klásť otázky. Na konci rozhovoru strávte dlhé zasadnutie páru programovania: Toto je jeden z lepšie možnostiPochopiť štýl a pristupovať k sebe - a dať pochopiť kandidátov, čo očakávať od budúcej práce.

Tento projekt bol vytvorený podľa vzorky "otázky pre rozhovor pre prácu fondov" z @ Darcyclarke.

Kde sú odpovede?

Skôr alebo neskôr budem dopĺňať článok s príslušnými odpoveďami. Bol by som vďačný za akúkoľvek pomoc!

Otázky na návrhové šablóny:

Prečo sú globálne objekty a statika zlo? Môžete zobraziť príklad kódu?

Povedzte nám o kontrolnej inverzii a ako zlepšuje organizačný kód.

Zákon o DEMMERS (zásada minimálneho povedomia) uvádza, že každý programový modul musí mať obmedzené znalosti o iných moduloch a musí komunikovať len s priamymi "priateľmi" (niekedy je formulovaný ako "nehovorte s cudzincami"). Môžete napísať kód, ktorý porušuje tento princíp? Prečo je jeho zlá organizácia a ako to opraviť?

Active-Record je konštrukčná šablóna, ktorá podporuje implementáciu funkcií na seba, ako napríklad vložka, aktualizovať a odstrániť, a vlastnosti, ktoré zodpovedajú stĺpci niektorých základných tabuľky v databáze. Myslíte si, a skúsenosti, aké obmedzenia a úskalia majú túto šablónu?

Data-mapper je vzorová šablóna, ktorá podporuje použitie vrstvy meničov (mapy), ktoré pohybujú údaje medzi objektmi a databázou, zároveň udržiavať ich nezávislosť od seba a od samotného konvertora. Na rozdiel od tejto šablóny, v aktívnom zázname, objekty priamo zahŕňajú operácie, aby sa ušetrili v databáze a vlastnostiach zodpovedajúcich základným tabuľkám v databáze. Máte názor na tieto šablóny? V akých prípadoch uprednostňujete jeden z nich iné?

Prečo sa podávajú null často zmieniť "miliardu dolárovej chyby"? Chcete diskutovať o technikách, aby ste tomu zabránili, ako je napríklad šablóna objektu NULL prezentovaná v knihe GOF alebo voliteľné typy?

Prečo je zloženie často lepšie ako dedičstvo?

Aká je úroveň bezpečnosti (protikorupčná vrstva)?

Singleton je vzorová šablóna, ktorá vytvára jednu inštanciu triedy pre jeden objekt. Napíšte ten správny (nite-bezpečný singleton) nie je tak jednoduché. Skúste?

Schopnosť zmeniť implementáciu bez ovplyvnenia časti klienta sa nazýva abstraktná prezentácia údajov (abstrakcie dát). Napíšte príklad, ktorý porušuje túto vlastnosť, potom ju opravte.

Napíšte úryvok kódu, ktorý porušuje princíp don "t opakovať sami (suché). Potom ho opravte.

Ako sa budete zaoberať pecl závislosť (závislosť pekla)?

Prečo je goto - je to zlé?

Zásada spoľahlivosti je všeobecným pravidlom organizácie Kódexu, ktorý odporúča "Byť konzervatívny je, že pošlete a liberálnu v tom, čo prijímate". Často je formulovaný ako "Byť tolerantný čitateľ a opatrný spisovateľ". Chcete diskutovať o význame tohto princípu?

Diskusné oddelenie - princíp dizajnu pre oddelenie počítačový program Pre jednotlivé oblasti, z ktorých každý zodpovedá za svoju úlohu. Existuje mnoho rôznych mechanizmov na oddeľovanie zodpovednosti (použitie objektov, funkcií, modulov alebo šablón, ako napríklad MVC a podobne). Chcete diskutovať o tejto téme?

OTÁZKY NA ORGANIZÁCIU KÓDU KÓDU (DESIGN CODE):

Často sa hovorí, že jedna z najdôležitejších úloh objektovo orientovaného dizajnu (a organizácie kódexu ako celku) je silná spojka a slabosť. Čo to znamená? Prečo sú tak dôležité a ako ich dosiahnuť?

Prečo vo väčšine jazykov index poľa začne od nuly?

Ako testy a TDD ovplyvňujú organizačný kód?

Napíšte fragment kódu, ktorý porušuje princíp don't "t opakovať sami (suché). Vysvetlite, prečo má zlú organizáciu a správne.

Aký je rozdiel medzi spojkou a pripojením?

Čo je refaktoring?

Sú komentáre v kódexe užitočné? Niekto hovorí, že by sa mali vyhnúť, ak je to možné, a v ideálnom prípade nepotrebujú vôbec. Súhlasíš?

Aký je rozdiel medzi organizačným kódom a architektúrou?

Prečo sú TDD testy napísané pred kódom?

C ++ podporuje viacnásobné dedičstvo a Java umožňuje triede implementovať viacero rozhraní. Aký účinok používa tieto prostriedky na ortogonality? Existuje nejaký rozdiel v účinkoch medzi použitím viacnásobného dedičstva a viacerých rozhraní? Existuje rozdiel medzi použitím delegovania a dedičstva? [Toto je otázka z knihy "Pragmatic programátor" Andrew Khanta a Defvida Thomas]

Výhody a nevýhody uskladnenie logiky predmetnej oblasti v uložených postupoch.

Váš názor, prečo objektovo orientovaná organizácia dominuje toľko rokov na trhu?

Ak má váš kód zlú organizáciu, ako to rozumiete?

Otázky v programovacích jazykoch:

Povedzte o. tri hlavné Nevýhody vášho obľúbeného programovacieho jazyka.

Prečo zvyšuje záujem o funkčné programovanie?

Na čo je uzáver a čo je užitočné? Čo je spoločné u uzáverov a tried?

Kedy je vhodné používať Generics?

Čo je to vysoké objednávky? Na čo sú potrebné? Napíšte takúto funkciu v akomkoľvek jazyku.

Zapíšte cyklus, potom ho previesť na rekurzívnu funkciu pomocou iba nemenných konštrukcií (t.j. bez premenných). Opíš to.

Čo to znamená, keď jazyk považuje funkcie ako predmety prvej triedy?

Zobrazte príklad, keď môže byť užitočná anonymná funkcia.

Prečo potrebujete menný priestor? Prísť s alternatívou.

Povedzte nám o kompatibilite Java a C # (alebo vyberte dva iné ľubovoľné jazyky).

Prečo mnohí vývojári nemajú radi Java?

Čo robí dobrý jazyk dobrý a zlý jazyk - zlý?

Napíšte dve funkcie, jedno referenčné transparentné a iné referenčné nepriehľadné. Diskutujeme sa o nich.

Aký je stoh a čo je banda? Čo je to prepadák?

Prečo je dôležité, aby funkcie boli predmety prvej triedy v jazyku?

V niektorých jazykoch, najmä s funkčným prístupom, je povolená technika, ktorá sa nazýva porovnanie so vzorkou. Pozná ťa? Ako sa mapovanie vzoriek líši od konštrukcie spínača?

Prečo v niektorých programovacích jazykoch nie sú implementované výnimky? Aké sú výhody a nevýhody tohto prístupu?

Ak je Cat zviera, potom je to pravda, že TakeCare - Toto je TakeCare. ?

Prečo v Java, C # a mnoho ďalších jazykov návrhári nie sú súčasťou rozhrania?

V posledných rokoch veľa hluku okolo node.js. Aký je váš názor na použitie v backstandovom jazyku, ktorý bol pôvodne koncipovaný do práce v prehliadači?

Predstavte si, že máte časový stroj a je tu príležitosť vrátiť sa v určitom čase v čase v histórii Java (C #, Python, Choď alebo niečo iné) a porozprávajte sa s niektorými tvorcami JDK. Čo by ste sa snažili presvedčiť? Odstrániť kontrolované výnimky? Pridajte nepodpísané primitívne typy? Viacnásobné dedičstvo?

Otázky na vývoj webových stránok:

Prečo sú natívne cookies a cookies tretích strán spracované tak rozdielne?

Ako by ste spravovali číslovanie verzií webových služieb API?

Z hľadiska backendu existuje nevýhody alebo prekážky zavedenia jednorazových aplikácií?

Prečo sa zvyčajne usilujeme toľko, že služba bola bez štátnej príslušnosti? Čo je tak dobré v kóde bez štátnej príslušnosti? Prečo a keď stav skladovania (stavu) je zlá?

Oddych a mydlo: V akých situáciách si vyberiete jeden z týchto prístupov, a v čom iné?

V vývoji webového vývoja, model-view Controller a model-view-view-modelové prístupy sú do značnej miery podobné v Besende avpredu. Čo si predstaviť a prečo je vhodné použiť ich?

Otázky databázy:

Ako uverejníte aplikáciu z jednej databázy do druhej, napríklad z MySQL v PostgreSQL? Ak musíte zvládnuť takýto projekt, aké problémy očakávate?

Prečo databáza považuje za takýto osobitný prípad? Napríklad, prečo v SQL Select * z tabuľky, kde pole \u003d null nedáva nahrávanie s nulovým poľom?

Kyselina je skratka pre atómou, konzistenciu, izoláciu, trvanlivosť (atómici, konzistencia, izolácia, stabilita). Väčšina databázových motorov zaručuje tieto štyri vlastnosti pre transakcie v databáze. Čo o tom viete? Chcete vám viac povedať?

Ako by ste sa zaoberali prenosom schémy DB, to znamená, ako automatizujte zmeny v režime DB, pretože aplikácia je vyvinutá z verzie do verzie?

Ako implementovať lenivé zaťaženie? Kedy je to užitočné? Čo sú podvodné kamene?

Takzvaný "n + 1 problém" sa vyskytuje, keď kód musí načítať detské prvky z vzťahu "rodičov a potomkov" v Orm s lenivým bootom, a preto pošlite žiadosť o rodičovský záznam a potom jednu požiadavku pre každú dcérsku spoločnosť . Ako vyriešiť problém?

Ako nájdete najviac nákladov na žiadosť?

Podľa vášho názoru je vždy potrebné normalizovať databázu? Kedy je vhodné používať denormalizovanú databázu?

Jedna z metód nepretržitej integrácie sa nazýva modro zelený dlh. Skladá sa v používaní dvoch priemyselných prevádzkových prostredí, čo najviac - a nasadená v jednom z nich počas druhého, a potom zabezpečte prepínanie dopravy z jedného prostredia na druhý po testovaní v pohodlnom nastavení. Táto metóda je komplikovaná, ak dlh zahŕňa zmenu štruktúry alebo obsahu databázy. Chcel by som s vami diskutovať o tejto téme.

OTÁZKY NA NOSQL:

Čo je konzistencia v konečnom dôsledku (prípadná konzistencia)?

A čo Cap Theorem, uviesť príklady systémov CP, AP a CA.

Ako vám v poslednej dobe vysvetľuješ ústredie v Nosql?

Ako Nosql vyrieši problém škálovateľnosti?

V takom prípade uprednostňujete dokumentovo orientované DBMS ako Mongodb namiesto relačného DBMS, ako je MySQL alebo PostgreSQL?

Otázky na verziu kódu:

Prečo je implementácia pobočiek v Mercurial alebo uľahčí ako v SVN?

Aké sú výhody a nevýhody distribuovaných verzií riadiacich systémov, ako je git, v porovnaní s centralizovanými VCS ako SVN?

Môžete opísať prietok Githff a Gitflow?

Čo je to Rebolase (Move)?

Prečo je zlúčenie ľahšie cvičiť v Mercurial alebo Git ako v SVN a CVS?

Otázky týkajúce sa paralelizmu:

Prečo potrebujete paralelnosť? Vysvetliť.

Prečo je to tak ťažké testovať multi-závitový / paralelný kód?

Aký je stav pretekov? Napíšte príklad na ľubovoľnom jazyku.

Čo je vzájomné blokovanie? Môžete napísať nejaký kód, ktorý trpí vzájomnými zámkami?

Čo je to hladový hlad (Process Starvation)? Ak je to potrebné, poďme zvážiť jeho definíciu.

Aký je neblokujúci synchronizačný algoritmus bez očakávaní (algoritmus bez čakania)?

Otázky o distribuovaných systémoch:

Ako otestovať distribuovaný systém?

V takom prípade aplikujete asynchrónnu komunikáciu medzi dvoma systémami?

Aké sú hlavné podvodné kamene vzdialenej výzvy?

Ak vytvoríte distribuovaný systém pre škálovateľnosť a spoľahlivosť, aké rôzne problémy sa môžu vyskytnúť v uzavretom a bezpečnom sieťovom prostredí - av geografickom rozloženom a verejnom systéme?

Ako zabezpečiť toleranciu chyby webovej aplikácie? Desktopová aplikácia?

Ako sa vyrovnať s poruchami v distribuovaných systémoch?

Poďme hovoriť o rôznych prístupoch k obnoveniu pracovnej kapacity (zmierenie) po porušení sieťového pripojenia.

Aké sú mylné predstavy o distribuovanej výpočtovej technike?

Keď aplikujete požiadavku / odpoveď a pri zverejnení / prihláške?

Predpokladajme, že systém, s ktorým pracujete, nepodporuje trancotalitu. Ako by ste ho implementovali od nuly?

Otázky týkajúce sa softvéru životného cyklu a manuálneho tímu:

Čo je flexibilita (agilita)?

Ako budete pracovať so starším kódom?

Som váš projektový manažér a nie odborníkom v programovaní. Snažte sa mi vysvetliť, čo je starší kód a prečo sa musíte starať o kvalitu kódu.

Som výkonným riaditeľom vašej spoločnosti. Vysvetlite mi Kanban a presvedčiť vás, aby ste v ňom investovali.

Aký je hlavný rozdiel medzi flexibilnou metodikou vývoja a modelu Cascade?

Byť vodcom skupiny, ako vyrieši problém príliš veľa stretnutí?

Ako sa vyrovnáte s projektom, ktorý sa vykonáva so silným oneskorením?

"Ľudia a interakcia sú dôležitejšie ako procesy a nástroje" a "spolupráca so zákazníkom je dôležitejšia ako harmonizácia podmienok zmluvy" je polovica hodnôt vyhlásených v agilnom manifest. Diskutujeme sa o nich.

Povedzte nám, aké rozhodnutia by ste si podnikli, ak by bol technický riaditeľ vašej spoločnosti.

Existuje nejaké výhody od manažérov programu?

Urobte si pracovný program, pomocou flexibilného plánu (to znamená, že bez inštalovaného pracovného času) a úrokových politík "Urobte si, keď potrebujete".

Ako by ste zvládli veľmi veľké učenie a presvedčili vývojárov, aby neopustili tím, bez toho, aby sa platil plat? Čo im môže spoločnosť zostať?

Aké sú tri hlavné kvalitu, ktorú oceňujete v kolegoch okrem programovania?

Aké tri hlavné veci o programovaní je potrebné poznať humanitné vo vašom stanovisku?

Predstavte si, že spoločnosť vám poskytuje jeden mesiac a rozpočet na zlepšenie kvality každodenného života vás a vašich kolegov. Čo by si robil?

Otázky na logiku a algoritmy:

Napíšte FIFO frontu pomocou iba záchranných stohov. Potom vytvorte zásobník Lifo pomocou iba frontov FIFO.

Napíšte fragment kódu pre pretečenie vyrovnávacej pamäte.

Napíšte faktoriál s konečným rekurziou.

V ľubovoľnom jazyku napíšte reves, ktorá okamžite zobrazí zadané hodnoty. Zlepšite ho k kalkulačke RPN.

Ako by ste navrhli utility pre defragmentáciu?

Napíšte program, ktorý generuje náhodné labyrinty.

Napíšte príkladový kód, ktorý vytvorí únik pamäte.

Generovať sekvenciu jedinečných náhodných čísel.

Napíšte príklad jednoduchého systému zberu odpadu.

Napíšte jednoduchý sprostredkovateľ správ v akomkoľvek jazyku.

Napíšte veľmi jednoduchý webový server. Vykonať plán funkcií, ktoré je potrebné realizovať v budúcnosti.

Ako zoradíte súbor 10 GB? Ako sa dostanete na zmeny v súbore 10 TB?

Ako nájdete duplicitný program súborov?

Otázky na architektúru na:

Keď nie je potrebná cache a dokonca poškodzuje?

Prečo architektúra orientovaná na udalosti zlepšuje škálovateľnosť?

Čo robí kód čitateľný?

Aký je rozdiel medzi vývojom dizajnu (vznikajúci dizajn) a evolučnou architektúrou?

Horizontálne a vertikálne škálovanie: Čo sa líšia? Kedy použiť jednu vec a kedy je iná?

Ako pracovať s odpočúvaním ovládania v zlyhaní (Failover) a užívateľské stretnutia?

Čo je CQRS (Command Query Zodpovednosť Segregácia)? Ako sa líši od starej princípe oddelenia velenia?

Aká je trojnásobná architektúra?

Ako navrhnete softvérový systém so škálovateľnosťou?

Aké stratégie vyriešiť problém C10K?

Ako navrhujete decentralizovaný (t.j. bez centrálneho servera) P2P systému?

Prečo nie je CGI zmenšená?

Ako chráni vaše systémy od viazania dodávateľa (Dodávateľ Lock-In)?

Aké sú nedostatky šablóny dizajnu "Publisher-Subscriber" pri mierke?

Čo sa stalo od 80. rokov vo vývoji procesorov, prečo je dôležité pre programovanie?

V akom štádiu životného cyklu by mal zvážiť výkon a ako?

Ako sa problém zlyhania odmietnutia nemusí objaviť kvôli útoku DOS, ale kvôli zlému dizajnu alebo kvôli problému architektúry?

Aký je vzťah medzi výkonom a škálovateľnosťou?

Kedy je prijateľné používať silnú angažovanosť (tesné spojky)?

Aké vlastnosti by mal byť systém vyslaný na cloud?

Robí jednotu dizajnu krajiny architektov? Jednoducho dáte: Môže to dobrý dizajn vyplývať z kolektívneho úsilia všetkých vývojárov?

Aký je rozdiel medzi dizajnom, architektúrou, funkčnosťou a estetickými vlastnosťami? Poďme diskutovať.

Otázky týkajúce sa architektúry orientovanej na služby a microsice:

Prečo v SOA dlhé transakcie nie sú podporované, a namiesto toho sú pozvaní používať Saga?

Aký je rozdiel medzi SOA a Microservice?

Poďme hovoriť o číslovaní verzií webových služieb, kompatibility verzií a kritických zmien, ktoré porušujú spätnú kompatibilitu.

Aký je rozdiel medzi transakciou a kompenzujúcou operáciou v ságe, v SOA?

Kedy je microservice príliš mikro?

Aké sú výhody a nevýhody Microservice Architecture?

Bezpečnostné otázky:

Ako napísať bezpečný kód? Podľa vášho názoru je to zodpovednosť developer alebo by to malo byť samostatným odborníkom v spoločnosti? A prečo?

Prečo hovoríte, že by ste sa nemali snažiť vymyslieť alebo navrhnúť vlastné pravidlá kryptografie?

Aká je dve-faktorové autentifikácie? Ako ho implementujete v existujúcej webovej aplikácii?

Ak nerobíte protokoly starostlivo, vždy existuje riziko, že tam dôjde k dôverným informáciám, vrátane hesiel. Ako zabránite takémuto problému?

Napíšte úryvok kódu, ktorý podlieha SQL injekcii a opravte ho.

Ako môžem nájsť zraniteľnosť pre SQL-injekciu metódou statickej analýzy kódu? Nečavádzam, že napíšete hotový algoritmus, pretože je príliš veľký, ale poďme diskutovať o všeobecnom prístupu.

Čo viete o cross-site skriptovanie? Ak si nepamätáte, pozrime sa na jeho popis na internete a porozprávajte sa o tom.

Čo viete o prekríženom dotaze falošné? Ak si nepamätáte, pozrime sa na jeho popis na internete a porozprávajte sa o tom.

Ako funguje https?

Aký je útok "muž v strede"? A prečo https pomáha chrániť pred ním?

Ako môžete zabrániť krádeži užívateľského relácie? S najväčšou pravdepodobnosťou si spomeniete, na čo krádež je relácia alebo cookies, inak čítame stránku Wikipedia spolu na túto tému.

Všeobecné otázky:

Prečo je dôležité fungovať programovanie? Kedy by som mal použiť jazyk funkčného programovania?

Ako zarábajú spoločnosti ako Microsoft, Google, Opera a Mozilla na svojich prehliadačoch?

Prečo otvorenie zásuvky TCP medvede veľkú nad hlavou?

Čo je dôležité používať zapuzdrenie?

Aký je systém v reálnom čase a ako sa líši od bežného systému?

Aká je spojenie medzi programovacími jazykmi v reálnom čase a prideľovaním pamäte v hromade?

Nemenný je prax jediného nastavenia hodnôt v čase vytvorenia objektu a tieto hodnoty sa potom nikdy nezmení. Ako immutelnosť pomáha písať bezpečnejší kód?

Pros a nevýhody premenlivých a nemenných hodnôt.

Čo je objektovo-relačná medzera (nesúhlas s objektovým relačným impedanciám)?

Aké princípy používate na určenie veľkosti vyrovnávacej pamäte?

Aký je rozdiel medzi TCP a HTTP?

Aké sú kompromisy výberu omietky na strane klienta a na strane servera?

Ako vyvinúť spoľahlivý komunikačný protokol založený na nespoľahlivých?

Vynálezca nulového ukazovateľa Tony Hoar Akonáhle povedal: "Môžem to zavolať s mojím miliardami dolárov," pretože to pritiahne "nespočetné chyby, zraniteľnosti a systémové zlyhania, ktoré pravdepodobne spôsobili utrpenie a poškodenie miliárd dolárov za posledných štyridsať rokov " Predpokladajme, že chcete odstrániť možnosť použitia nulových ukazovateľov vo vašom programovom jazyku: Ako sa rozhodnete o takejto úlohe? Aké dôsledky to môže mať?

Otvorené otázky:

Prečo ľudia odolávajú zmene?

Vysvetlite koncepciu vlákien s babičkou.

Ako vývojár, budete súčasne chcieť a aplikovať inovácie a byť predvídateľný. Ako môžu tieto dva ciele spolu so sebou existujú v rámci tej istej stratégie?

Čo robí dobrý kód dobrý?

Vysvetlite, ako sa vykonáva streamovanie vysielania a ako ho implementujete.

Predpokladajme, že vaša spoločnosť vám dá jeden týždeň na zlepšenie života pre vás a vašich kolegov: Ako používate tento týždeň?

Čo ste zistili minulý týždeň?

V akomkoľvek dizajne je estetický prvok. Otázkou je, táto estetika je váš priateľ alebo nepriateľ?

Názov posledných piatich kníh, ktoré ste čítali.

Ako realizujete nepretržitý prístup doručenia vo veľkej úspešnej spoločnosti, pre ktorú prechod z kaskády modelu na prístupový prístup k nepretržitému dodávaniu nie je triviálny vďaka svojej veľkosti a obchodnej zložitosti?

Kedy má zmysel znovu objaviť koleso?

Poďme sa porozprávať o tomto vynáleze kolesá, syndróm odmietnutie vývoja a praxe používania spoločnosti alebo tímu vývojárov vlastných služieb a produktov (jesť vaše vlastné jedlo).

Čo najprv automatizujete v aktuálnom pracovnom toku?

Aké sú ťažkosti písomne softvér? Čo sťažuje podporu softvéru?

Radšej pracujete na úplne nových projektoch (Greenfield) alebo pokračujte v aktuálnom (Brownfield)? Prečo?

Čo robí operačný systém, keď nie je príkaz na vykonanie konkrétneho kódu a vyzerá neobsadené? Chcel by som začať konverzáciu o prerušení, démonoch, pozadí, prieskumov, spracovaní udalostí atď.

Vysvetlite Unicode alebo Transakcie v DBMS päťročného dieťaťa.

Uveďte argumenty v prospech monolitickej architektúry.

Čo to znamená byť "profesionálny vývojár"?

Programovanie je umenie, remeslo alebo inžinierstvo? Váš názor.

Prečo sú korporácie horšie zavedenie inovácií ako spustenie?

Váš posledný úspech, na ktorý ste hrdí?

Otázky s fragmentmi kódu:

Aký je výsledok vykonania tejto funkcie JavaScript?

FUNKCIA HOOTHUPEVENTY () (pre (VAR I \u003d 0; I< 3; i++) { document.getElementById("button" + i) .addEventListener("click", function() { alert(i); }); } }
A čo vymazať typy, ktoré poskytnú takýto Java kód a prečo?

Arraylist. Li \u003d Nový Arraylist (); Arraylist. Lf \u003d nový arraylist (); Ak (li.getclass () \u003d\u003d lf.getclass ()) // vyhodnocuje na skutočný systém.out.printLN ("rovný");
Môžete zistiť únik pamäte?

Verejná trieda Stack (Súkromné \u200b\u200bobjektové prvky; Súkromné \u200b\u200bInt veľkosť \u003d 0; súkromné \u200b\u200bstatické konečné Int default_initial_cApacity \u003d 16; Verejný stoh () (Elements \u003d Nový objekt;) Public Void Push (objekt E) (Essuecapacity (); prvky \u003d E;) Verejný objekt POP () (ak (veľkosť \u003d\u003d 0) hodiť nové prázdne prvky [- veľkosť];) / ** * Essuse priestor pre aspoň jeden prvok, zhruba * zdvojnásobenie kapacity zakaždým, keď potrebuje pole rásť. * / Súkromné \u200b\u200bvoid objectcacity () (ak (prvky.Length \u003d\u003d veľkosť) prvky \u003d array.copyof (prvky, 2 * veľkosť + 1);))
Môžete sa zbaviť prepínača a písať viac objektu-orientovaného kódu?

Formulkovač verejnej triedy (súkromná servisná služba; verejný formátkovač (služba;) Verejný reťazec Dothejob (reťazec Theinput) (Response String \u003d Service.askForpermission (); Spínač (odozva) (CASE "FAIL": RETURN "ERROR"; CASE "OK" : Návratový reťazec.Format ("% s% s", theinput, theinput); predvolené: návrat null;))
Môžete sa zbaviť, či prevádzkovatelia a napísať viac objektovo orientovaného kódu?

Trieda verejnej triedy Theservice (Súkromné \u200b\u200bfinálne Fileshandler FileHandler; Súkromné \u200b\u200bkonečné Foorepository Foorepository; Public Theservice (FileHandler FileHandler, Foorepository Foorepository) (This.FileHandler \u003d FileHandler; This.foorepository \u003d Forepository;) FilesHandler.GetXMLFILEFROMIFILENAME (súbor); Final String ExecutionId \u003d FilesHandler.getExtiontionidFromFileName (súbor); ak ((concutionid \u003d\u003d ") || (rewittend \u003d\u003d") |) (návrat "";) foo známym \u003d foorepository.getfoobyxmlfilename rewitten ); ak (známejšie \u003d\u003d null) (return "";) Sprievodca známymOboo.dothat (súbor);)
Ako urobiť refaktorstvo takéhoto kódu?

Funkcia () (HRESULT CHYBA \u003d S_OK; ak (úspešná (operácia1 ()) (ak (úspešná (operácia2 ()) (ak (úspešná (operácia2)) (ak (uspel) inak (chyba \u003d operácia4failed;)) inak (Chyba \u003d operácia3Failed;)) inak (chyba \u003d operácia2failed;)) inak (chyba \u003d operácia1failed;) Chyba vrátenia;)

Developer back-end (z angličtiny. spätného konca (reverznej strane) developer) Toto je špecialista, ktorý sa zaoberá softvérovú administratívnu časť webovej aplikácie, interný systémový obsah, server technológie - databázy, architektúra, softvérová logika. Profesia je vhodná pre tých, ktorí majú záujem o informatiku (pozri výber profesie za záujem o školské predmety).

Bec-end Developer je neviditeľný predný bojovník.

Moderné stránky, webové aplikácie a hry sa stali veľmi zložitým, takže na nich pracuje celý tím špecialistov. Na vytvorenie plnej, krásnej, funkčnej a užívateľsky prívetivej stránky je potrebná konzistentná práca predného konca a vývojárov back-end. Toto je rýchle úlohy vytvoriť webovú stránku alebo webovú aplikáciu a uľahčuje jej službu.

VYHLÁSENIE PRIPOZUJÚCEHO ROZHRAZUJÚCEHO ROZHRAZUJÚCEHO ROZHODNUTIA ROZDUHUJÚCEHO PROSTREDNOSTIHUJÚCEHO ROZDUHUJÚCEHO PROSTREDNOSTIHUJÚCEHO ROZDUHUJÚCEHO KONTROLU. Zadná koncový vývojár pracuje v úzkom spojení s developerom front-end, prijíma užívateľské informácie z neho a vrátenie výsledného výsledku.

Základné nástroje Späť Koniec Vývojár - Programovanie servera Jazyky: napríklad PHP, Python, Ruby, Java, Perl, Node JS (softvérová platforma). Okrem uzla JS, je užitočné učiť sa Express (Knižnica interakciu nódy JS platformy so serverom) a mongo db (databáza pre získanie a ukladanie informácií).

Ako Ďalšie fondy Symfónia, Codeigniter, Yii, Zend Framework, Kohana atď. Sa používajú na ukladanie dát pomocou MySQL / SQLITE.

Funkcie profesie

Moderní vývojári nielen píše kód pre programy. Tak pracovali programátori 10-15 rokmi. V súčasnosti je takýto termín nevhodný, pretože v práci je často možné vykonať bez písania kódu, jednoducho pripojenie hotových častí do jednej konfigurácie. A programátori sa teraz nazývajú "developer" alebo "inžinier".

S rozvojom IT-sféry sa projekty stávajú komplexnejšími a sú dizajnér, ktorý je možné zbierať pomocou hotových riešení (rámcov) pre takmer všetky úlohy.

Takto vyzerá pro-end funkčnosť vývojára:

  • dizajn architektúry služby;
  • vytvorenie jadra stránky;
  • rozvoj platformy a hlavné funkčné;
  • práca s kódovou architektúrou;
  • vývoj aplikácií, ktoré podporujú používateľské rozhranie a bezpečnosť;
  • kontrolu nad stav serverov (boj, test a pracovník);
  • kontrola verzií, databáz, nepretržitá integrácia.

Pros a nevýhody

Vysoká platená a požadovaná profesia.

Miesto výkonu práce

Spoločnosti, webové aplikácie, webové aplikácie, mobilné aplikácie.

DÔLEŽITÉ KVALITY

  • analytická myseľ
  • logické myslenie
  • iniciatíva
  • schopnosť plánovať a sledovať plány
  • zručnosti tímovej práce
  • flexibilita myslenia
  • zodpovednosť, vytrvalosť, účelnosť
  • zamerať sa na výsledok a kvalitu
  • túžba neustále študovať novú a jej uplatňovanie vo svojej práci

Profesionálne znalosti a zručnosti

Znalosť aspoň jedného programovacieho jazyka: Go, C, C ++, Perl, Python, PHP, Ruby, Java.

  • schopnosť písať rýchly, krásny a správny kód;
  • znalosť populárnych webových freigrárov (Django, banka, jar);
  • databázy dizajnu zručností a optimalizovať požiadavky;
  • znalosť moderných programovacích paradigiem;
  • znalosť dizajných vzorov;
  • pochopenie webových služieb, rozhraní;
  • angličtina na čítanie technickej dokumentácie.

Kde sa učiť z developera back-end

Vlaky (osobne, Moskva). Medzinárodná vzdelávacia inštitúcia špecializujúca sa na počítačové vzdelávanie. Práca od roku 1999. 42 pobočiek v 16 krajinách sveta. Najväčšie autorizované školiace stredisko Microsoft, Cisco, Autodesk. Študenti dostávajú medzinárodné certifikáty a medzinárodný diplom. Hlavným cieľom je zamestnávanie každého absolventa.

Vyššie vzdelanie:

Aby sa stal skutočným profesionálom v oblasti vývoja back-end, je potrebné mať základné vzdelanie, ktoré možno získať v nasledujúcich univerzitách:

Je však dôležité si uvedomiť, že univerzitné základné vzdelanie stanovuje základ pre vzdelávanie, ale nie dosť na súčasné poznatky moderné technológie. Preto je v tejto oblasti dôležitá samoštúdium, aby udržala krok so všetkými novými technológiami a nástrojmi. Na druhej strane však nedostatok profilu vzdelávania ovplyvňuje v tom momente, keď niečo prestane pracovať a osoba nerozumie - z akého dôvodu. Špecialista so základným vzdelaním, samozrejme, nevie všetko, ale má významnú zručnosť - kde nájsť a ako používať potrebné vedomosti.

Moderní zamestnávatelia spravidla neukladajú formálne požiadavky vyššie vzdelanie kandidátov na úrad. Pre nich najdôležitejšie skúsenosti, inteligencia, motivácia špecialistu.

WARRY PLATBA (koľko zarobí späť koncový vývoj)

Plat dňa 09/16/2019

Rusko 40000-100000 ₽

Moskva 80000-300000 ₽

Kariéra a perspektívy schodov

Z pozície vývoja back-end, po vypracovaní zručností predného konca developera, priama cesta k vývojárovi plnohodnotu. Pre ďalší rast je potrebné neustále sa učiť z novej štúdie podrobne o vývoji technológií softvérové \u200b\u200bprodukty, Konfigurácia a konfigurácia servisných systémov.

Prechody v rámci oddelení sú niekedy spojené odlišne. Niekto je jednoducho známy vidieť akékoľvek zmeny kariéry v rámci jednej spoločnosti prostredníctvom hranolu vysielania príspevkov. Niekto nepovažuje, že je možné zmeniť rozsah činnosti, aj keď je susedí s aktuálnym. Po tretie, v zásade sme presvedčení, že prechod z oddelenia v oddelení znamená, že osoba berie pozíciu "buď ryby, ani mäso, a je nepravdepodobné, že by dosiahol niečo významné.



Zároveň niektorí zamestnávatelia vítajú to v každom smere a zvážte niečo ako poistka z vyhorenia - človek zmení zameranie pozornosti, zmení oddelenie alebo oddelenie, ale nebude meniť samotnú prácu ako celok.


Moje meno je Kostya a pracujem v Qiwi už takmer 4 roky. Dnes vám poviem, ako úspešne prešiel z frontendového vývoja v backend.

Predĺžiť

V Qiwi, od konca roka 2014 som začal pracovať ako vývojár aplikácií iOS, a v zásade sa zaoberal pár rokov do vývoja peňaženky Qiwi. Zároveň nemôžem povedať, že to bolo nudné - Úlohy boli úplne odlišné a v rámci tej istej aplikácie: Boli sme zapojení do integrácie peňaženky s inými službami, pomstil sa chyby, dotiahli animáciu. Okrem toho došlo k pokročilým skúsenostiam o vytvorení aplikácie pre Apple Watch. Potom rozšírila trochu zamerania a pracovala aj cez aplikáciu iOS pre "Svedomie".



A potom som sa začal pomaly pohybovať do chrbta. Z hľadiska flexibilnej metodiky je dokonca pohodlné - som prepnutý, v prvom sprinte by mohol urobiť nejaké bachenda úlohy, a v druhom vykonávaní integrácie API, ktoré som napísal.


Ale v backente, v tej dobe bolo príliš málo developerov a príliš dedičov, takže na konci som stále prešiel na backend úplne. Teraz robím klasické úlohy systému BESTENDER - píšem kód v našej Microservice, Chinhy Bugi, som sa angažoval v Refaktoringu, chápem Kotlin. Existuje možnosť pracovať na čerstvom produkte spoločnosti - investor Qiwi.


Mimochodom, nemôžem povedať, že za tieto dva roky sa nejako ukázalo, že som išiel vpredu, jasne som si uvedomil, že tam bola aj tam, kde sa má rozvíjať. Napríklad vidím, čo sa deje v tíme mobilného vývoja, a chápem, že by som tam zostal, budem pokračovať v raste ďalej s chlapcami.


Takže tu bola situácia Win-Win - chcel som pomôcť tímu a produktu (výhoda vo vývoji veľmi nie je smerom k backends) a získať nové poznatky. TimLids pochopili všetko a dovoľovali mi ísť bez sťažností a tiež produktov.


Okrem toho, vedomosti, ktoré som chcel diverzifikovať, aby som nebol pripojený k jednej platforme (Android Nepáči sa mi trochu trochu, ale Apple stále dáva pozíciu). No, tam bola túžba v prípade, čo by som mohol vziať a urobiť si aplikáciu pre seba (a front a backing), ak sa náhle objaví nejaký chladný nápad. Doteraz to však nebolo užitočné.

Backend.


Samozrejme, prvý problém, s ktorým narazíte na takýto prechod, sú medzery v zápase. V mojom prípade to boli niektoré jemnosti práce s databázami, ale to tu pomohla schopná samo-vzdelania a tímu - chlapci reagovať a vždy pripravení pomôcť a vysvetliť niečo podrobne. V Qiwi, v zásade, s učením v akýchkoľvek štádiách, všetko je v poriadku, či ste aspoň junior na samom začiatku práce, aspoň to je, ako sa rozhodnúť a zmeniť guľu niekoľko rokov neskôr.


Nikto nebol naštvaný, že prvýkrát, čo som zjavne pracoval tak efektívne, pretože v mnohých veľa bolo potrebné vstúpiť (ale v dlhodobom horizonte tím je stále vo víťazstve).


Samozrejme, že som mal malý zážitok v rôznych oblastiach - mobilné hry a web, ale bolo to všetko, skôr sa pokúšali cítiť svoje vlastné, a nie bodkovanie praktických vážnych skúseností.

Dojmy backend po frontend

Žiadna práca s UI. Vôbec. Predtým som musel zabiť čas na opravu chýb v UI, teraz nie je. Nevýhody takejto pozície - koncový užívateľ nevidí výsledky konkrétneho mojej práce, ako to bolo spredu. Snažil som sa určiť, čo je ťažšie - podklad alebo predné, a uvedomil si, že (osobne pre mňa) bolo ťažšie vždy pracovať s multithreadingom a sieťovým zásobníkom. A tu už nie je tak dôležité - ste pre prednú alebo zadnú časť. Na prednej strane som sa prvýkrát stretol s takýmito úlohami, bez prípravy a na backente s akýmikoľvek skúsenosťami.


Je možné získať skúsenosti a urobiť niečo v každej oblasti, tam by bola túžba a predpoklad, tam sú praktiky tu - urobiť niečo (a robiť dobre), a že fungovalo bezpečne a jednoducho podporované. A pre Counder nie je tak kritický pre prítomnosť alebo absenciu skúseností v prednej časti. Ak vývoj berie do úvahy všetky malé veci, váha, a ako celok chápe, ako bude jeho API využije, potom to urobí všetko, čo by malo.


Je pre mňa jednoduchšie objavovať možné problémy Len preto, že poznám funkcie implementácie našich mobilných aplikácií. Ale to nie je nejaká superpozičnosť - toto je súbor vedomostí, že akákoľvek iná beckenená, ktorá často pracuje s frontmi.

Že nakoniec

Backend-vývoj sa pre mňa stal ďalšou dobrou skúsenosťou pre mňa - som sa naučil písať kód a revw, premýšľajte o architektúre. Je to vlastne zaujímavé.


Ale zároveň sa snaží žiť, že predná strana je, že nebudem hovoriť, že v prípade, ktorý by bacand by okamžite zvolil na samom začiatku kariéry. Je stále dôležité, aby som videl a pochopil, ako môj produkt vníma užívateľom. S backend, je to všetko dosť strašidelné.


S najväčšou pravdepodobnosťou, výberom gule teraz by som išiel do GamEdev alebo Web Front. Web stále zostáva dobrou platformou pre spustenie nových produktov a zároveň prestali byť hrozné a ťažko pochopiteľné. Všetky tieto tutoriály z špaghtského kódu a spätného volania-peklo zostali ďaleko za, našťastie.

Frontend je vývoj užívateľské rozhranie a funkčnosť, ktorá pracuje na strane klienta webovej stránky alebo aplikácie. Tento typ vývoja možno pripísať všetkému, že užívateľ vidí, otvára webovú stránku. Vývojár Frontend spolupracuje s návrhármi, programátormi a UX analytici na vytvorenie pohodlného a požadovaného produktu.

Ak chcete jasne pochopiť, čo je frontend-vývoj, otvorte stránku ľubovoľnej stránky - uvidíte rozhranie pred vami. Kliknite pravým tlačidlom myši, môžete zobraziť kód tejto stránky v prehliadači.

Tento kód je príkladom developera frontend, je prevzatý do prehliadača používateľa a môžete ho vidieť s vlastnými očami. Kód stránky popisuje všetko, čo vidíte pred seba: Farby, rozloženie, fonty, umiestnenie grafických prvkov a tak ďalej.

Vývoj frontend zahŕňa:

  • HTML (HYPERTTEXT ZIAČNOTKA LIKUMU) - Jazyk označovania dokumentov, s ktorým je vytvorená štruktúra stránky: titulky, odseky, zoznamy a tak ďalej;
  • CSS (kaskádové štýly) - Jazyk pre popis a štylizáciu externý pohľad Dokument. Vďaka kódu CSS chápe váš prehliadač, ako zobraziť prvky. CSS Určuje parametre farieb a písiem, určuje, ako budú umiestnené rôzne bloky stránok, a tak ďalej. To tiež umožňuje výstup na rovnaký dokument v rôznych štýloch, napríklad na tlač (konvenčné alebo braillové písmo), výstup na obrazovku alebo čítanie hlasu;
  • JavaScript. - Toto je jazyk, ktorý bol vytvorený na oživenie webových stránok. Jeho úlohou je reagovať na užívateľské akcie, ovládať kliknutia na myš, presuňte kurzor, klávesové okuliare. On tiež posiela požiadavky na server a načíta údaje bez reštartujte stránku, umožňuje zadať správy a oveľa viac.

Čo je backend-vývoj?

Backend-vývoj je sada hardvérového softvéru, s ktorým je implementovaná logika stránky. Jednoducho povedané, toto je skryté z oka užívateľa a vyskytuje sa mimo jeho prehliadača a počítača.

Napríklad, keď zadáte požiadavku na stránke stránky Search a kliknite na tlačidlo ZadaťFrontend končí a začína backend. Vaša požiadavka je odoslaná na server. Google alebo Riedkakde sa nachádzajú vyhľadávacie algoritmy. Je to tam, že sa stane všetci "mágia". Akonáhle informácie, ktoré ste hľadali, sa na monitore objavil návrat na zónu Frontend.

Server a veľký je ten istý počítač, len silnejší. Ukladá údaje a reaguje na požiadavky používateľa.

Backend je proces kombinovania servera s užívateľom.

Developer Backend môže na svojom serveri aplikovať všetky nástroje. Má právo si vybrať ktorýkoľvek z univerzálnych programovacích jazykov, napríklad, Ruby, PHP, Python, Java.

Používa sa aj pre backend vývoj rôzne systémy Manažment databázy:

  1. Mysql;
  2. Postgresql;
  3. Sqlite;
  4. Mongodb.

V závislosti od typu produktu sa clá backend developer môže značne zmeniť. Takýto špecialista môže vytvoriť a integrovať databázy, zabezpečiť bezpečnosť, vytváranie technológií. rezervná kópia a obnovy.

Ako frontend a backend interagt?

Frontend a Backend Interagts v kruhu: Frontend pošle informácie o užívateľovi v backente, spracováva sa a vráti sa späť, pričom sa zobrazí jasná forma.

Rôzne špecialisti sa spravujú v týchto typoch práce, ale je žiaduce pochopiť zásady, pre ktoré kolegovia pracujú. Napríklad návrhár rozhrania je dôležitý aspoň vo všeobecnosti, aby ste vedeli, aká je základom projektu, ku ktorému je zapojený. To mu pomôže primerane oceniť, aké technické schopnosti môžu byť na stránke alebo aplikácii.

Existuje niekoľko možností pre interakciu frontend a backend:

  • HTTP požiadavka je priamo odoslaná na server, server hľadá informácie, vloží ho do šablóny a vráti sa ako html stránky;
  • Možnosť pomocou nástrojov Ajax (Asynchrónny JavaScript a XML). V tomto prípade sa žiadosť vysiela JavaScript.Stiahnuté do prehliadača a odpoveď je vo formáte XML alebo JSON;
  • Jednorazové aplikácie, ktoré sťahovali údaje bez aktualizácie stránky. To sa tiež robí pomoc Ajax ALEBO FREYMVORKOV Uhlové a ember.;
  • Ember. alebo knižnica Reagovať Pomoc pri používaní aplikácie a na serveri av klientovi. Frontend a Backend Interakcia cez AJAX a HTML kód, ktorý je spracovaný na serveri.

Ako vidíme, moderný vývoj je komplexný a viacúrovňový proces, ktorý je rozdelený na dve časti: klient a server. V programátoroch Arsenal Frontend- a Backend Existuje veľa nástrojov, z ktorých výber závisí od úlohy a zložitosti projektu. Obidve typy vývoja zahŕňajú technické a kreatívne komponenty.

Zodpovednosti vývojárov Frontend- a Backend sú zvyčajne rozdelené, ale sú časy, keď programátor musí vyriešiť problémy, ktoré vznikajú na strane servera aj v časti klienta. Často na trhu môžete stretnúť špecialisti, ktorí sa s dôverne cítia ako na frontend, a v backend a môžu kombinovať dva typy práce.

Môžete začať svoju cestu v frontend a backend-vývoj z 12-mesačného skillboxu. Je vhodný pre nováčikov a programátorov s malými skúsenosťami. Pre rok, poslucháči študentov v praxi preskúmajú hlavné programovacie jazyky a vytvárajú vlastné portfólio, ktoré pomôžu nájsť sľubnú a dobre platenú prácu.