Mit kell tudnia a backend fejlesztőnek. A hátránytól eltelt

Üresedés:
backend Webfejlesztő

Az egyik igényelt specialitás a webfejlesztés területén egy backend létrehozása, azaz a webes alkalmazás szerver része. A szakemberek sikeres foglalkoztatásához szükség van a tudás és készségek bizonyos poggyászaira. A vállalatok képviselői azt mondják, hogy mit szeretne látni a csapatukban

  1. Milyen ismeretekkel és készségekkel kell rendelkezniük a backend-webfejlesztőnek?
  2. Mi az eszközkészlet egy backend webfejlesztő?
  3. Melyek a vállalat követelményei a potenciális alkalmazottak kialakítására?
  4. Melyek a munkatapasztalatokra vonatkozó követelmények?
  5. Vannak olyan különleges követelmények, amelyek a vállalat sajátossága miatt következnek be?

Arthur Bozhenov, a belső automatizációs tanszék vezető programozója pozitív technológiák

Timur Himullin, Természetmérnök az Automatizációs Tesztelési Tanszék fejlesztési Technológiák Pozitív technológiák

1. Arthur Bozhenov: A Backend Webfejlesztőnek a következő készségekkel és tudással kell rendelkeznie:

  • többszálas programozás;
  • a sav elvei (atomi hatás, konzisztencia, izolálás, megbízhatóság) és alkalmazásuk a gyakorlatban;
  • a hálózati architektúra és a protokollok általános elvei;
  • a HTTP-kérelem / válasz életciklusa, az átjáróút;
  • a hálózati kapcsolatok védelme (HTTPS). Engedélyezés. Hozzáférési jogok meghatározása az erőforrásokhoz;
  • Pihenés, odata, webapi, szappan;
  • webes szolgáltatások;
  • webes alkalmazás hosting (IIS, Nginx, Lightpd, Node.js, Apache);
  • a megoldás skálázhatósága, kiegyenlítő / útválasztási kérelmek;
  • fakitermelés;
  • adatgyűjtés;
  • adat tárolása (a tárolási módszer megfelelő választéka a feladattól függően);
  • nagy mennyiségű adatmal dolgozik.

2. Arthur Bozhenov: Alapvető eszközkit Backend Webfejlesztő:

  • kényelmes IDE (Visual Studio, NetBeans stb.);
  • a Regex kifejezések létrehozása / módosítása / módosítása / módosítása / módosítása, JSON, XML, SZÖVEG, HOGY TÖRTÉNŐ KAPCSOLÓDÓ;
  • Google és Stackoverflow;
  • Mongodb / redis / memcached;
  • ElasticSearch / Kibana;
  • Rabbitmq / Zeromq / MSMQ és más MQ.

Timur Himullin: Mivel az IDE, ez a helyzet az íz, legalább jegyzettömböt (sabloim, NPP), de szerettem volna jobban nézett abba az irányba Jetbrain termékek, és mások, akik jól beilleszkedett egymással.

3. Arthur Bozhenov: Magasabb (opcionális) műszaki (kötelező). Tapasztalat praktikus munka fontosabb.

Timur Himullin: Ami az oktatást illeti, jobb technikai vagy matematikai.

4. Arthur Bozhenov: 3-5 éves nem frontend fejlesztés.

Timur Himullin: A backend fejlesztők számára nem tudom tisztázni.

5. Arthur Bozhenov: Analitikus elme.

Timur Himullin: Az igazi készség a csapatban dolgozni és a tárgyalási képességgel. A fejlesztő, aki nem tudja, hogyan kell modellezni, és haladéktalanul dolgozni, anélkül, hogy az összes alkalmazási modul általános architektúrájának és kölcsönhatásában gondolkodik, nem fogok sehova. A kiszervezésen hagyja ülni!

Evgeny Kuzin, a hálózati projektek vezetője,LLC "Doktor Web"

1. Először is, a Backend Webfejlesztőnek közös poggyászának kell lennie minden fejlesztő számára - mérnöki gondolkodás, a feladat lényegének belépésének képessége, bomlik az összetevőkre, és helyesen válassza ki a megoldandó eszközöket.

A webes alkalmazás architektúrája jelentősen különbözik a rendes architektúrából alkalmazott szoftver Először is, több tucat egyszerre, és néha több száz felhasználó dolgozik webes alkalmazásokkal. Ügyfélszigetelés egymástól, a rendszerbiztonság, a termelékenység növekedésének kiszámítása a rendszer és a kapcsolódó építészeti és technikai megoldások skálázásával teljesen leesik a webfejlesztő vállára.

Másodszor, fontos, hogy a webfejlesztője érzékeny legyen az internet fejlesztésére, elemezze az alkalmazott technológiákat és eszközöket.

A webfejlesztőnek nem szabad félnie az új technológiák elsajátításáért, könnyen emelkedni kell (a kollégákhoz képest - alkalmazási programozókhoz képest) és gyorsan képesek legyünk.

2. Nem hívok konkrét programokat, mert minden egyes szempontok egyenértékű opciók lehetségesek.

Természetesen a böngésző, az elemzéshez, ellenőrzéshez és manipulációhoz szükséges összes kiterjesztéshez az elemek és szkriptek a weboldalon. Ezután a segédprogramok, amelyek lehetővé teszik küld a különböző egyéni HTTP kérések (mivel 95% webfejlesztés van a HTTP protokoll), és elemzi a forgalom és az adatcsere és adatcsere részletesen a kliens és a szerver. Szintén egy backend webfejlesztő szöveg szerkesztőKívánatos a programozási nyelvek támogatása, hibakeresési eszközök, profilozás és vezérlés a verziók.

Külön, érdemes megemlíteni az eszközöket az íráshoz vagy a műszaki dokumentáció létrehozásához. A dokumentáció jó, jó dokumentáció is nem rossz.

És természetesen a fő eszközök a fej és egyenes kezek.

3. Ez feltétlenül szükséges tudni az oroszul, képes legyen egyértelműen és világosan meg kell adnia gondolatait a kollégákkal való kommunikációban, mind írásban, mind szónél. A többiek esetében nem követeljük meg a kérelmezőket a magasabb technikai oktatás kötelező módon, vagy bármely bizonyítványok rendelkezésre állása - megoldja a munka minőségét és a gyakorlati ismereteket.

4. Itt ugyanaz az elv, mint az oktatás. Tapasztalat, tapasztalat - feltétel nélküli profik, de az egyes jelöltek egyénileg tartjuk.

5. Ha pontosan az internetre való fejlődésről beszélünk, akkor a webfejlesztés maga is bemutatja egy olyan alkalmazás létrehozását, amely a felhasználó számára nyilvános környezetben dolgozik, amelynek igazi szándékai ismeretlenek. Bármely művelet programozása, kérdéseire van szükséged: Mi van, ha a felhasználó (A támadó) automatizálja a művelet végtelen végrehajtását? Mi van akkor, ha az alkalmazás bemeneti adatait önkényesen szerkesztik? Hogy ha a szolgáltatáshoz tartozó kapcsolat bejön nyílt hozzáférésűEz egy IM-en keresztül továbbítja egy másik felhasználónak? Stb.

Tevékenységünk specifikálása alapján gyakran folytatjuk az utat a támadóknak, és az adatok, amellyel együtt dolgozik bizonyos körökben, ezért a webes alkalmazások egy része különösen alapos védelmet igényel.

Nikolai Netherry, új fejlesztés vezetője, Badoo

1. A Badoo-i backend webfejlesztő, mint bármely jó mérnök, képesnek kell lennie arra, hogy megértse a feladatot, és képes legyen hatékonyan megoldani azt a rendelkezésre álló technológiák és eszközök keretében. A PHP + MYSQL-t használjuk, így webfejlesztőnknek először szabadon kell rendelkeznie PHP és SQL. Felelősnek kell lennie, és arra kell törekednie, hogy jól működjön - a határidők megfigyelése érdekében megértse a feladat termékét / műszaki értékét, válaszoljon a végső minőségre.

2. Az alapkészlet PHP, MySQL, Nginx, Git, JIRA, IDE, Kedvenc böngésző és parancs sor. Ezenkívül számos különböző eszközt, rendszert, könyvtárunk van, amelyet a fejlesztők mindenhol használnak bizonyos feladatok megoldására. Néhány ilyen eszköz áll rendelkezésre nyílt forráskódban, például a PINBA egy valós idejű PHP monitoring ágens, a kódformázó eszköz PHPCF, PHP-blokkolás a Leptica könyvtár számára.

3. Ha egy személy megfelel a készségek és ismeretek a követelményeknek, akkor készek vagyunk nyújtani neki munkát függetlenül attól, hogy az oktatás.

4. A helyzet hasonló az oktatási helyzethez: nincs szigorú és formális követelmények.

5. Projektjeinknek nagy közönségének és kellően betöltött PHP-backendjeinek vannak. A csúcsokban akár 50 ezer kérelmet kapnak másodpercenként. E tekintetben különös figyelmet fordítunk a termelékenység témájára. Meg kell érteni a gyorsítótárazás, a replikáció, az optimális munka alapelveit, az adatok fogyasztását és az erőforrások elosztását. Képes legyen látni és lokalizálni a termelékenységi problémát bármely szinten.

Denis Streetov, a technológiai fejlesztési osztály vezetője és a vállalat karbantartása "NTC IT Rosa"

1. Az ilyen helyzetre vonatkozó jelölt az NTC IT Rosa-ban a következő készségekre van szükség:

  • jó tudás Ruby a sínek 4.x;
  • a viselkedésvezérelt fejlesztés ismerete;
  • ismerkedés a kollektív fejlesztés alapelveivel - Version Control Systems, Task Trackerek és így tovább;
  • az adatbázisok (mind a relációs, mind a NOSQL) tapasztalata;
  • tapasztalat karcsú / haml;
  • ismeretek és tapasztalatok a JavaScript / Coffeescript segítségével;
  • cSS / SCSS tudás.

2. Az NTC informatikai Rosa a webfejlesztéshez jelenleg használt bootstrap keretrendszert, valamint a JavaScript keretrendszereket. A PostgreSQL és a Redis az adatok tárolására szolgál. A Ruby Rails-ről szóló fejlesztés a viselkedés által vezérelt fejlesztési megközelítésnek megfelelően történik az RSPEC Toolkit használatával.

3. A magasabb technikai oktatás jelenléte plusz, de az első helyen nem fogjuk megnézni az oklevelet, hanem a potenciális jelölt készségeiről és tapasztalatairól.

4. A tapasztalatok évről évre kívánatosok a projektekben, ahol a technológia első bekezdésében említettek (legalább a Ruby Rails) használtak.

5. A backend-web fejlesztők NTC IT Rosa munka elsősorban az ABF fejlesztési és összeszerelési rendszer létrehozásához használt legfontosabb termékek - line Linux disztribúció OS és termékek mellett az operációs rendszer. Ezért nagy előnye lesz, ha az üresedésre vonatkozó jelölt ismeri a Linuxot és a rendszer összeszerelő csomagjait. Nem lesz további ismerőse az ABF - virtualizációban (különösen az LXC), a konfigurációs menedzsment rendszerekben (például az ansible) és a kódtároló rendszerekben (elsősorban GIT) által használt egyéb technológiákkal.

Sergey Kazantsev, vezető fejlesztő, "Kaspersky Lab"

1. Becasend A fejlesztők felelősek a webszervereken végzett kódért.

Így a backend fejlesztőknek nemcsak a programozási nyelvek, hanem a szerver architektúrák, adatbázisok és hálózati interakciós protokollok is meg kell érteniük.

2. A fejlesztőnek legalább egy magas szintű programozási nyelvet kell ismernie a hatékony webfejlesztési és webszerver keretrendszerét.

Népszerű kötegek lehetnek:

  • C # + ASP.NET + IIS;
  • Java + Spring MVC + Apache Tomcat;
  • Rubin a síneken + nginx;
  • Python + django + apache;
  • PHP + Apache;
  • ... vagy kombinációi.

Sok vállalati webszolgáltatás épül a Microsoft Technologies és Platforms .NET alapján, de Ruby Rails, Perl, PHP is alkalmazható.

A jó backend fejlesztő arzenáljában mindig szerszámok vannak:

  • forgalomfigyelés: Fiddler, Wireshark;
  • profilozás teljesítmény, memória és adatbázis kérések;
  • gyorskeresési naplók: Grep.

3. Kötelező készségek az adatbázisokkal való munkavégzéshez, az üzenetek és a nagy projektek soraihoz az elosztott gyorsítótár használatához.

4. A szükséges tapasztalatok attól függhetnek, hogy a felperes állítja:

  • 1 év - Junior Webfejlesztő;
  • 2-5 év - Webfejlesztő;
  • 5-7 + - Senior / Lead fejlesztő.

5. A Kaspersky Lab a konkrét követelményei a titkosítási ismereteknek, a potenciális fenyegetéseknek a webes alkalmazásokra és a megelőzésére szolgáló módok tulajdoníthatók.

Ilya Kutukov, vezető programozó, Webtechnikai szakemberek párhuzamokban

1. Mi Parallels már nyíltan két megüresedett ilyen szakemberek - a vezető internetes backend fejlesztő (http://hh.ru/vacancy/12586616?query\u003dparallels), valamint a vezető internetes bachend fejlesztő és az építész (Python) (http: //hh.ru/vacancy/12599030?query\u003dparlels), hogy pontosan tudjuk, mit akarunk az ilyen szakemberektől. Magától értetődik, hogy egy személy, aki hozzánk jön, birtokolja a szükséges programozási nyelveket és technológiákat, hogy kellően működjön. A kódolási készségek és az átfogó erudíció ellenőrzése mellett teszteljük az építészséget - a szöveget, amely egy szabadon írott és tudatosan hiányos TK a rendszer fejlődéséhez. Továbbá, hogy azt kérdezi, hogy a jelölt tisztázza, hogy nem világos, hogy nem világos, milyen további kérdéseket, és hogyan látja a rendszer fő összetevőit, az adatrendszert, hogy minden megváltozik a terhelés növelésével, az adatok mennyiségével, és hol lehet elhanyagolni.

2. A fő eszközkészlet - IDE (tisztázni fogom, hogy a csapat előnyben részesítjük a pycharm-t), a fejlesztő környezetét, vagyis olyan programkészlet, amely lehetővé teszi a lehető legnagyobb mértékben a harci szerverek kitöltésén, de ugyanakkor Ideje azzal a képességgel, hogy gyorsan megértse, mi történik, VCS, fejszkriptek. Az érdekes, viszonylag új eszközök, technológiák és megközelítések közül szeretném megemlíteni a "reaktív" megközelítést (Akka, RX. *, Apache vihar stb.), Amely megköveteli a gondolkodás fejlesztője az üzenetek szintjén, eseményeken és módosításukat. A mikroszkolgári architektúrák, amelyek jól kiegészítik az interfész leírásait (Thrift, Avro, ProtoBUFS, JSON SHECHEMA), amelyek lehetővé teszik a szerződések létrehozását, amelyekre az adatokat kicserélik.

3. Az oktatás számunkra nem játszik alapvető szerepet.

5. Backend fejlesztők dolgozunk az ilyen funkciókon, mint párhuzamok MyAccount, Access Portal, asztali portál, olyan megoldások, mint a Parallels Access (Megoldás távoli hozzáférés) és Parallels Desktop for Mac (indítás a különböző operációs rendszerek és alkalmazásai újraindítás nélkül), különböző infrastrukturális megoldásokkal. Ezért van ilyen specifitás, mint nulla leállási idő, és jól, ha egy személy nem csak megérti, hogy milyen változásokat kell tenni, hanem hogyan kell csinálni, nem befolyásolja a felhasználókat.

Konstantin Kichinsky, Stratégiai Technológia szakértője, Microsoft Oroszország

1. A backend webfejlesztő számára szükséges ismeretek és készségek:

  • Hálózati architektúra, protokollok, kommunikációs csatornák.
  • A projektnek megfelelő technológiai verem (például C #, .NET, ASP.NET vagy JavaScript / TypeScript + Nodejs) + Az operációs rendszer alapjául szolgáló vezérlés (például Windows / Azure + PowerShell).
  • A telepítés és a tesztelés automatizálása (beleértve a terhelést is).
  • Megértés cloud funkciók Főbb szolgáltatók (Microsoft Azure, Aws), beleértve a szolgáltatások skálázhatóságát.
  • SDL és általában biztonsági kérdésekben (beleértve a titkosítás és a hitelesítés).

2. Eszközök: Visual Studio, Git + A többi a folyamatoktól és a technológiai veremtől függ.

3. Oktatás: Profil (IT) + Gyakorlati tapasztalat, üdvözöljük a minőségi ismereteket bizonyos területeken (szintén biztonság, vagy biztosítva a webhely hibatűrését).

4. Tapasztalat: gyakorlati tapasztalatok a valós projektekben, beleértve az operációs rendszerben való részvételt.

5. Különleges követelmények: Azure.

Alexander Mountain, igazgató információs technológiák Mail.ru csoport.

1. Először is meg kell ismernie a backend - fő programozási nyelvét, adatbázisát, a szerveralkalmazások megszervezésének elvét. Ezenkívül szüksége van a tudásra az interneten: a HTTP protokoll eszköz, a CSS képességek, legalább a HTML és a JavaScript elemi tulajdonlása. És végül jó fejlesztőnek kell lennie - hogy képes legyen hibázni a saját és valaki más kódját, hogy megfelelően használjon klasszikus algoritmusokat, válassza ki a vonatkozó adatstruktúrákat.

2. A fő eszköz természetesen a programozási nyelv. A nyelv meghatározza az eszközkészlet második szintjét: szabvány a keretnyelv és a könyvtári készletek számára. Ezután menjen adatbázisok: leggyakrabban MySQL vagy PostgreSQL - és NOSQL tároló létesítmények, például Tarantool vagy Redis.

3. A diploma esetében nincs formai követelmény az eszközön a Mail.RU csoportban dolgozni. Sokkal fontosabb a valódi készségek és projektek, amelyekben részt vett. A Mail.Ru Csoportnak két nagy oktatási projektje van: a technoPark az MSTU Bauman és a Technoszféra alapján az IMC MSU alapján, amelynek célja, hogy a diákok specifikus képességeit a webfejlesztés területén adja meg.

4. Nem léteznek formális követelmények, de általában azt mondhatják, hogy a fejlesztő teljesen független lesz valahol két vagy három éves tapasztalattal "a második számot".

5. A Backend fejlesztés hagyományosan cégünk szíve volt. A backend fejlesztőnek valóban a legjobbnak kell lennie mindenben - az intelligens, kreatív, felelősségteljes, tiszta, valamint egy jó csapatjátékos, és lehetőleg a fej körül. Technikai szempontból a specifikusságunk az, hogy a backend legtöbbje a C ++ -re van írva, és nem szkript nyelvek - nagy terhelések kényszerítve.

Alexander Nedzelsky, ITSOFT WEB Stúdiófej

1. Ha egy Bachend fejlesztő egy bizonyos kollektív képéről beszélünk, akkor:

  • az OOP, a tervezési sablonok megértése, az alapvető algoritmusok és az adatszerkezetek ismerete;
  • az egyik programozási nyelv (vagy több) birtoklása;
  • tapasztalat DBMS, tudás SQL;
  • a relációs adatbázisok tervezésének elveinek megértése;
  • a népszerű keretek tapasztalata;
  • tapasztalatok a verziók menedzsment rendszerekkel;
  • a HTML, CSS, JavaScript alapismerete;
  • a tesztkörnyezet beállításának képessége.

2. "Jegyzettömb" és a vállak fejét. És ha komolyan, bármely IDE / szerkesztő és a tesztterület. Általában az eszközöket a preferenciák / feladatok / képességek függvényében választják ki.

3. Szigorúan magasabb technikai.

4. A befejezett és működő kereskedelmi projektek jelenléte.

5. Olyan webes alkalmazásokat, webhelyeket és szolgáltatásokat fejlesztünk, amelyek főként PHP / MYSQL-en vannak. Ugyanakkor a Yii / Symfony és az 1C-Bitrix szabványos megoldásokhoz használjuk. Ezért fontos tapasztalatok és ismeretek fontosak számunkra.

Eduard Gursky, technikai vezető a belső fejlesztési csapatban, Jetbrains

1. A Backend-Webfejlesztő valójában olyan személy, aki kifejleszti a kiszolgáló logikáját és tudatában annak, hogy melyik kontextust fogják végrehajtani - a webes alkalmazások összefüggésében. Ha a háttér-webes alkalmazások hajtják végre a Java, és a legtöbb esetben ez így van, sőt, ugyanazon szakember alkalmazza ugyanezt a követelményt ismeretek és készségek, mint a szokásos Java fejlesztő: nyelvtudás, a megértés a munka és készülékek A Java SDK fő könyvtári alkatrészei stb. Azonban a tapasztalatok is adunk a különböző webes keretrendszerek (végrehajtásának egyszerűsítéséről Függőség injekció, MVC, stb), a képesség, hogy értékeljék és javítsák a teljesítményt az alkalmazást, a skálázhatóság. Meg kell figyelembe venni és megérteni, hogy milyen gyorsan a felhasználói alkalmazás megkapja az eredményt a szerver kódot, valamint azt, hogyan biztonságosan és racionálisan, a másik kiszolgáló funkciók racionális keresztül a felhasználó böngészője.

Gyakran a backend web alkalmazás integráció harmadik féltől származó szolgáltatásokra vagy kivitelét a funkcionalitás, mint külső API-t. A fejlesztőnek meg kell értenie, hogy az ilyen feladatok hogyan valósulnak meg, hogy mely protokollokat és mechanizmusokat használják erre.

Annak ellenére, hogy az ilyen személy elsősorban az alkalmazáskiszolgáló logikájának fejlesztésével foglalkozik, az alkalmazás ügyfélrészének hibakeresésére vagy prototípusának szükségességére van szükség. Innen következik, hogy meg kell érteni a működését a TCP / IP protokoll, HTTP protokoll, az alapelvek a böngésző interakció a webes alkalmazás, alapvető ismereteket elrendezés, CSS stílusok, JavaScript képességeit.

2. Általában ez az IDE a fejlesztéshez. Azt is meg kell használni a profiler, hogy megoldja a termelékenység feladatokat, a túlzott erőforrás-felhasználás, stb A mi csapatunk, az általunk használt IntelliJ ötlet.

3. Nem írunk elő formai követelményeket a jelöltek oktatásának szintjére. Fontosabb tapasztalat, megértés és intelligencia, és természetesen az ember motivációja.

4. Természetesen a termelési webes alkalmazások fejlesztésének bármely tapasztalata plusz. A fent leírt ismeretek és készségek nem jelenhetnek meg szakembernél a releváns élmény hiányában. Az interjúkon általában az önéletrajzában meghatározott különböző projektekben való részvétel részletei iránt érdeklődünk annak érdekében, hogy felmérjük a jelöltet az ilyen feladatok végrehajtásával megvásárolható tapasztalatokat. Egy olyan szakember, aki különböző megközelítéseket és technológiákat próbált megoldani a hasonló feladatok megoldására olyan webes alkalmazások kidolgozásában, amelyek elemezhetik az egyes megközelítés előnyeit és hátrányait, nagyon érdekes jelölt.

5. A Jetbrains termékeket használó alkalmazások fejlesztésének tapasztalata üdvözli. Mindannyian a cégnél próbáljuk meg használni termékeinket, mert kényelmesek, és azért, hogy még kényelmesebbé tegyük őket!

A közelmúltban is gyakoroljuk a webes alkalmazások fejlesztését a Kotlin nyelven. Ez számos jelentős előnyt ad, és az írási kódot is élvezetesebbé teszi. A jelölt vágya üdvözlendő új nyelvek és új megközelítések tanulmányozására a webes alkalmazások végrehajtásához.

Dmitry Ovchinnikov, Webfejlesztő
Natalia bogár, toborzó Sooo "játékfolyam" a Minsk Center for Development Wargaming

1. A backend fejlesztője a web mély megértését igényli: a böngésző oldalán lévő http kérés kialakulásáról az IntersPerson kommunikáció különböző protokollok alkalmazásával történő megvalósítása előtt. A Wargaming Web nem csak a "személyes fiókja" a játékos, hanem sok szolgáltatás, amely egységes hitelesítést, regisztrációt, részvételt nyújt a hivatkozási programban stb.

Fontos, hogy mérnöki gondolkodás legyen. Kombinálva egy nagy műszaki horizonton, ez lehetővé teszi hatékony megoldásokat.

És persze, győződjön meg róla, hogy minőségi kódot ír. A programozó arca a kódja. A fő architektúrák és a modern programozási minták ismerete gyakran kötelező, ha egy nagy csapatban dolgozik egy komplex projekt felett.

2. A Wargaming A használt technológia halmozása meglehetősen szabványos: A webes projektek főbb tömbje a Python-on alakult ki, egyes szolgáltatásokat PHP-ben írták, és mások, a gyorsaság és a párhuzamos számítástechnika kritikusak. A MySQL tárolható, gyorsítótár - memcached. Rabbitmq az üzenetek gumiabroncsként van kiválasztva a cégben. A keretek - django és csavart. Ha az elülső részről beszélünk, akkor ez egy közös gerinc / aláhúzás / jquery köteg.

Ami a fejlesztési eszközöket illeti, a wargaming-ben ragaszkodunk a "Mi jobb a fejlesztő számára". Valaki modern IDE-t használ, valaki kényelmesebbé érzi magát Vim vagy Emacs. Nem számít, mely eszközök segítségével végezzük munkánkat, ha az eredmény kényelmes és hasznos olyan szolgáltatások, amelyek minden nap több millió játékosot tesznek lehetővé a világ minden nap.

3. Nincs formalizált követelmények az oktatás szintjére. A profil (műszaki, matematikai) oktatás plusz lesz, mivel a jelölt alapvető elméleti előkészítésének jelenlétét jelzi, de valószínűleg nem válik döntő tényezővé, amikor a munkába való felvétel történik. Megértjük, hogy a matematika, az OOP, a klasszikus algoritmusok és az adatstruktúrák tudása függetlenül beszerezhető. Előnyben részesülnek a pályázók számára. Továbbá, a jelölt képes megoldani a mérnöki feladatok és a mérnöki megoldásokat, és nem csak írási kódot.

4. A munkatapasztalat követelményei az üresedéstől függenek. Ha fiatal szakembert meghívunk, először megvizsgáljuk az "otthoni projektjeit" és az egyetemi fejleményeket. Biztosnak kell lennünk abban, hogy egy személy nem véletlenül jött hozzánk, tudatos választás volt, amely igazolható a valódi, de befejezett projektek valódi példáival. Amikor tapasztalt szakemberről van szó - a követelmények pontosabbak. Fontosunk több területen: adatbázisok, Linux, Web Server (Apache, Nginx), a gyorsítótárazási rendszerek (Memcached), az üzenetküldő rendszerek (Rabbitmq) ismerete és megértése, valamint a keretrendszerekkel való tapasztalat (django, csavart). A nagy terhelési projektek optimalizálásának tapasztalatai nagyon hasznosak lesznek, és lehetővé teszik, hogy gyorsan csatlakozzon a fejlesztési folyamathoz, és a maximális hatékonysággal és a csapathoz való maximális hatékonysággal. A vezető szakértők és szakértők számára a fentiek mellett fontos a technikai horizont és a különböző technológiai kötegek tapasztalata.

5. A Wargaming.net Univerzum hatalmas számú szereplőire vonatkozó webes infrastruktúra támogatása magában foglalja a nagy terhelésű munkavégzés képességét, és az alkalmazási architektúrában a működési képesség nagy mennyiség Kérelmek.

A kiolvasás készenléti állapota mellett fontos megjegyezni a biztonságot. Ezért a wargaming webfejlesztője köteles megtudni a jelentős fenyegetések elleni küzdelem mechanizmusairól, és biztosítja a kód megbízhatóságát.

Elkészített Igor Strompel

Superjob.ru Portal Kutatóközpont Különösen a "Rendszergazda" a munkáltatói ajánlatokat tanulmányozta. A backend-webfejlesztő pozíciójával a speciális követelmények még nincs meghatározva, elsősorban azok a tény, hogy bemutatják őket a programozóknak.

Java programozó

AZT.
Távközlés
Ipar
Termelés
Épület
Vagyonkezelés
Szolgáltatások B2V. Értékesítési B2B Értékesítési B2C.
ÉN. 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
Vö. 125 000 110 000 100 000 115 000 115 000 110 000
100 000 88 000 80 000 92 000 90 000 90 000

Furcsa bérvonalak - Middle MSK, még - a Szentpéterváron

Fizetési tartomány A szakmai készségek követelményei és kívánságai
Range I.
  • Hiányos felsőoktatás (technikai / it)
  • Kiváló tudás HTML, CSS, Java, XML
  • Az objektumorientált programozási elvek ismerete
  • Az adatbázisfejlesztés elméleti alapjainak ismerete
  • Az angol nyelv ismerete az olvasási műszaki dokumentáció szintjén
  • Java programozási élmény hat hónapról
II. R60.
  • Tapasztalat webszerverekkel és alkalmazási szerverekkel
  • Java programozási tapasztalat 1 év
III
  • Felsőoktatás (technikai / it)
  • Tudás tervezési sablonok Java és J2ee
  • Tapasztalat speciális eszközök (hibernálás, tavasz, támaszok stb.)
  • Tapasztalat a fejlesztő csapatban
  • Tapasztalat a verziók ellenőrzési rendszerekkel
  • Tapasztalat DBMS-vel (MS SQL Server vagy Oracle)
  • Java programozási élmény 2 év
Tartomány IV.
  • A minősített tanúsítványok jelenléte
  • Tapasztalat tervezés információs rendszerek és a projektdokumentáció előkészítése
  • Az integrációs megoldásokkal kapcsolatos tapasztalatok (IBM WebSphere, Oracle Fusion Middleware)
  • Tapasztalat a többszintű alkalmazások fejlesztésében
  • Java programozási élmény 3 év
Lehetséges kívánságok:
  • az angol nyelv ismerete a Colloquial vagy a szabad szinten
  • skills Manuális fejlesztői csoport

Valery Chernetova felkészült, szuperjob elemző vezetője


Kapcsolatban áll

  • Átruházás

Ez a lista olyan témákban jelent meg, amelyeket a kollégákkal és a barátokkal beszéltem, és amelyben meg akartam megérteni a mélyebbet ...

Nem vagyok nagy szerető, hogy megkérdezzem az interjúk technikai kérdéseit: Számomra jobb, ha olyan sokat ül egy jelölt (vagy jelölt) egy billentyűzeten egy igazi kód, valódi probléma - és egy egész nap, hogy vegyenek részt Pár programozás, ez a csapat többi részével kívánatos. De úgy vélem, hogy néhány technikai kérdés jó kiindulópont lehet egy lenyűgöző és kellemes beszélgetés kezdetén, és lehetővé teszi egymás mélyebbé.

A kiszolgáló részével kapcsolatos számos kérdést összegyűjtik ebben a tárolóban, amelyet a potenciális jelöltek ellenőrzése során használhatunk. Semmiképpen sem ajánlott megkérdezni minden Kérdések egy jelölthez: több órát vesz igénybe, és egyáltalán nincs értelme, mert túl széles körű témákat fedeznek fel. Senki sem tud mindent. Válassza ki a legmegfelelőbb részt és a legérdekesebb kérdést a beszélgetés bővítéséhez.

Egy figyelmeztetés

A legtöbb kérdés nyitva van, néhány egyszerűen nem jobb vagy rossz Válasz. Éppen ellenkezőleg, a beszélgetés kiindulópontja, amely egy ötletben jobban meg kell mutatnia az emberi képességeket, mint egy egyszerű válasz. Személy szerint, általában előnyben részesítem a kérdéseket, a válaszokat, amelyekre én magam nem tudom.

Ismét hangsúlyozom, hogy aligha van feltenni a kérdéseket. Az interjú végén töltsön el egy hosszú munkamenetet pár programozással: ez az egyik az egyik jobb lehetőségekAhhoz, hogy megértsük a stílust és megközelítsék egymást - és adj megérteni a jelölteket, mit várhat a jövőbeni munkából.

Ezt a projektet a @darcyclarke-től a "Kérdések kérdései" minta alapján hozták létre.

Hol vannak a válaszok?

Előbb-utóbb kiegészítem a cikket a megfelelő válaszokkal. Hálás lennék segítségért!

Kérdések a tervezési sablonokon:

Miért a globális tárgyak és statika gonosz? Megmutathatod a példakódot?

Mondja el nekünk az ellenőrzési inverzióról, és hogyan javítja a szervezet kódját.

A Cseppek törvénye (a minimális tudatosság elve) kimondja, hogy minden egyes programmodulnak korlátozott ismeretekkel kell rendelkeznie más modulokról, és csak a közvetlen "barátokkal" kell lépnie (néha úgy van kialakítva, hogy "ne beszéljenek" nem idegenekkel "). Írhat egy kódot, amely megsérti ezt az elvet? Miért van a rossz szervezete és hogyan kell javítani?

Az Active-Record egy olyan tervezési sablon, amely arra ösztönzi a funkciók megvalósítását, például a beillesztést, a frissítést és a törlést, valamint az adatbázisban lévő alapvető táblázat oszlopait. Gondolod és tapasztalatod, milyen korlátozások és buktatók vannak ez a sablon?

Az Adat-Mapper olyan tervezési sablon, amely arra ösztönzi a konverterek (térképek) rétegét az objektumok és az adatbázisok között, ugyanakkor fenntartja függetlenségüket egymástól és maga a konverterből. Ezzel ellentétben ezzel a sablonnal az Active-Recordban az objektumok közvetlenül tartalmazzák az adatbázisban lévő adatbázisban és tulajdonságok mentését az adatbázisban. Van véleménye ezekről a sablonokról? Milyen esetekben részesíti előnyben az egyiket egy másiknak?

Miért, ha nullnak adják be, gyakran említik az "milliárd dolláros hibát"? Szeretné megvitatni a technikákat, hogy megakadályozzák ezt, például a GOF könyvben bemutatott null objektum sablont, vagy opcionális típusokat?

Miért jobb a kompozíció, mint az örökség?

Mi a biztonsági szint (korrupcióellenes réteg)?

Singleton egy olyan tervezési sablon, amely egy példányt hoz létre egyetlen objektumhoz. Írja be a megfelelőt (szál-biztonságos szinglett) nem olyan egyszerű. Próbáld ki?

A megvalósítás megváltoztatásának képessége az ügyfélrész befolyásolás nélkül elvont adatbevitel (adatkivétel). Írjon egy példát, amely megsérti ezt a tulajdonságot, akkor javítsa ki.

Írjon egy kódrészletet a kódot, amely megsérti a don "t megismétlését (száraz). Ezután javítsa ki.

Hogyan fogod foglalkozni a pokol függőséggel (függőségi pokol)?

Miért van Goto - gonosz?

A megbízhatóság elve az általános szabály a kódex, amely javasolja "Konzervatív, hogy küldje el, és liberális az, amit elfogadsz". Gyakran formulázzák "Toleráns olvasó és óvatos író". Szeretné megvitatni ezt az elv jelentését?

Beszélgetés elválasztása - Az elválasztás tervezési elv számítógépes program Az egyes területek esetében mindegyik felelős a feladatért. Számos különböző mechanizmus van a felelősségek elválasztására (tárgyak, funkciók, modulok vagy sablonok, például MVC és hasonlók használata). Szeretné megvitatni ezt a témát?

A kód megszervezésével kapcsolatos kérdések (kódtervezés):

Gyakran azt mondják, hogy az objektumorientált tervezés egyik legfontosabb feladata (és a kód mint egész szervezete) erős tengelykapcsoló és gyengeség. Mit jelent? Miért olyan fontosak és hogyan lehet elérni őket?

Miért kezdődik a legtöbb nyelven a tömb index a semmiből?

Hogyan befolyásolja a tesztek és a TDD a szervezet kódját?

Írjon egy kódfragmodalmat, amely megsérti a don "t megismétlését (száraz). Magyarázza el, miért van rossz szervezete, és helyes.

Mi a különbség a tengelykapcsoló és a kapcsolat között?

Mi a refacting?

Hasznosak a Kódex észrevételei? Valaki azt mondja, hogy lehetséges, ha lehetséges, és ideális esetben nincs szükségük. Egyetértesz?

Mi a különbség a szervezeti kód és az építészet között?

Miért íródnak a TDD tesztek a kód előtt?

A C ++ több örökséget támogat, és a Java lehetővé teszi az osztály számára, hogy több interfészet hajtson végre. Milyen hatással van ezeknek az alapoknak az ortogonalitásra? Van-e különbség a többszörös öröklés és több interfész használatának hatásai között? Van-e különbség a küldöttség és az öröklés között? [Ez a kérdés a "Pragmatic Programmer" Andrew Khanta és Defvida Thomas könyv közül]

A téma területének logikájának tárolása a tárolt eljárásokban.

Véleménye szerint miért uralja az objektumorientált szervezet olyan sok éven át a piacon?

Ha a kódja rossz szervezete van, hogyan érti meg?

Kérdések a programozási nyelveken:

Mondja O. három fő A kedvenc programozási nyelvének hátrányai.

Miért növeli az érdeklődést a funkcionális programozásban?

Mi a lezárás és mi hasznos? Mi a közös lezárásokkal és osztályokkal?

Mikor kényelmes a generics használata?

Mi a magas rendű funkciók? Mire van szükségük? Írjon ilyen funkciót bármely nyelven.

Írja be a ciklust, majd konvertálja azt egy rekurzív funkcióra, amely csak impozáns struktúrákat használ (azaz változók nélkül). Írd le.

Mit jelent, amikor a nyelv első osztályú objektumként működik?

Mutasson példát, ha egy névtelen funkció hasznos lehet.

Miért van szüksége névtérre? Jöjjön létre egy alternatívával.

Mondja el nekünk a Java és a C # kompatibilitásról (vagy válasszon két másik tetszőleges nyelvet).

Miért nem szeretik sok fejlesztő Java-t?

Mi teszi a jó nyelv jó és rossz nyelv - rossz?

Írjon két funkciót, egy referenciálisan átlátható és más referenciálisan átlátszatlan. Beszéljünk velük.

Mi a verem és mi egy csomó? Mi a verem túlcsordulás?

Miért fontos, hogy a funkciók az első osztályú objektumok a nyelvben?

Néhány nyelven, különösen funkcionális megközelítéssel, egy technika megengedett, amit a mintával összehasonlítunk. Ismeri Önt? Hogyan különbözik a minta leképezése a kapcsolótervezéstől?

Miért nem hajtanak végre néhány programozási nyelvek kivételét? Melyek a megközelítés előnyei és hátrányai?

Ha a macska állat, akkor igaz, hogy TakeCare - Ez Takeckare. ?

Miért a Java, a C # és sok más nyelvtervező nem része az interfésznek?

Az utóbbi években sok zaj a node.js. Mi az Ön véleménye a backstand nyelven való használatról, amelyet eredetileg a böngészőben dolgoztak?

Képzeld el, hogy van egy ideje, és lehetőség van arra, hogy visszatérjen egy bizonyos időpontban a Java történelemben (C #, Python, Go vagy valami más), és beszéljen néhány JDK alkotójával. Mit akarsz meggyőzni őket? Törölje az ellenőrzött kivételeket? Adjon hozzá aláírás nélküli primitív típusokat? Több öröklés?

Webfejlesztési kérdések:

Miért olyan eltérő módon dolgoznak a natív sütemények és a harmadik féltől származó cookie-k?

Hogyan kezeli a webes szolgáltatások API verzióinak számozását?

A backend szempontjából hátránya van az egyoldalas alkalmazások bevezetésének hátrányainak vagy akadályainak?

Miért törekszünk annyira arra törekedünk, hogy a szolgáltatás hontalan volt? Mi olyan jó a hontalan kódban? Miért és ha az állapot tárolása (a helyzet) rossz?

Pihenés és szappan: Milyen helyzetekben választja ki az egyik ilyen megközelítést, és milyen más?

A webfejlesztésben a modell-nézetvezérlő és a modellnézet-nézet-modell-megközelítések nagyrészt hasonlóak mind a visszafelé, mind az elülső oldalon. Mit képzelnek el, és miért kell használni őket?

Adatbázis-kérdések:

Hogyan írja közzé az alkalmazást egy adatbázisból a másikra, például a MySQL-től a PostgreSQL-ben? Ha ilyen projektet kell kezelnie, milyen problémákat vársz?

Miért tartja az adatbázis nullát, mint egy különleges esetet? Például, miért válassza ki az SQL-t * az asztalról, ahol a mező \u003d null nem ad felvételt a null mezővel?

A sav egy atomerő, konzisztencia, izolálás, tartósság (atomi hatás, konzisztencia, izolálás, stabilitás) rövidítése. A legtöbb adatbázis-motor garantálja ezeket a négy tulajdonságot az adatbázisban található tranzakciókhoz. Mit tudsz róla? Szeretne többet mondani?

Hogyan foglalkozik a DB séma átadásával, vagyis hogyan automatizálja a DB-rendszer változásait, mivel az alkalmazás a verzióra a verzióra a verzióra alakul ki?

Hogyan hajthat végre egy lusta terhelést? Mikor hasznos? Melyek a víz alatti kövek?

Az úgynevezett "N + 1 probléma" előfordul, ha a kódot a "szülőktől fogott-leszármazottai" kapcsolatából kell betöltenie az ORM-ben lusta csomagtartóval, ezért küldjön egy kérelmet a szülői nyilvántartáshoz, majd az egyes leányvállalatok egyik kérését . Hogyan oldja meg a problémát?

Hogyan találja meg a leginkább költségkéréseket az alkalmazásban?

Véleménye szerint mindig szükséges az adatbázis normalizálása? Mikor ajánlatos denormalizált adatbázis használata?

A folyamatos integráció egyik módszerét kék-zöld adósságnak nevezik. Két ipari működési környezetet, amennyire csak lehetséges - és az egyikben telepítve van a másikban, majd biztonságos beállítást követően a második környezetről a második környezetről a második helyre történő átkapcsolása. Ez a módszer bonyolult, ha az adósság magában foglalja az adatbázis szerkezetének vagy tartalmának megváltoztatását. Szeretném megvitatni ezt a témát veled.

Kérdések a NOSQL-en:

Mi a következetesség végső soron (esetleges konzisztencia)?

Mi a helyzet a sapka tételével, adjon példákat a CP, AP és CA rendszerekre.

Hogyan magyarázza meg a NOSQL érdeklődését az utóbbi időben?

Hogyan oldja meg a NOSQL a skálázhatóság problémáját?

Ebben az esetben, akkor inkább egy dokumentum-orientált adatbázis-kezelő rendszert, mint MongoDB helyett relációs adatbázis-kezelő rendszert, mint a MySQL vagy PostgreSQL?

Kérdések a kód változatában:

Miért könnyebbé válik a Mercurial vagy Git ágak végrehajtása, mint az SVN-ben?

Milyen előnyei és hátrányai vannak az elosztott verziók ellenőrzési rendszereiből, mint például a Git, a központosított VCS-hez képest, mint az SVN?

Le tudná írni a munkafolyamat Github áramlását és a gitflow-t?

Mi a Rebase (Move)?

Miért könnyebben gyakorolni az összefonódás higai vagy git-ben, mint SVN és CVS-ben?

A párhuzamosság kérdései:

Miért van szükséged párhuzamosságra? Magyarázza el.

Miért olyan nehéz tesztelni a többszálú / párhuzamos kódot?

Mi a verseny állapota? Írjon példát az önkényes nyelvre.

Mi a kölcsönös blokkolás? Írhatsz olyan kódot, amely kölcsönös zárakkal szenved?

Mi az erőforrás éhség (folyamat éhezés)? Szükség esetén vegyük figyelembe a definícióját.

Mi a nem blokkoló szinkronizációs algoritmus elvárások nélkül (váratlan algoritmus)?

Az elosztott rendszerekkel kapcsolatos kérdések:

Hogyan teszteljük az elosztott rendszert?

Ebben az esetben alkalmazzuk aszinkron kommunikációt két rendszer között?

Melyek a távoli kihívási eljárások fő víz alatti kövei?

Ha elosztott rendszert hoz létre a skálázhatóság és a megbízhatóság érdekében, milyen különböző problémák fordulhatnak elő zárt és biztonságos hálózati környezetben - és földrajzilag elosztott és nyilvános rendszerben?

Hogyan lehet biztosítani a webes alkalmazás hibatűrését? Asztali alkalmazás?

Hogyan kell megbirkózni az elosztott rendszerek hibáival?

Beszéljünk a különböző megközelítésekről a munkaképesség helyreállításához (megbékélés) a hálózati kapcsolat megsértése után.

Mi a tévhitek az elosztott számítástechnikával kapcsolatban?

Ha kérelmet / választ alkalmaz, és amikor közzéteszi / feliratkozik?

Tegyük fel, hogy a rendszer, amellyel dolgozik, nem támogatja a tranzakciókat. Hogyan valósíthatja meg a semmiből?

Kérdések az életciklus szoftverrel és kézi csapatával:

Mi a rugalmasság (agilitás)?

Hogyan fogsz dolgozni egy örökölt kóddal?

Mondja, én vagyok a projektvezető, és nem a programozás szakértője. Próbálja meg elmagyarázni nekem, mi az örökölt kód, és miért kell gondoskodnia a kód minőségéről.

A vállalat ügyvezető igazgatója vagyok. Magyarázd el nekem Kanban és meggyőzni, hogy fektessen be benne.

Mi a fő különbség a rugalmas fejlesztési módszertan és a kaszkád modell között?

Mivel egy csoportvezető, hogyan oldja meg a túl sok találkozó problémáját?

Hogyan fogja megbirkózni a projektrel, amelyet erős késedelemmel végeznek?

"Az emberek és az interakció fontosabb, mint a folyamatok és az eszközök" és "Az ügyféllel való együttműködés fontosabb, mint a szerződés feltételeinek összehangolása" az Agile-manifesztben hirdetett értékek fele. Beszéljünk velük.

Mondja el nekünk, milyen döntéseket hozna, ha a vállalat műszaki igazgatója lenne.

Van-e előnye a programvezetőktől?

Munkaterv készítése, rugalmas ütemterv (vagyis a telepített munkaidő nélkül) és a "Vegyük, amikor szüksége van".

Hogyan kezeltél nagyon nagy tanítást és meggyőzni a fejlesztőket, hogy ne hagyják el a csapatot a fizetés növelése nélkül? Milyen jó lehet a vállalat, hogy maradjanak?

Melyek a három fő minőség, amely értékeli a kollégákban, kivéve a programozást?

Milyen három fő dolgot kell a programozásnak megismerni a humán tudományokat, véleménye szerint?

Képzeld el, hogy a vállalat egy hónappal és a költségvetést biztosítja, hogy javítsa Önt és kollégái mindennapi életét. Mit csinálnál?

Kérdések logikával és algoritmusokkal:

Írjon egy FIFO várót csak az Lifo Stacks használatával. Ezután hozzon létre egy Lifo Stacket csak FIFO sorokkal.

Írjon egy töredéket a kódnak a puffer túlcsordulásához.

Írjon egy faktorialit egy végső rekurzióval.

Bármely nyelven írja be a REW-t, amely azonnal megjeleníti a megadott értékeket. Javítsa az RPN számológépre.

Hogyan tervezte a támogatást a töredezettségmentesítéshez?

Írjon egy olyan programot, amely véletlenszerű labirintusokat generál.

Írjon egy példa kódot, amely létrehoz egy memória szivárgást.

Egyedi véletlen számok sorozata.

Írjon példát egy egyszerű szemétgyűjtő rendszerre.

Írjon egy egyszerű üzenetet üzenetet bármely nyelven.

Írjon egy nagyon egyszerű webszervert. Tegyen egy olyan funkciót, amelyet a jövőben végre kell hajtani.

Hogyan rendezi a 10 GB fájlt? Hogyan juthat el egy 10 TB-fájl módosításához?

Hogyan találja meg az ismétlődő fájlokat?

Kérdések az építészetről:

Ha a gyorsítótár nem szükséges, és még károsítja?

Miért javítja az eseményorientált architektúrát a skálázhatóság?

Mi teszi a kódolható kódot?

Mi a különbség a fejlesztés kialakítása (emergens design) és evolúciós architektúra között?

Vízszintes és függőleges skálázás: Mit különböznek egymástól? Mikor kell alkalmazni egy dolgot, és mikor van más?

Hogyan kell dolgozni a kudarc (failover) és a felhasználói munkamenetek ellenőrzésének megismerésével?

Mi a CQRS (parancs lekérdezés felelősségszegregáció)? Hogyan különbözik a parancs-lekérdezési elválasztás régi elvétől?

Mi a háromszintű architektúra?

Hogyan tervezi a szoftverrendszer méretezhetőségét?

Milyen stratégiák megoldani a C10K problémát?

Hogyan tervezzen decentralizált (azaz központi szerver nélkül) P2P rendszert?

Miért nem skálázott CGI?

Hogyan védi a rendszereket a beszállítótól a beszállítóhoz (Szállítózáró)?

Melyek a "Kiadó-előfizető" tervezési sablon hiányosságai?

Mi történt a 80-as évek fejlesztése óta a processzorok fejlesztésében, miért fontos a programozás szempontjából?

Az életciklus milyen szakaszában mérlegelnie kell a teljesítményt és hogyan?

Hogyan jelenik meg az elutasítási hiba problémája a DOS támadás miatt, de a rossz tervezés miatt, vagy az architektúra problémája miatt?

Mi a kapcsolat a teljesítmény és a skálázhatóság között?

Mikor elfogadható az erős elkötelezettség (szoros kapcsolás) használata?

Milyen jellemzőkkel kell rendelkezni a rendszernek, hogy menjen a felhőbe?

Az építészek földterületének kialakítása? Egyszerűen felkészíti: jó design keletkezhet az összes fejlesztő kollektív erőfeszítéseiből?

Mi a különbség a tervezés, az építészet, a funkcionalitás és az esztétikai tulajdonságok között? Beszéljünk.

Kérdések a szolgáltatásorientált építészetről és a mikroszervekről:

Miért nem ösztönzik a SOA hosszú tranzakciókat, hanem felkérik őket, hogy használja a saga-t?

Mi a különbség a SOA és a Microservice között?

Beszéljünk a webszolgáltatások verzióinak számozásáról, a verzió kompatibilitásáról és a kritikus változásokról, amelyek visszahúzódnak a kompatibilitást.

Mi a különbség a tranzakció és a kompenzáló művelet között Saa-ban?

Mikor is mikroszkusza?

Milyen előnyei és hátrányai vannak a microservice architektúrából?

Biztonsági kérdések:

Hogyan írjunk biztonságos kódot? Véleménye szerint a fejlesztő felelőssége, vagy ha ez egy külön szakember a vállalatnál? És miért?

Miért mondod, hogy ne próbálja meg feltalálni vagy tervezni saját kriptográfiai szabályait?

Mi a kétfaktoros hitelesítés? Hogyan hajtja végre egy meglévő webes alkalmazásban?

Ha óvatosan nem kezeli a naplókat, mindig fennáll annak a veszélye, hogy a bizalmas információk jönnek ott, beleértve a jelszavakat is. Hogyan akadályozza meg az ilyen problémát?

Írjon egy kódrészletet az SQL injekció alá, és javítsa ki.

Hogyan találhatom meg az SQL injekció biztonsági rését a statikus kódelemzés módszerével? Nem várom, hogy megírja a kész algoritmust, mivel túl nagy, de tárgyaljuk az általános megközelítést.

Mit tudsz a cross-site scriptingről? Ha nem emlékszel, nézzük meg leírását az interneten, és beszéljünk róla.

Mit tudsz a keresztbe esett lekérdezésre? Ha nem emlékszel, nézzük meg leírását az interneten, és beszéljünk róla.

Hogyan működik a HTTPS?

Mi a támadás "ember a közepén"? És miért segít a HTTPS védelme ellen?

Hogyan lehet megakadályozni a felhasználói munkamenet lopását? Valószínűleg emlékszel arra, hogy mi a lopás egy munkamenet vagy cookie-k, különben elolvastuk a Wikipedia oldalt ezen a témában.

Általános kérdések:

Miért fontos a programozás funkciója? Mikor kell használni a funkcionális programozás nyelvét?

Hogyan lehet olyan vállalatok, mint a Microsoft, a Google, az Opera és a Mozilla a böngészőjükön?

Miért van a TCP aljzat megnyitása nagy fejjel?

Ami fontos a kapszulázás használatához?

Mi a valós idejű rendszer, és hogyan különbözik a szokásos rendszertől?

Mi a kapcsolat a valós idejű programozási nyelvek és a memóriaelosztás között egy halomban?

A változatlanság az egy objektum létrehozásának időpontjában az értékek egyetlen beállítása, és ezeket az értékeket soha nem változtatják meg. Hogyan segíti a hangtalanság biztonságosabb kódot írni?

A változtatható és változatlan értékek előnyei és hátrányai.

Mi az objektum-relációs rés (objektum-relációs impedancia eltérés)?

Milyen elveket alkalmaznak a gyorsítótár méretének meghatározására?

Mi a különbség a TCP és a HTTP között?

Melyek a renderelés kiválasztásának kompromisszumai az ügyfél oldalán és a szerver oldalon?

Hogyan lehet megbízható kommunikációs protokollt fejleszteni a megbízhatatlan?

A feltaláló a nulla mutató Tony Hoar egyszer azt mondta: „lehet nevezni az én milliárd dollár hibát”, mert ez vonzza „számtalan hibát, sebezhetőség és rendszerhibák, ami feltehetően szenvedést és kárt egymilliárd dollárt az elmúlt negyven évben . " Tegyük fel, hogy megszünteti a nulla mutatókat a programozási nyelvben: Hogyan döntesz meg ilyen feladatot? Milyen következményekkel járhat?

Nyílt kérdések:

Miért ellenállnak az emberek?

Ismertesse a szálak fogalmát a nagymamáddal.

Fejlesztőként egyidejűleg szeretné, és alkalmazza az innovációt, és kiszámítható legyen. Hogyan létezhetnek ezek a két cél egymással együtt ugyanazon a stratégiában?

Mi teszi a jó kódot?

Magyarázza el, hogyan történik a streaming műsorszórás, és hogyan hajtja végre azt.

Tegyük fel, hogy vállalata ad egy héten, hogy javítsa az életet az Ön és kollégái számára: Hogyan használod ezt a héten?

Mit találtál az elmúlt héten?

Bármilyen tervezésben esztétikai elem van. A kérdés az, hogy ez az esztétika az Ön barátja vagy ellensége?

Nevezze meg az olvasott öt könyvet.

Hogyan hajtja végre a nagy sikeres vállalat folyamatos szállítási megközelítését, amelyhez a kaszkád modelltől a folyamatos ellátási megközelítésig való átmenet nem triviális a méret és az üzleti komplexitás miatt?

Mikor van értelme újra feltalálni a kereket?

Beszéljünk az ANEW kerekeinek találmányáról, valaki másnak a fejlődésének és gyakorlatának szindróma elutasításáról, a vállalat vagy a saját szolgáltatásainak és termékeinek fejlesztői csapatának (saját ételeit eszik).

Mit automatikusan automatizálod az aktuális munkafolyamatot?

Milyen nehézségek vannak írásban szoftver? Mi teszi a szoftver támogatását?

Szeretne teljesen új projekteken dolgozni (Greenfield), vagy folytatja az aktuális (barnafield)? Miért?

Mi teszi az operációs rendszert, ha nincs parancs egy adott kód végrehajtására, és úgy néz ki, hogy üres? Szeretnék beszélgetni a megszakításokról, a démonokról, a háttérszolgáltatásokról, a felmérésekről, az események feldolgozásáról stb.

Magyarázza el az Unicode-t vagy az ötéves baba DBM-jét.

Adj érveket a monolitikus építészet javára.

Mit jelent, hogy "professzionális fejlesztő" legyen?

A programozás művészet, kézműves vagy mérnöki tevékenység? Ön szerint.

Miért rosszabbak a vállalatok az innovációk bevezetése, mint az indítók?

Az utolsó eredményed büszke vagy?

Kérdések kódfragmensekkel:

Mi a funkció végrehajtásának eredménye JavaScript?

Funkcióhorogupevents () (a (var i \u003d 0, i)< 3; i++) { document.getElementById("button" + i) .addEventListener("click", function() { alert(i); }); } }
Mi a helyzet a típusok törlésével, amely ilyen Java kódot ad, és miért?

Tömb lista. Li \u003d új arrailist (); Tömb lista. Lf \u003d új ArrayList (); ha (li.getclass () \u003d\u003d lf.getclass ()) // értékeli a True System.Out.Println ("egyenlő");
Meg tudja érzékelni a memória szivárgást?

Nyilvános osztály (privát objektumelemek, privát int) méret \u003d 0; magán statikus végleges intra default_initial_kapacitás \u003d 16; nyilvános verem () (elemek \u003d új objektum;) Nyilvános Void Push (Essurecacity (); Elemek \u003d e;) Nyilvános objektum POP () (ha (Méret \u003d\u003d 0) dobja az új emptypacKEXception (); Visszatérő elemek [- méret];) / ** * Eszfontos helyet legalább egy elemre, nagyjából * a kapacitás minden alkalommal megduplázza a kapacitást hogy növekedjen. * / Private Void objectKapacity () (IF (Element.length \u003d\u003d méret) elemek \u003d array.copyof (elemek, 2 * méret + 1);)
Megszabadulhat a kapcsoló kapcsolóból, és írjon több objektumorientált kódot?

Nyilvános osztálytáblák (magánszolgáltató szolgálat, nyilvános formater (szolgáltatás;) nyilvános string dothejob (string theinput) (String Response \u003d Service.Akrforpermission (); Switch (válasz "hiba": "hiba" : Visszatérési string.Format ("% s% s", theinput, theinput); alapértelmezett: visszatérési null;))))
Megszabadulhatsz, hogy az üzemeltetők és írj több objektumorientált kódot?

Nyilvános osztályú theservice (privát végső filehandler filehandler; Privát végső fileHandosory fileSocosory; nyilvános theservice (FileHandler Filhandler, Fabonosory filehandler) (thileHandler \u003d FileHandler; ez.Foorostortory \u003d foorposory;) Nyilvános karakterlánc (végleges string) FileHandler.getxmlfileFromFilename (fájl); végleges string executionID \u003d FileHandler.GeExtionionIdFromFilename (fájl); ha ((executionID \u003d\u003d "") || (REWRITEURL \u003d\u003d "")) (Visszatérés "";) ); ha (az eDODFOO \u003d\u003d null) (Visszatérés "",) visszaadása (fájl);))
Hogyan készítsünk egy ilyen kódot?

Funkció () (hresult error \u003d s_ok; ha (sikeres (opció1 ()) (ha (sikeres (sikeres (operenciate2 ()) (ha (sikeres (sikeres ())) (ha (Hiba))) (ha (hiba \u003d művelet))) más (hiba \u003d művelet4failed; Mûködés3Failed;)))))))))) más (hiba \u003d művelet2failed;))) más (hiba \u003d művelet1failed;) Visszatérési hiba;)

Hátsó fejlesztő (angolul. Visszafelé (fordított oldal) fejlesztő) Ez a szakember, aki részt vesz a szoftver-adminisztratív része egy webes alkalmazás, a rendszer belső tartalom, szerver - adatbázis, építészet, szoftver logika. A szakma alkalmas azok számára, akik érdeklődnek a számítástechnikában (lásd az iskolai tantárgyak iránti érdeklődés kiválasztását).

A Bec-End fejlesztő egy láthatatlan elülső harcos.

A modern webhelyek, webes alkalmazások és játékok nagyon összetettek, így egy egész szakemberek dolgoznak rajtuk. A teljes, gyönyörű, funkcionális és felhasználóbarát webhely létrehozásához szükség van az elülső vég és a hátsó fejlesztők következetes munkájára. Ez gyors feladat egy webhely vagy webes alkalmazás létrehozásához, és megkönnyíti a szolgáltatást.

Figuratívan beszélve, a back-end fejlesztés egy autómotor létrehozása, míg az elülső végfelhasználás a gépvezérlés kialakításának és funkcióinak létrehozása. A hátsó végfeldolgozó szoros kapcsolatban áll az elsődleges fejlesztővel, és felhasználói adatokat fogad el tőle, és visszaküldi a kapott eredményt.

Alapvető eszközök Vissza End Fejlesztő - Szerver programozási nyelvek: például PHP, Python, Ruby, Java, Perl, csomópont JS (szoftverplatform). A JS csomópont mellett hasznos az Express (könyvtár, amely a JS platform szerverrel való együttműködéséhez) és egy Mongo DB (adatbázis az információ megszerzéséhez és tárolásához).

Mint további források A Symfony, a Codigiter, Yii, a Zend keret, a Kohana stb.

A szakma jellemzői

A modern fejlesztők nemcsak a programok kódját írják le. Így dolgozott programozók 10-15 évvel ezelőtt. Jelenleg ez a kifejezés nem helyénvaló, mert a munka gyakran lehet tenni, kódolás nélkül, egyszerűen csatlakoztassa a kész részek egy egységes kialakítását. És a programozók most a "fejlesztő" vagy "mérnök" -nek nevezik.

A fejlesztés az IT-szférában, projektek egyre összetettebb és a tervező, hogy össze lehet gyűjteni kész megoldásokat (keretek) szinte bármilyen feladat.

Így a fejlesztő pro-end funkciója így néz ki:

  • a szolgáltatási architektúra kialakítása;
  • helyszíni mag létrehozása;
  • a platform fejlesztése és a fő funkcionális;
  • munka a kódarchitektúrával;
  • az alkalmazások fejlesztése, amelyek támogatják a felhasználói felületet és a biztonságot;
  • a szerverek állapotának ellenőrzése (harc, teszt és munkavállaló);
  • a verziók ellenőrzése, adatbázisok, folyamatos integráció.

Előnyök és hátrányok

Magas fizetésű és igényelt szakma.

Munkavégzés helye

Site fejlesztési vállalatok, webes alkalmazások, mobil alkalmazások.

Fontos tulajdonságok

  • analitikus elme
  • logikus gondolkodás
  • kezdeményezés
  • képes megtervezni és követni a terveket
  • csapatmunka képességek
  • a gondolkodás rugalmassága
  • felelősség, kitartás, célzás
  • Összpontosítson az eredményre és a minőségre
  • a vágy, hogy folyamatosan tanulmányozzák az új és a kérelmet a munkájában

Szakmai ismeretek és készségek

Legalább egy programozási nyelv ismerete: Go, C, C ++, Perl, Python, Php, Ruby, Java.

  • a gyors, szép és helyes kód írása;
  • a népszerű webes freignorok ismerete (django, lombik, tavasz);
  • készség tervezési adatbázisok és a kérések optimalizálása;
  • a modern programozási paradigmák ismerete;
  • a tervezési minták ismerete;
  • webszolgáltatások, interfészek megértése;
  • angol a műszaki dokumentáció olvasásához.

Hol lehet tanulni a hátsó fejlesztőből

Vonatok (személyesen, Moszkvában). Számítógépes oktatásra szakosodott nemzetközi oktatási intézmény. 1999 óta működik. 42 ágazat a világ 16 országában. A legnagyobb engedélyezett képzési központ Microsoft, Cisco, Autodesk. A diákok nemzetközi tanúsítványokat és nemzetközi diplomát kapnak. A fő cél minden diplomás foglalkoztatása.

Felsőoktatás:

Annak érdekében, hogy valódi szakemberré váljon a háttámlafejlesztés területén, szükség van egy alapvető profilos oktatásra, amelyet a következő egyetemeken lehet beszerezni:

De fontos megjegyezni, hogy az egyetemi alapoktatás megalapozza az oktatási alapot, de nem elég ahhoz, hogy a jelenlegi tudás modern technológiák. Ezért az önképzés fontos ezen a területen, hogy lépjen kapcsolatba az új technológiák és eszközök. De viszont a profiloktatás hiánya abban a pillanatban érinti, amikor valami megszűnik a munkához, és a személy nem érti - milyen okból. Természetesen az alapfokú oktatással foglalkozó szakember nem tud mindent, de jelentős készséggel rendelkezik - hol találja meg és hogyan kell használni a szükséges tudást.

A modern munkáltatók általában nem írnak elő formai követelményeket felsőoktatás Irodai jelöltek. Számukra, a legfontosabb tapasztalat, intelligencia, szakember motivációja.

Garry fizetés (hány hátsó végfelhasználó keres)

Fizetés 09/16/2019

Oroszország 40000-100000 ₽

Moszkva 80000-300000 ₽

Lépcsők Karrier és perspektívák

A hátsó fejlesztő pozíciójából, miután kifejlesztette a fejlesztői elülső végének készségét, a teljes veremfejlesztő közvetlen útját. További növekedés érdekében folyamatosan tanulni kell az új: tanulmány részletesen a fejlesztési technológiák szoftvertermékek, A szolgáltatási rendszerek konfigurálása és konfigurálása.

Az osztályokon belüli átmenetek néha másképp kapcsolódnak. Valaki egyszerűen ismerős lát pályaváltást egy vállalaton belül prizmán keresztül kiküldetés hozzászólás. Valaki nem tekinthető lehetővé a tevékenység hatókörének megváltoztatására, még akkor is, ha a jelenlegi a jelenlegi. Harmadszor, elvben bízunk benne, hogy a tanszék részlegéről való áttérés azt jelenti, hogy egy személy úgy véli, hogy "egy hal, sem hús, és nem valószínű, hogy valami jelentős.



Ugyanakkor egyes munkáltatók üdvözlöm ezt minden módon, és úgy valamit, mint egy biztosíték a kiégés - egy személy meg fogja változtatni a figyelem középpontjába, meg fogja változtatni az osztály vagy részleg, de nem változtatja meg maga a mű egészét.


A nevem Kostya, és Qiwiban dolgozom közel 4 éve. Ma elmondom, mennyire sikeresen váltottam a FRONTING DEFFORMÁCIÓBAN.

Frontend

A Qiwi-ban, 2014 vége óta az IOS-alkalmazások fejlesztőjeként kezdtem dolgozni, és elvben egy pár éve foglalkozott egy Qiwi pénztárca kialakulásában. Ugyanakkor nem mondhatom, hogy unalmas volt - a feladatok meglehetősen eltérőek voltak és ugyanabban az alkalmazásban: a pénztárca más szolgáltatásokkal való integrációjával foglalkoztak, bosszút álltunk a hibákkal, meghúzva az animációt. Ezenkívül fejlett tapasztalat volt az Apple Watch alkalmazás létrehozására. Aztán egy kicsit fókuszált, és még a "lelkiismeret" ios alkalmazásánál is dolgozott.



Aztán, akkor elkezdtem lassan mozogni a hátába. A rugalmas módszertan szempontjából még kényelmes - bekapcsoltam, az első sprintben valamilyen bachenda feladatot végezhet, és a második pedig az API integrációját végzi, amit írtam.


De a backendben, abban az időben túl kevés fejlesztő volt, és túlságosan izmos rotot, így a végén még mindig átkapcsoltam a backendre. Amit most csinálok, a backerender klasszikus feladata - egy kódot írok a Microservice-ban, Chiny Bugi-ban, a Refactoring-ben vagyok, megértem Kotlin. Lehetőség van arra, hogy a vállalat friss termékén dolgozzon - Qiwi Investor.


By the way, nem tudom azt mondani, hogy ez a két év kiderült, hogy valahogy eljöttem az elején, egyértelműen rájöttem, hogy ott is ott volt, hol kell kialakítani. Például, látom, hogy mi történik a mobilfejlesztési csapatban, és megértem, hogy ott maradok, továbbra is tovább fognék nőni a srácokkal.


Tehát itt volt egy győzelemes helyzet - akartam segíteni a csapatnak és a terméknek (a fejlődés előnye nagyon nem volt a háttérben), és új ismereteket szerez. A Timlids mindent megértett, és minden panasz nélkül mentem, és termékeket is.


Ezen felül, a tudás akartam átállni nem csatolható egy platform (Android nem tetszik egy kicsit, de az Apple még mindig megadja a helyzet). Nos, vágy volt arra, hogy mi lehet, hogy mit tudjon venni és magának egy kérelmet nyújtani magának (és elölről és hátterében), ha valami hűvös ötlet hirtelen megjelenik. Eddig azonban nem volt hasznos.

Backend.


Természetesen az első probléma, amellyel egy ilyen átmenetet találsz, a mérkőzésen hiányzik. Az én esetemben ezek voltak az adatbázisok munkájának egyes finomsága, de mindketten segített az önfunkció és a csapat számára - a srácok érzékenyek és mindig készen állnak arra, hogy részletesen segítsenek és megmagyarázzanak valamit. A QIWI elvileg a tanulás minden szakaszában, minden rendben van, hogy van legalább Junior legelején a munka, legalábbis ez hogyan kell dönteni, és módosíthatja a gömb egy pár év múlva.


Senki sem bosszantotta az első alkalommal, amikor nyilvánvalóan nem volt ilyen hatékonyan, mert sokat kellett belépni (de hosszú távon a csapat még mindig győztes).


Természetesen kevés tapasztalattal rendelkeztem a különböző területeken - a mobil játékok és az interneten, de mindez volt, inkább megpróbálta magukat érezni, nem pedig a gyakorlati komoly élményt.

A Backend a Frontend után

Nincs munka az UI-vel. Egyáltalán. Korábban meg kellett volna ölnem az időt, hogy kijavítsa az UI hibáit, most nincs. Az ilyen helyzetben lévő hátrányok - A végfelhasználó nem látja a konkrét munkám eredményeit, mivel az elülső volt. Megpróbáltam meghatározni, hogy mi a nehezebb - hátrány vagy elöl, és rájöttem, hogy (személyesen nekem) nehezebb volt, hogy mindig dolgozzon a multithreading és a hálózati veremmel. És itt már nincs olyan fontos - Ön az elülső vagy a hátra. Az elején először találkoztam ilyen feladatokkal, előkészítés nélkül és a backenden, bármilyen tapasztalattal.


Lehetőség van tapasztalatot szerezni, és bármilyen területen valami hűvös lesz, vágy és előfeltétele lenne, vannak gyakorlatok itt -, hogy tegyenek valamit (és jól), és hogy biztonságosan és könnyen támogatott. És a backender nem annyira kritikus a jelenléte vagy hiánya tapasztalat az első. Ha a fejlesztés figyelembe veszi az összes kis dolgot, tétovázza a sarokkart, és egészben megérti, hogy az API hogyan fogja használni, akkor mindent meg kell tennie.


Könnyebb számomra felfedezni lehetséges problémák Csak azért, mert tudom a mobil alkalmazásaink megvalósításának jellemzőit. De ez nem valamiféle szuperpozíció - ez egy olyan ismerete, amelyet bármely más beckened, amely gyakran a frontokkal működik.

Hogy a végén

A Backend-Development egy másik jó élményt jelent számomra - megtanultam írni kódot és revw-t, gondolkodom az építészet felett. Tényleg érdekes.


De ugyanakkor megpróbálja élni, hogy az első az, hogy vissza, nem fogom mondani, hogy a háttérben a karrier kezdetén azonnal választaná. Még mindig fontos számomra, hogy megnézzem és megértsem, hogyan érzékeli a felhasználókat. A Backend-szel, ez minden nagyon kísérteties.


Valószínűleg a gömb kiválasztása most GameDevhez vagy webes fronthoz megyek. A web továbbra is jó platform az új termékek elindításához, ugyanakkor megszűnt, hogy szörnyű és nehéz megérteni. Mindezek a spagetti kódból és a visszahívásból származó oktatóanyagok messze elmaradtak, szerencsére.

A FRONTEND fejlesztés felhasználói felület és a weboldal vagy alkalmazás ügyféllapján működő funkcionalitás. Ez a fajta fejlesztés mindazoknak tulajdonítható, amelyeket a felhasználó lát, megnyitja a weboldalt. A FRONTEND fejlesztő együttműködik a tervezőkkel, a programozókkal és az UX elemzőkkel, hogy kényelmes és igényelt terméket hozzon létre.

Annak érdekében, hogy egyértelműen megértse, hogy a Frontend-Development, nyissa meg bármely webhely oldalát - látni fogja az Ön előtt álló felületet. A jobb egérgombbal láthatja az oldal kódját a böngészőben.

Ez a kód egy Példa egy Frontend fejlesztőre, letölti a felhasználó böngészőjére, és láthatja a saját szememmel. Az oldalkód leírja mindent, amit a magad előtt látsz: színek, elrendezés, betűtípusok, grafikai elemek helye és így tovább.

A FRONTEND fejlesztés tartalmazza:

  • HTML (Hypertext Markup Language) - a dokumentummegjelölés nyelve, amellyel az oldalszerkezet alakul ki: címsorok, bekezdések, listák és így tovább;
  • CSS (Cascading Style Sheets) - Nyelv a leíráshoz és a stilizációhoz külső nézet Dokumentum. A CSS-kódnak köszönhetően a böngésző megérti az elemek megjelenítését. A CSS meghatározza a színeket és a betűtípus paramétereit, meghatározza, hogy a különböző webhelyblokkok hogyan találhatók, és így tovább. Ezenkívül lehetővé teszi ugyanazt a dokumentumot különböző stílusokban, például nyomtatáshoz (hagyományos vagy Braille betűtípus), a kimenet a képernyőre vagy az olvasásra;
  • JavaScript. - Ez az a nyelv, amelyet a weboldalak újjáélesztéséhez hoztak létre. Feladata az, hogy válaszoljon a felhasználói műveletekre, kezelje az egéren lévő kattintásokat, mozgassa a kurzort, a billentyűleütéseket. Azt is küldi kéréseket a kiszolgálóra, és betölti az adatokat az oldal újraindítása nélkül, lehetővé teszi az üzenetek beírását és még sok más lehetőséget.

Mi a backend-fejlesztés?

A Backend-Development egy hardver-szoftverkészlet, amellyel a webhely logikája megvalósul. Egyszerűen beszélve, ez az, ami rejtve van a felhasználó szeméből, és a böngészője és a számítógépén kívül történik.

Például, amikor megad egy kérést a Keresés oldalán, és kattintson a gombra BELÉPA frontend véget ér, és backendet kezdődik. Az Ön kérését elküldi a kiszolgálónak. Google vagy Yandexahol a keresési algoritmusok találhatók. Ott van, hogy minden "varázslat" történik. Amint az Ön által keresett információk, a monitoron megjelentek a Frontend Zone-hoz való visszatérés.

És nagy, a szerver ugyanaz a számítógép, csak erősebb. Az adatokat tárolja, és válaszol a felhasználói kérésekre.

A Backend a szerver használatának folyamata a Felhasználóval.

A Backend Developer bármilyen eszközt alkalmazhat kiszolgálón. Joga van kiválasztani az univerzális programozási nyelvek közül, például, Rubin, PHP, Python, Java.

A használt backend fejlesztéshez is különböző rendszerek Adatbázis-kezelés:

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

A termék típusától függően a backend fejlesztői feladata nagymértékben változhat. Az ilyen szakember létrehozhat és integrálhat adatbázisokat, biztosítva a biztonságot, technológiák létrehozását. foglalkoztatási másolat és a helyreállítás.

Hogyan léphetnek keresztül a Frontend és a Backend?

Frontend és backend kölcsönhatásba lép egy kört: Frontend küld a felhasználói adatokat backend, a feldolgozást és visszatér, hogy egy tiszta formában.

Rendszerként különböző szakemberek részt vesznek az ilyen típusú munkákban, de kívánatos megérteni a kollégák működésének elvét. Például az interfész tervezője legalább olyan általános szempontból fontos, hogy tudják, mi az a projekt, amelyhez részt vesz. Ez segíteni fog neki, hogy megfelelő módon értékeljük, hogy milyen technikai képességek lehetnek a helyszínen vagy az alkalmazásban.

Számos lehetőség van a frontend és a backend kölcsönhatására:

  • A HTTP kérést közvetlenül a kiszolgálóra küldi, a kiszolgáló információt keres, beágyazza azt a sablonba, és HTML oldalként adja meg;
  • Opció eszközök segítségével Ajax (aszinkron JavaScript és XML). Ebben az esetben a kérés elküldi JavaScript.letöltötte a böngészőt, és a válasz XML vagy JSON formátumban érkezik;
  • Egyoldalas alkalmazások, amelyek az oldal frissítése nélkül letölthetők az adatokat. Ez is megtörtént segély ajax vagy Freymvorkov Szögletes és emmer.;
  • Parázs. vagy könyvtár Reagál Segítsen használni az alkalmazást és a szerveren és az ügyfélben. A Frontend és a Backend kölcsönhatásba lép a kiszolgálón feldolgozott Ajax és HTML kóddal.

Ahogy látjuk, a modern fejlődés egy összetett és többszintű folyamat, amely két részre oszlik: az ügyfél és a szerver. Az Arsenal Frontend- és Backend programozókban sok eszköz van, amelynek megválasztása a projekt feladataitól és összetettségétől függ. Mindkét típusú fejlesztés magában foglalja a technikai és kreatív alkatrészeket.

A Frontend- és Backend fejlesztők felelőssége általában megosztott, de vannak olyan idők, amikor a programozónak megoldani kell a kiszolgáló oldalán és az ügyfélrészen felmerülő problémákat. Gyakran a piacon találkozhatsz olyan szakemberekkel, akik magabiztosan éreznek mind a frontend, és a backend-ben, és kétféle munkát is kombinálhatnak.

Elindíthatja az utat a 12 hónapos Skillbox-ból. Alkalmas az újonnan érkezők és programozók számára, akiknek kis élménye van. Az év során a diákok hallgatói a gyakorlatban feltárják a fő programozási nyelveket, és létrehozzák saját portfólióját, amely segít az ígéretes és jól fizetett munka megtalálásában.