Mida taustate arendaja peaks teadma. Fracturentilt

Vaba töökoht:
tagasi veebiarendaja

Üks Web Development'i nõudmistest erialadest on tausta loomine, st veebirakenduse server osa. Spetsialistide eduka tööhõive jaoks on vaja teatud teadmiste ja oskuste pagasi. Ettevõtete esindajad ütlevad, milliseid spetsialiste nad soovivad oma meeskonnas näha

  1. Millised teadmised ja oskused peaksid taustate veebiarendaja?
  2. Mis on Backend Web arendaja tööriistakomplekt?
  3. Millised on ettevõtte nõuded võimalike töötajate moodustamiseks?
  4. Millised on töökogemuse nõuded?
  5. Kas on olemas erinõuded, mis on tingitud ettevõtte spetsiifilisusest?

Arthur Bozhenov, sisemiste automatiseerimispositiivsete tehnoloogiate osakonna vanemprogrammeerija

Timur Himalin, loodusliku inseneri automatiseerimisprotsessi arendustehnoloogiate partnerite positiivsed tehnoloogiad

1. Arthur Bozhenov: Tagasi veebiarendajal peab olema järgmised oskused ja teadmised:

  • mitme keermestatud programmeerimine;
  • happe põhimõtted (aatomi, järjepidevuse, eraldamise, usaldusväärsuse ja nende rakendamise põhimõtted;
  • võrgustiku arhitektuuri ja protokollide üldpõhimõtted;
  • hTTP taotluse / vastuse elutsükkel, läbipääsutee;
  • võrguühenduste kaitse (HTTPS). Luba. Juurdepääsuõiguste seadmine ressurssidele;
  • Puhata, odeta, webapi, seep;
  • veebiteenused;
  • veebirakenduste hostimine (IIS, NGGX, LightpD, Node.js, Apache);
  • lahenduse mastaapsus, tasakaalustamine / marsruutimise taotlused;
  • metsaraie;
  • andmete vahemälu;
  • andmete salvestamine (piisav salvestusmeetodi valik sõltuvalt ülesandest);
  • töö suurte andmetega.

2. Arthur Bozhenov: Basic Toolkit Backend Web Developer:

  • mugav IDE (Visual Studio, Netbeans jne);
  • teenused või kommunaalteenused regexi väljenduse, JSON, XML-i teksti loomiseks / vaatamiseks / muutmiseks, sobiva kodeerimise tekst;
  • Google ja stachoverflow;
  • Mongodb / Redis / Memcached;
  • ELASTICSEARCH / KIBANA;
  • RABBITMQ / ZEROMQ / MSMQ ja muu MQ.

Timur Himulin: Mis puudutab IDE, siis see on maitse juhtum, vähemalt notepad (SABLOIM, NPP), kuid ma oleksin nägema paremat Jetbrain toodete suunas ja teised, kes on üksteisega hästi integreeritud.

3. Arthur Bozhenov: Kõrgem (vabatahtlik) tehniline (nõutav). Kogemus praktiline töö tähtsam.

Timur Himulin: Haridusena on see parem tehniline või matemaatiline.

4. Arthur Bozhenov: 3-5 aastat mitte-frontend arengut.

Timur Himulin: Tagasi arendajate jaoks ei saa ma selgitada.

5. Arthur Bozhenov: Analüütiline meel.

Timur Himulin: Tõeline oskus töötada meeskonnas ja võime läbirääkimisi pidada. Arendaja, kes ei tea, kuidas modelleerida ja jätkata tööle viivitamatult ilma mõtlemata üldise arhitektuuri ja kõigi rakendusmoodulite koosmõjuga, ei võta ma kõikjal. Allisarance'is lasta istuda!

Evgeny Kuzin, võrguprojektide osakonna juhataja,LLC "Doctor Web"

1. Esiteks peab taustava veebiarendaja taustal olema ühine pagasi kõigi arendajate jaoks - inseneri mõtlemine, võime sisestada ülesande olemus, lagundada selle komponentideks ja vali selle lahendamiseks õigesti tööriistad.

Veebirakenduste arhitektuur erineb oluliselt tavaliste arhitektuurist rakendatud tarkvara Esiteks, kümneid samal ajal ja mõnikord saavad sadu kasutajad töötada veebirakendustega. Kliendi isolatsioon üksteisest, süsteemi turvalisusest, tootlikkuse suurendamise arvutamisel süsteemi ja sellega seotud arhitektuuriliste ja tehniliste lahenduste suurendamisega on veebiarendaja õlgadel täielikult langenud.

Teiseks on oluline, et veebiarendaja reageerida interneti arendamise suhtes tundlik, analüüsida kasutatud tehnoloogiaid ja tööriistu.

Veebiarendaja ei tohiks karta uusi tehnoloogiaid, peaks olema lihtne tõusta (võrreldes kolleegide rakendamise programmeerijatega) ja suutma kiiresti tegutseda.

2. Ma ei nimeta konkreetseid programme, sest iga aspekti puhul on samaväärsed valikud võimalikud.

Muidugi, brauser, kõik laiendusi vajalikud analüüsimiseks, kinnitamiseks ja manipuleerimiseks elementide ja skriptide veebilehel. Siis kommunaalteenused, mis võimaldavad saata erinevaid kohandatud HTTP-päringuid (kuna 95% veebiarendus on HTTP-protokoll) ja analüüsivad kliendi ja serveri vahelist liiklust ja andmevahetust ja andmevahetust. Samuti toetab ka veebiarendaja vajadust teksti redaktorOn soovitav kasutada programmeerimiskeeled, silumisvahendid, profiilide koostamine ja versioonide kontrollimine.

Eraldi tasub mainida vahendeid tehnilise dokumentatsiooni kirjutamiseks või loomiseks. Dokumentatsioon on hea, hea dokumentatsioon ei ole ka halb.

Ja muidugi peamised tööriistad on pea ja sirged käed.

3. On hädavajalik teada vene, suutma selgelt ja selgelt märkida oma mõtted suhtlemisel kolleegidega nii kirjalikult kui ka suuliselt. Sest ülejäänud, me ei nõua taotlejate kohustuslik viisil kõrgema tehnilise hariduse või kättesaadavuse kohta sertifikaadid - lahendada töö kvaliteeti ja praktilisi teadmisi.

4. Siin on sama põhimõte kui hariduse puhul. Kogemused, kogemused - tingimusteta plussid, kuid me peame iga kandidaat individuaalselt.

5. Kui me räägime interneti arendamisest arendamisest, esitab veebiarendus ise juba rakenduse loomise, mis töötab kasutaja jaoks avalikus keskkonnas, mille tegelikud kavatsused ei ole teada. Mis tahes tegevuse programmeerimine, peate endalt küsima küsimusi: mis siis, kui kasutaja (ründaja) automatiseerib selle tegevuse lõpmatu täitmise? Mis siis, kui rakenduse sisendandmed redigeeritakse meelevaldselt? Et kui link sellele teenusele saab sisse avatud juurdepääsKas see edastatakse IM-iga teise kasutaja kaudu? Jne.

Meie tegevuse eripära tõttu jätkame maatmelist teed ründajatele ja andmed, millega me töötame, on teatud ringkondade vastu suured huvi, nii et mõned meie veebirakendused nõuavad eriti põhjalikku kaitset.

Nikolai Madalrikas, uue arengu juht, Badoo

1. Backend Web arendaja Badoo, nagu iga hea insener, peaks suutma mõista ülesannet ja suutma seda tõhusalt lahendada raames olemasolevate tehnoloogiate ja tööriistade raames. Me kasutame PHP + MySQL-i, nii et meie veebiarendaja peab kõigepealt vabanema PHP ja SQL-i. Peab olema vastutustundlik ja püüdma teha oma tööd hästi - tähtaegade jälgimiseks, mõistmise toote / tehnilise väärtuse mõistmiseks, lõpliku kvaliteedi reageerimisele.

2. Põhikomplekt on PHP, MySQL, NGGX, GIT, JIRA, IDE, lemmik brauser ja käsurea. Lisaks on meil suur hulk erinevaid vahendeid, süsteeme, raamatukogusid, mida arendajad kasutavad kõikjal teatud ülesannete lahendamiseks. Mõned neist tööriistadest on saadaval avatud lähtekoodiga, näiteks Pinba on reaalajas PHP seireagent, meie koodivormingu vahend on PHPCF, PHP-blokeerimine Leptica raamatukogu jaoks.

3. Kui inimene vastab meie oskustele ja teadmiste nõuetele, siis oleme valmis talle töökohta hoolimata pakkuma oma haridusest.

4. Olukord on sarnane hariduse olukorraga: ranged ja formaalsed nõuded puuduvad.

5. Meie projektidel on suur publik ja piisavalt laaditud php-backs. Piikidel nad hakkama kuni 50 tuhat taotlust sekundis. Sellega seoses pöörame erilist tähelepanu tootlikkuse teemale. On vaja mõista vahemällu salvestamise, replikatsiooni, optimaalsete töö põhiprintsiipete, optimeerida ressursside tarbimist ja jaotamist. Suutma näha ja lokaliseerida tootlikkuse probleemi igal tasandil.

Denis Streetrov, tehnoloogilise arengu osakonna juhataja ja ettevõtte "NTC hooldus"

1. Kandidaat sellise positsiooni NTC IT ROSA on vaja järgmised oskused:

  • hea teadmised Ruby rööbastest 4.x;
  • käitumispõhise arengu tundmine;
  • teade kollektiivse arengu - versioonide juhtimissüsteemide, ülesannete jälgimise põhimõtete tundmine;
  • kogemused andmebaasidega (nii relatsiooniline kui ka NoSQL);
  • kogemus õhuke / Haml;
  • teadmised ja kogemused JavaScripti / Coffisercripce'iga;
  • cSS / SCSS teadmised.

2. NTC IT Rosa veebiarenduse jaoks kasutatakse praegu bootstrapi raamistikku, samuti JavaScripti raamistikku Anglarics. Andmete salvestamiseks kasutatakse PostgreSQL-i ja REDIS-i. Development Ruby rööbastele toimub kooskõlas käitumispõhise arengu lähenemisviisi abil, kasutades RSPeci tööriistakomplekti.

3. Kõrgema tehnilise hariduse olemasolu on pluss, kuid esiteks me ei vaata diplomi, vaid potentsiaalse kandidaadi oskuste ja kogemuste osas.

4. Kogemused on soovitav aasta-aastalt projektidesse, kus kasutati tehnoloogia esimeses lõigus (vähemalt rubiinidel) kasutati.

5. Backend-Web arendajad NTC IT töötab peamiselt üle ABF arendus- ja montaažisüsteemi kasutatakse luua meie peamised tooted - liinide jaotused Linux OS ja toodete käesoleva OS. Seetõttu on see suur eelis, kui selle vaba ametikoha kandidaat on Linuxi tuttav ja selle süsteemi pakettidega kokkupanek. See ei ole täiendav tuttav teiste ABF-i virtualiseerimisel (eriti LXC-s), konfiguratsioonihaldussüsteemides (näiteks vastuvõetavatel) ja koodisalvestussüsteemide (peamiselt git) tehnoloogiatega.

Sergei Kazantsev, vanem arendaja, "Kaspersky Lab"

1. Becasendi arendajad vastutavad veebiserverite koodi eest.

Seega Backend arendajad peaksid mõistma mitte ainult programmeerimiskeelte, vaid ka serveri arhitektuuri, andmebaaside ja võrgu koostoime protokolle.

2. Arendaja peab teadma vähemalt ühte kõrgetasemelist programmeerimiskeelt, tõhusa veebiarenduse ja veebiserveri raamistikku.

Populaarsed kimbud võivad olla:

  • C # + ASP.NET + IIS;
  • Java + Spring MVC + Apache Tomcat;
  • Ruby rööbastele + nginx;
  • Python + Django + Apache;
  • PHP + Apache;
  • ... või nende kombinatsioonid.

Paljud ettevõtte veebiteenused on ehitatud Microsofti tehnoloogiate ja platvormide põhjal .NET, kuid Ruby rööbastele, Perlile, PHP-le.

Hea taustaprogrammi arendaja arsenalil on alati tööriistu:

  • liikluse seire: fiddler, wirehang;
  • profiling jõudlus, mälu ja andmebaasi taotlused;
  • kiire otsingu logisid: Grep.

3. Kohustuslikud oskused töötada andmebaaside, sõnumite järjekorrad ja suured projektid jaotatud vahemälu kasutamiseks.

4. Nõutav kogemus võib sõltuda hageja väidete seisukohast:

  • 1 aasta - Junior Web arendaja;
  • 2-5 aastat - veebiarendaja;
  • 5-7 + - vanem / juhtiv arendaja.

5. Kaspersky Labi erinõudeid võib seostada krüptograafiate teadmistest, võimalikest ohtudest veebirakendustele ja nende ärahoidmiseks.

Ilya Kutukov, Senior programmeerija, spetsialist Web Engineering Parallels

1. Meie paralleelid on nüüd avatud selliste spetsialistide jaoks avalikult kaks vabat töökohta - juhtiv veebikaarukad arendaja (http://hh.ru/vacancy/12586616?query\u003dparellels) ja juhtiv Web Bachendi arendaja ja arhitekt (Python) (http: http: //hh.ru/vacancy/12599030?Query\u003dparleelid), nii et me teame täpselt, mida me selliste spetsialistide me tahame. On arusaadav, et meilt tuleva inimene omab vajalikke programmeerimiskeeli ja tehnoloogiaid piisavalt töötada. Lisaks kodeerimisoskuste ja üldise erudeerimise kontrollimisele anname arhitekti katse - tekst, mis on süsteemi arengus vabalt kirjutatud ja teadlikult mittetäielik tk. Lisaks paludes kandidaadil selgitada, et tema jaoks ei ole selge, millised täiendavad küsimused ta on ja kuidas ta näeb süsteemi peamisi komponente, andmekava, kuidas kõik muutub koormuse suurendamisega, andmete koguse suurendamisega ja Kus saab tähelepanuta jätta.

2. Peamine tööriistakomplekt - IDE (ma selgitan, et me oleme meeskonnas eelistavad Pycharm), arendaja keskkonda, st programmide kogum, mis muudab selle vastu võitlemise serverite täitmisel nii palju kui võimalik Aeg võime kiiresti aru saada, mis toimub, VCS, pea skriptid. Huvitavatest, suhteliselt uutest tööriistadest, tehnoloogiatest ja lähenemisviisidest tahaksin mainida ka "reaktiivset" lähenemisviisi (AKKA, RX. *, Apache Storm jne), mis nõuab mõtlemise arendajat sõnumite taset, sündmusi ja nende muudatused. Lisaks mikroservice arhitektuuridele, mis täiendavad oma liidese kirjelduse keeli (Thrift, Avro, Protobufs, JSON SCHEMA), mis võimaldab luua lepinguid, mille andmeid vahetatakse.

3. Meie haridus ei ole oluline roll.

5. Meil \u200b\u200bon tausta arendajad töötavad sellise funktsionaalsuse paralleelidena MyAccount, juurdepääsuportaal, töölaua portaali lahenduste nagu paralleelid kaugjuurdepääs) ja paralleelid töölaud Macile (käivitage erinevate operatsioonisüsteemide ja nende rakenduste machsi käivitamine ilma taaskäivitamiseta) erinevate infrastruktuurilahendustega. Seetõttu on meil selline spetsiifilisus null-seisakuid ja hästi, kui isik mitte ainult mõistab, milliseid muudatusi tuleks teha, vaid ka seda, kuidas seda teha, ei mõjuta kasutajaid.

Konstantin Kichinsky, strateegilise tehnoloogia ekspert, Microsoft Venemaa

1. Teadmised ja oskused, mis on vajalikud Tagasi veebiarendaja jaoks:

  • Võrguarhitektuur, protokollid, sidekanalid.
  • Tehnoloogiline virna vastab projektile (näiteks C #, .NET, ASP.NET või JavaScript / Typecript + Nodejs) + juhtimissüsteemi aluseks olev juhtimine (näiteks Windows / Azure + Powershell).
  • Kasutuselevõtu ja katsetamise automatiseerimine (sh koormus).
  • Arusaamine pilvefunktsioonid Peamised pakkujad (Microsoft Azure, AWS), sealhulgas teenuste mastaapsuse pakkumine.
  • SDL ja üldiselt ohutuse küsimused (sealhulgas krüpteerimise ja autentimise).

2. Tööriistad: Visual Studio, GIT + ülejäänud sõltub protsessidest ja tehnoloogilisest virnast.

3. Haridus: profiil (IT) + praktiline kogemus, tervitades kvaliteetseid teadmisi konkreetsetes valdkondades (ka ohutuse või saidi tõrkekindluse tagamine).

4. Kogemused: praktiline kogemus reaalprojektides, sealhulgas osalemine operatsioonisüsteemide projektides.

5. Konkreetsed nõuded: Azure.

Alexander Mountain, direktor infotehnoloogiad Mail.ru Group.

1. Esiteks peab ta teadma taustaprogrammi - selle peamist programmeerimiskeelt, andmebaasi, serverrakenduste korraldamise põhimõtteid. Lisaks vajab ta veebis teadmisi: HTTP-protokolli seade, CSS-i võimalused, vähemalt HTML-i ja JavaScripti elementaarse omandiõiguse. Ja lõpuks, ta peab olema hea arendaja - suutma oma ja kellegi teise koodi siluda, et kasutada klassikalisi algoritme nõuetekohaselt, valige asjakohased andmestruktuurid.

2. Peamine tööriist on muidugi programmeerimiskeel. Keel määratleb tööriistakomplekti teine \u200b\u200btase: selle raam- ja raamatukogu komplektide standard. Siis minna andmebaasid: kõige sagedamini MySQL või PostgreSQL - ja NoSQL hoidlate, nagu Taranool või Redis.

3. Seadme ajal ei ole diplomi jaoks ametlikke nõudeid mail.ru grupis töötada. See on palju olulisem tegelike oskuste ja projektide jaoks, kus ta osales. Mail.ru Grupp on kaks suurt haridusprojekti: Technopark MSTU Baumani ja Tehnoloogia põhjal IMC MSU alusel, mille eesmärk on anda õpilastele konkreetseid oskusi veebiarenduse valdkonnas.

4. Puuduvad formaalsed nõuded uuesti, kuid üldiselt võib öelda, et arendaja muutub täiesti sõltumatu kusagil pärast kaks või kolm aastat kogemusi "teine \u200b\u200bnumber".

5. Tagasi arendamine oli traditsiooniliselt meie firma süda. Tagasi arendaja peaks olema tõesti kõige parem - arukas, loominguline, vastutustundlik, puhas, samuti hea meeskonnamängija ja eelistatavalt pea ümber. Tehnilisest seisukohast on meie spetsiifilisus see, et enamik taustatest on kirjutatud C ++ -le ja mitte skriptide keeli - suured koormused, mis sunnivad seda.

Alexander Nedzelsky, Isoft Web Studio pea

1. Kui me räägime Bachendi arendaja teatud kollektiivsest pildist, siis:

  • oOP, disaini mallide, põhiliste algoritmite ja andmestruktuuride tundmine;
  • üks programmeerimiskeelte valdus (või mitu);
  • kogemused DBMSi, teadmiste SQL-ga;
  • mõista põhimõtete mõistmine relatsiooniliste andmebaaside projekteerimise põhimõtete mõistmine;
  • populaarsete raamistike kogemus;
  • kogemusi versioonide juhtimissüsteemidega;
  • hTML-i põhiteadmised, CSS, JavaScript;
  • võime luua katsekeskkonda.

2. "Notepad" ja pea õlgadele. Ja kui tõsiselt, mis tahes IDE / redaktor ja katsepiirkond. Tavaliselt valitakse tööriistad sõltuvalt eelistustest / ülesannetest / võimetest.

3. Rangelt kõrgem tehniline.

4. Täidetud ja töötavate kaubandusprojektide olemasolu.

5. Me arendame veebirakendusi, saite ja teenuseid peamiselt PHP / MySQL-is. Samal ajal kasutame Standardlahenduste jaoks YII / Symfony ja 1C-Bitrixi. Seetõttu on meie jaoks olulised asjakohased kogemused ja teadmised.

Eduard Gursky, tehniline juhtkond sisearengu meeskonnas, jetbrains

1. Tagasi veebiarendaja on tegelikult isik, kes arendab serveri loogikat ja teadsid, millise kontekstiga see täidetakse - veebirakenduste kontekstis. Kui Backend-Web rakendused rakendatakse Java ja enamikul juhtudel on see tegelikult sama spetsialist rakendada kõiki samu nõudeid teadmiste ja oskuste nagu tavaline Java arendaja: teadmised keelest, arusaamist töö ja seadmete Java SDK pearaamatukogu komponendid jne. Siiski on lisatud kogemusi ka erinevate veebiraamistikega (sõltuvuse süstimise rakendamise lihtsustamine, MVC jne), võime hindama ja parandada taotluse täitmise, selle mastaapsuse. On vaja võtta arvesse ja mõista, kui kiiresti kasutajate rakendus saab serveri koodi tulemuse, samuti, kui ohutult ja ratsionaalselt on teiste serveri funktsionaalsus kasutaja brauseri kaudu ratsionaalne.

Sageli nõuab Backend veebirakendus integratsiooni kolmanda osapoole teenuseid või ekspordi oma funktsionaalsuse välise API. Arendaja peab mõistma, kuidas selliseid ülesandeid rakendatakse, milliseid protokolle ja mehhanisme kasutatakse selleks.

Hoolimata asjaolust, et selline isik tegeleb peamiselt rakendusserveri loogika väljatöötamisega, vajadust siluda või prototüüpides rakenduse osa kasutades. Siit järgib vajadust mõista TCP / IP-protokolli, HTTP-protokolli toimimist, brauseri suhtluse põhimõtteid veebirakendusega, põhiteadmised paigutuse, CSS-stiilide, JavaScripti võimaluste kohta.

2. Tavaliselt see idee arendamiseks. Samuti peate kasutama Profilerit, et lahendada tootlikkuse ülesandeid, ülemäärast ressursside tarbimist jne. Meie meeskonnas kasutame Intellij ideed.

3. Me ei kehtesta kandidaatide hariduse taseme ametlikke nõudeid. Olulisema kogemuse, mõistmise ja luure ning muidugi motivatsiooni mees.

4. Kõik kogemused tootmise veebirakenduste väljatöötamisel on muidugi pluss. Eespool kirjeldatud teadmisi ja oskusi ei saa asjakohase kogemuse puudumisel olla spetsialistil. Intervjuustes oleme tavaliselt huvitatud üksikasjadest osalemise üksikasjadest erinevates projektides, mis on esitatud jätkamises nimetatud projektides, et hinnata kandidaadi kogemusi selliste ülesannete rakendamisel osteta. Spetsialist, kes proovis erinevaid lähenemisviise ja tehnoloogiaid, et lahendada sarnaseid ülesandeid veebirakenduste väljatöötamisel, mis võivad analüüsida iga lähenemisviisi plusse ja miinuseid, on väga huvitav kandidaat.

5. JetBrainide toodete kasutamise kogemused on teretulnud. Me kõik oleme ettevõttes proovida kasutada meie tooteid, sest nad on mugavad ja sest me tahame neid teha veelgi mugavamaks!

Samuti praktiseerime veebirakenduste arendamist Kotlini keeles. See annab mitmeid olulisi eeliseid ja muudab ka selle kirjutamise koodite kirjutamise protsessi nauditavamaks. Kandidaadi soov on tervitatav uute keelte ja uute lähenemisviiside uurimiseks veebirakenduste rakendamisele.

Dmitri Ovchinnikov, veebiarendaja
Natalia mardikas, värbaja Sooo "Mäng Stream" Minski arengukeskuses Warguming

1. Backend arendaja vajab sügavat arusaamist veebist: alates HTTP-päringu moodustamisest brauseri küljel enne Interssowsoni sidete rakendamist erinevate protokollide abil. Web Warguming ei ole mitte ainult "isiklik konto" mängija, vaid ka palju teenuseid, mis pakuvad ühtlast autentimist, registreerimist, osalemine suunamisprogrammis jne.

Samuti on oluline, et teil oleks tehniline mõtlemine. Koos suure tehnilise horisondiga võimaldab see pakkuda tõhusaid lahendusi.

Ja muidugi kirjuta kindlasti kvaliteedikoodi. Programmeerija nägu on selle kood. Suurte arhitektuuride ja kaasaegsete programmeerimismustrite tundmine on sageli kohustuslik suures meeskonnas töötamisel keerulises projektis.

2. Sõbras on kasutatud tehnoloogia virna üsna standard: peamised veebiprojektide peamine massiiv on Pythonis välja töötatud, mõned teenused on kirjutatud PHP-s ja teised, kriitilised kiiruse ja paralleelse arvuti jaoks Erlangis. MySQL-i kasutatakse ladustamiseks vahemällu - Memcacked. Rabbitmq valitakse ettevõtte sõnumite rehvina. Raamistikest - Django ja väänatud. Kui me räägime esiosast, siis on see ühine selgroog / alajaotus / jquery kimp.

Mis puudutab arenguvahendeid, järgime Warguming me positsiooni "Mis on arendaja jaoks parem". Keegi kasutab kaasaegset IDE-d, keegi tunneb end mugavamalt VIM-i või Emacsiga. See ei ole oluline, milliste tööriistade abil meie tööd teostame, kui tulemus on mugavad ja kasulikud teenused, mis teevad iga päev iga päev miljoneid mängijaid iga päev.

3. Meil \u200b\u200bei ole hariduse taseme ametlikke nõudeid. Profiil (tehniline, matemaatiline) Haridus on pluss, kuna see näitab kandidaadi põhilise teoreetilise ettevalmistuse olemasolu, kuid tööle vastuvõtmisel ei ole tõenäoliselt otsustav tegur. Me mõistame, et teadmised matemaatika, OOP, klassikaliste algoritme ja andmestruktuuride valdkonnas on võimalik saada sõltumatult. Eelistatakse kogemustega kandidaatidele. Ka kandidaadi võime lahendada inseneriülesandeid ja teha insenerilahendusi, mitte ainult koodi kirjutamist.

4. Nõuded töökogemusele sõltuvad vabadest ametikohtadest. Kui kutsume noort spetsialisti kutsuma, vaatame kõigepealt oma koduprojekte ja ülikooli arenguid. Me peame olema kindel, et inimene tuli meile mitte juhuslikult, see oli teadlik valik, mida saab kinnitada vähemalt väikeste, kuid lõpetatud projektide tegelike näidete abil. Kui tegemist on kogenud spetsialisti - nõuded on täpsem. Oleme oluline kogeda mitmes valdkonnas: andmebaasid, Linux, veebiserver (Apache, Nginx), teadmised ja arusaam vahemälu süsteemide (membrached), sõnumside süsteemide (Rabbitmq) ja kogemusi raamistiku (Django, väänatud). Kogemused suure koormuse projektide optimeerimisel on väga kasulik ja võimaldab teil kiiresti liituda arenguprotsessiga ja töötada maksimaalse efektiivsusega enda ja meeskonna tõhususega. Juhtivate ekspertide ja ekspertide jaoks on olulised lisaks ülaltoodule lisaks ülaltoodud tehnilisele horisondile ja kogemustele mitmesuguste tehnoloogiliste virnadega.

5. Veebi infrastruktuuri toetamine tohutu hulga Wargumising.Net Universe mängijate jaoks tähendab võime töötada kõrgete koormustega ja panna rakendusarhitektuuris võime tegutseda suur kogus Taotlused.

Lisaks valmisolekule valmisolekule on oluline meeles pidada ohutust. Seetõttu on WaarGamingi veebiarendaja kohustatud teadma suurte ohtude vastu võitlemise mehhanisme ja selle koodeksi usaldusväärsuse tagamiseks.

Valmis Igor Stromli

Superjob.ru portaali uurimiskeskus, eriti süsteemi administraatori jaoks, õppis tööandjate pakkumisi. Backend-Web arendaja positsiooniga ei ole erinõuded veel määratletud, need on peamiselt sarnased asjaoluga, et need on programmeerijatele esitatud.

Java programmeerija

See
Telekommunikatsioon
Tööstus
Tootmine
Hoone
Kinnisvara haldamine
Teenused B2V. Müük B2B Müük 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
Vrd. 125 000 110 000 100 000 115 000 115 000 110 000
100 000 88 000 80 000 92 000 90 000 90 000

Odd palgaliinid - keskel MSK, isegi - Peterburi

Palgavahemik Professionaalsete oskuste nõuded ja soovid
Vahemik I.
  • Mittetäielik kõrgharidus (tehniline / it)
  • Suurepärane teadmiste HTML, CSS, Java, XML
  • Teadmised objektorienteeritud programmitöö põhimõtete kohta
  • Teadmised andmebaasi arendamise teoreetilistest alustest
  • Teadmised inglise keele lugemise tehnilise dokumentatsiooni tasemel
  • Java programmeerimise kogemus kuue kuu jooksul
Vahemikus II.
  • Kogemused veebiserverite ja rakenduste serveritega
  • Java programmeerimiskogemus 1 aasta pärast
Vahemik III
  • Kõrgharidus (tehniline / it)
  • Teadmiste disaini mallid Java ja J2EE
  • Kogemused spetsiaalsete tööriistade kasutamisel (hibernate, kevadel, struts jne)
  • Kogemused arendusmeeskonnas
  • Kogemused versioonide juhtimissüsteemidega
  • Kogemused DBMS-iga (pr SQL Server või Oracle)
  • Java programmeerimise kogemus kahest aastast
Vahemik IV.
  • Kvalifitseeruvate sertifikaatide olemasolu
  • Kogemused disain infosüsteemid Projekti dokumentatsiooni ettevalmistamine
  • Kogemused integratsioonilahendustega (IBM WebSphere, Oracle Fusion Middleware)
  • Kogemused mitmetasandiliste rakenduste arendamisel
  • Java programmeerimise kogemus kolmest aastast
Võimalikud soovid:
  • inglise keele oskus kõnealusel või vabal tasemel
  • oskused Manual Arendaja Group

Valery Chernetova valmistati superjob analüütik Leader


Kontaktis

  • Üleandmine

See nimekiri ilmus isikliku memo teemadel, mida ma arutasin kolleegide ja sõpradega ja kus ma tahtsin mõista sügavamat ...

Ma ei ole suur väljavalitu küsida tehnilisi küsimusi intervjuud: minu jaoks on parem istuda nii palju kandidaat (või kandidaat) klaviatuuril üle mõned tegelikud kood, tõeline probleem - ja terve päev kaasata Paar programmeerimine, see on soovitav vaheldumisi ülejäänud meeskonnaga. Aga ma usun, et mõned tehnilised küsimused võivad olla hea lähtepunktiks põneva ja meeldiva vestluse alguseks ning võimaldab üksteise sügavamalt.

Sellesse hoidlas kogutakse mitmeid serveriosaga seotud küsimusi, mida saab kasutada potentsiaalsete kandidaatide kontrollimisel. Mingil juhul ei soovitata küsida kõik Küsimused ühele kandidaadile: See võtab aega mitu tundi ja ei ole mõtet üldse, sest nad hõlmavad liiga laia valikut teemasid. Keegi ei saa kõike teada. Vali kõige asjakohasem osa ja kõige huvitavamad küsimused vestluse laiendamiseks.

Hoiatus

Enamik küsimusi on avatud, mõned lihtsalt ei ole Õigus või vale Vastus. Vastupidi, nad peaksid olema vestluse lähtepunktiks, mis idee peaks paremini näitama inimeste võimeid kui lihtne vastus. Isiklikult eelistan üldiselt küsimusi, vastused, millele ma ise ei tea.

Jällegi rõhutan, et küsimusi küsida on vaevalt piisav. Intervjuu lõpus veeta Pikk Seanss paar programmeerimine: see on üks parem valikEt mõista stiili ja läheneda üksteisele - ja annavad mõistma kandidaate, mida oodata tulevase töö eest.

See projekt loodi vastavalt @darcyClarke'ilt "Küsimuste intervjuu küsimused intervjuu jaoks.

Kus on vastused?

Varem või hiljem täiendan artiklit asjakohaste vastustega. Oleksin tänulik abi eest!

Küsimused disainilahenduste kohta:

Miks globaalsed objektid ja staatika on kurja? Kas saate näidis koodi näidata?

Räägi meile kontrolli inversioonist ja sellest, kuidas see organisatsiooni koodi parandab.

Õlarite seadus (minimaalse teadlikkuse põhimõte) sätestab, et iga programmi moodul peab olema piiratud teadmised teiste moodulite kohta ja peavad suhelda ainult otseste "sõpradega" (mõnikord see on sõnastatud "ei räägi võõrastega"). Kas saate kirjutada selle põhimõtet rikkuva koodi? Miks on tema halb organisatsioon ja kuidas seda parandada?

Active-rekord on disainilahendus, mis soodustab funktsioonide rakendamist iseenesest, näiteks sisestamiseks, uuendamiseks ja kustutamiseks ning omadustest, mis sobivad andmebaasi põhilise tabeli veergudele. Kas sa arvad ja kogemusi, millised piirangud ja lõkse on see mall?

Data-Mapter on disainimall, mis soodustab muundurite kihi (kaarte) liikuvaid andmeid objektide ja andmebaasi vahel, säilitades samal ajal oma sõltumatuse üksteisest ja muundurist iseseisvusest. Erinevalt sellest mallist hõlmavad aktiivsemaad objektid otseselt toiminguid, et säästa andmebaasi ja omadusi, mis vastavad andmebaasi põhialadele. Kas teil on nende mallide arvamus? Millistel juhtudel eelistate ühte neist teisele?

Miks mainida null sageli "miljardi dollari viga"? Tahad arutada tehnikaid selle vältimiseks, näiteks GOF-raamatus esitatud Null objekti malli või valikuliste tüüpidena?

Miks on kompositsioon sageli parem kui pärand?

Mis on ohutuse tase (korruptsioonivastane kiht)?

Singleton on disaini mall, mis loob ühe objekti klassi ühe klassi. Kirjutage õige (lõng-ohutu singleton) ei ole nii lihtne. Proovige?

Võimalus muuta rakendamist mõjutamata kliendi osa nimetatakse abstraktne andmeedastuse (andmete abstraktsiooni). Kirjutage näide, mis rikub seda vara, siis parandage see.

Kirjutage koodi väljavõte, mis rikub don "t korrake ennast (kuiv). Seejärel parandage see.

Kuidas te põrgu sõltuvusega tegelete (sõltuvuse põrgu)?

Miks on goto - kas see on kurja?

Usaldusväärsuse põhimõte on üldreegel organisatsiooni kood, mis soovitab "Olles konservatiivne on, et sa saadad ja liberaalne, mida te nõustute". Seda sõnastatakse sageli nagu "Tolerantne lugeja ja ettevaatlik kirjanik". Tahad arutada selle põhimõtte tähendust?

Arutelu eraldamine - eraldamise põhimõte arvutiprogramm Üksikute valdkondade puhul vastutab igaüks selle ülesande eest. Kohustuste eraldamiseks on palju erinevaid mehhanisme (objektide, funktsioonide, moodulite või mallide kasutamine, näiteks MVC jms). Tahad seda teemat arutada?

Küsimused koodi korraldamise kohta (koodi disain):

Sageli öeldakse, et üks tähtsamaid ülesanded objekti orienteeritud disain (ja koodi korraldamine tervikuna) on tugev sidur ja nõrgaks. Mida see tähendab? Miks nad nii tähtsad ja kuidas neid saavutada?

Miks enamikus keeltes algab massiivi indeks nullist?

Kuidas testid ja TDD mõjutavad organisatsiooni koodi?

Kirjutage koodi fragment, mis rikub põhimõtet don "t korrata ennast (kuiv). Selgitage, miks tal on halb organisatsioon ja õige.

Mis vahe on siduri ja seotuse vahel?

Mis on refactor?

Kas kood on kommentaarid on kasulikud? Keegi ütleb, et neid tuleks võimaluse korral vältida ja ideaaljuhul neid ei vaja üldse. Kas sa nõustud?

Mis vahe on organisatsiooni koodi ja arhitektuuri vahel?

Miks on TDD-testid enne koodi kirjutatud?

C ++ toetab mitme pärandi ja Java võimaldab klassi rakendada mitu liideseid. Milline mõju teeb nende vahendite kasutamist ortogonaalsusele? Kas mitme pärandi ja mitme liidese kasutamise vahel on erinevusi? Kas delegatsiooni ja pärandi kasutamise vahel on erinevus? [See on küsimus raamatu "Pragmaatiline programmeerija" Andrew Khanta ja Defteda Thomas]

Salvestatud protseduuride loogika plusse ja miinuseid säilitamise.

Teie arvates, miks objektorienteeritud organisatsioon domineerib nii palju aastaid turul?

Kui teie koodil on halb organisatsioon, siis kuidas sa seda aru saavad?

Küsimused programmeerimiskeeles:

Ütle O. kolm peamist Teie lemmikprogrammi keele puudused.

Miks suurendab huvi funktsionaalse programmeerimise vastu?

Mis on sulgemine ja mis see on kasulik? Mis on ühised sulgemise ja klassidega?

Millal on mugav geneeriliste ravimite kasutamise korral?

Mis on kõrge tellimuse funktsioonid? Mida nad vajavad? Kirjutage selline funktsioon igas keeles.

Kirjutage tsükkel, seejärel teisendage see rekursiivseks funktsiooniks, kasutades ainult muutumatuid struktuure (s.o muutujateta). Kirjelda seda.

Mis see tähendab, kui keel peab funktsioone esimese klassi objektidena?

Näita näidet, kui anonüümse funktsioon võib olla kasulik.

Miks vajate nimeruumi? Tulla alternatiiviga.

Räägi meile Java ja C # ühilduvuse kohta (või valige kaks muud suvalist keelt).

Miks paljud arendajad ei meeldi Javale?

Mis teeb hea keele hea ja halb keel - halb?

Kirjutage kaks funktsiooni, üks viitamatul läbipaistev ja muu viitamatu läbipaistmatu. Arutagem neid.

Mis on virna ja mis on hunnik? Mis on virna ülevool?

Miks on oluline, et funktsioonid on keele esimesed klassi objektid?

Mõnes keeles, eriti funktsionaalse lähenemisviisiga, on lubatud tehnika, mida nimetatakse võrdluseks prooviga. Kas ta tunneb sind? Kuidas proovi kaardistamine erineda lüliti disainist?

Miks mõnes programmeerimiskeele erandeid ei rakendata? Millised on selle lähenemisviisi eelised ja puudused?

Kui kass on loom, siis kas see on tõsi, et Takecare - See on Takecare. ?

Miks Java, C # ja paljud teised keeled disainerid ei kuulu liidese osa?

Viimastel aastatel on Node.js ümber palju müra. Milline on teie arvamus basendi keele kasutamise kohta, mis oli algselt loodud brauseris tööle?

Kujutage ette, et teil on ajamasin ja on võimalus naasta teatud ajahetkel Java ajaloos (C #, Python, Go või midagi muud) ja rääkige mõne JDK loojaga. Mida sa püüad neid veenda? Kustuta kontrollitud erandid? Lisage allkirjastamata primitiivsed tüübid? Mitu pärandit?

Veebiarenduse küsimused:

Miks töödeldakse native küpsiseid ja kolmanda osapoole küpsiseid nii erinevalt?

Kuidas hallata veebiteenuste API versioonide numeratsiooni?

Kas taustate vaatenurgast on ühe lehekülje rakenduste kasutuselevõtu puudused või takistused?

Miks me tavaliselt nii palju püüdme nii palju, et teenus oli kodakondsuseta? Mis on kodakondsuseta koodis nii hea? Miks ja kui seisund ladustamine (riigifunktsioon) on halb?

Puhka ja seebi: Millistes olukordades valite ühe nende lähenemisviiside ja millises teistes?

Veebiarenduses on mudelivaates kontroller ja mudeli vaade-vaatemudeli lähenemisviis suures osas sarnased nii Besendis kui ka ees. Mida nad ette kujutavad ja miks neid kasutada?

Andmebaasi küsimused:

Kuidas postitate taotluse ühest andmebaasist teise näiteks MySQL-st PostgreSQL-is? Kui teil on hallata sellist projekti, milliseid probleeme ootate?

Miks andmebaasi pidada null sellise erijuhtumi? Näiteks Miks SQL-i valimisel * tabelist, kus väli \u003d null ei anna salvestamist null valdkonnas?

Hape on aatomi, järjepidevuse, isoleerimise, vastupidavuse akronüüm (aatomi, järjepidevuse, isolatsiooni, stabiilsuse). Enamik andmebaasi mootoreid tagavad need neli omadust tehingute tegemiseks andmebaasis. Mida sa sellest teate? Tahad sulle rohkem öelda?

Kuidas tegeleksite DB skeemi üleandmisega, see tähendab, kuidas automatiseerida DB skeemi muudatusi, kuna rakendus on välja töötatud versioonist versioonist?

Kuidas rakendada laisk koormust? Millal see on kasulik? Mis on veealused kivid?

Niinimetatud "N + 1 probleem" toimub siis, kui kood peab laadima lapse elemente "Vanemate järeltulijatest" Lazy Boot'iga ORM-i suhetest ja seetõttu saatke järelduse taotlus ja seejärel iga tütarettevõtja taotlus . Kuidas probleemi lahendada?

Kuidas leida taotluses kõige kulude taotlusi?

Kas teie arvates on andmebaasi normaliseerimiseks alati vajalik? Millal on soovitatav kasutada denormaliseeritud andmebaasi?

Üks pideva integratsiooni meetodeid nimetatakse siniseks roheliseks võlaks. See seisneb kahe tööstusliku operatsiooni keskkonnas, nii palju kui võimalik - ja paigaldatakse ühes neist teise ja seejärel turvalise liikluse vahetamise ühest keskkonnast teise pärast testimist mugavas seadistuses. See meetod on keeruline, kui võlg hõlmab andmebaasi struktuuri või sisu muutmist. Tahaksin seda teemat teiega arutada.

Küsimused NOSQL kohta:

Mis on lõppkokkuvõttes järjepidevus (võimaliku järjepidevuse)?

Aga ÜPP teoreem, näiteid CP, AP ja CA süsteemide.

Kuidas selgitate hiljuti Nosqli huvi splash?

Kuidas Nosql lahendab mastaapsuse probleemi?

Millisel juhul eelistate dokumentide orienteeritud DBMSi nagu Mongodb asemel relatsiooniliste DBMS, nagu MySQL või PostgreSQL?

Küsimused koodi versiooni kohta:

Miks on harude rakendamine elavhõbedas või git lihtsam kui SVN-is?

Millised on jaotatud versioonide juhtimissüsteemide plusse ja miinuseid, näiteks git, võrreldes tsentraliseeritud VC-dega nagu SVN?

Kas te saate kirjeldada töövoo GitHub voolu ja gitflow?

Mis on Rebase (Liiguta)?

Miks on ühinemine lihtsam harjutada elavhõbedas või git kui SVN ja CVS?

Küsimused paralleelsuse kohta:

Miks vajate paralleelsust? Seletama.

Miks on nii raske testida mitme keermestatud / paralleelset koodi?

Mis on rassi olek? Kirjutage näide suvalisest keelest.

Mis on vastastikune blokeerimine? Kas saate kirjutada mõned kood, mis kannatab vastastikuse lukud?

Mis on ressurss nälg (protsess nälg)? Vajadusel kaalume selle määratlust.

Mis on mitte-blokeeriva sünkroniseerimise algoritm ootusteta (oodata-vaba algoritm)?

Küsimused hajutatud süsteemide kohta:

Kuidas jagatud süsteemi testida?

Millisel juhul rakendate asünkroonset suhtlemist kahe süsteemi vahel?

Millised on peamised kõrvalprobleemide peamised veealused kivid?

Kui loote jaotunud süsteemi mastaapsuse ja usaldusväärsuse jaoks, siis millised võivad tekkida erinevad probleemid suletud ja turvalises võrgukeskkonnas - ja geograafiliselt hajutatud ja avalikus süsteemis?

Kuidas tagada veebirakenduse rikketolerantsi? Töölaua rakendus?

Kuidas tulla toime jaotatud süsteemide ebaõnnestumisega?

Räägime erinevatest lähenemisviisidest töövõime taastamiseks (leppimise) pärast võrguühenduse rikkumist.

Millised on eksiarvamused jaotatud arvutuste kohta?

Kui rakendate taotlust / vastust ja avaldate / tellite?

Oletame, et süsteem, millega te töötate, ei toeta tehinguid. Kuidas te seda nullist rakendaksite?

Küsimused elutsükli tarkvara ja käsitsi meeskonna kohta:

Mis on paindlikkus (agility)?

Kuidas te töötate pärandi koodiga?

Ütle, ma olen teie projektijuht ja mitte programmeerimise ekspert. Püüdke mulle seletada, mis on pärandi kood ja miks teil on vaja koodi kvaliteedi eest hoolitseda.

Olen teie ettevõtte tegevdirektor. Selgitage mulle Kanbani ja veenda teid investeerida.

Mis on peamine erinevus paindliku arengu metoodika ja kaskaadimudeli vahel?

Olles grupi juht, kuidas te lahendate liiga palju kohtumiste probleemi?

Kuidas toime tulla projektiga, mis viiakse läbi tugeva viivitusega?

"Inimesed ja suhtlemine on tähtsamad kui protsessid ja vahendid" ja "Koostöö kliendiga on tähtsam kui lepingu tingimuste ühtlustamine" on pooled Agilenäitusel kuulutatud väärtused. Arutagem neid.

Räägi meile, milliseid otsuseid te võtate, kui teie ettevõtte tehniline direktor oleks.

Kas programmide juhtidest on kasu?

Tee töökava, kasutades paindlikku ajakava (mis on ilma paigaldatud tööajata) ja intresside poliitika "võtta, kui vajate".

Kuidas sa tegeleda väga suure õpetamisega ja veenda arendajad mitte lahkuma meeskonnast ilma palka suurendamata? Mis hea saab ettevõte teha need jääda?

Millised on kolm peamist kvaliteeti teie kolleegide puhul, välja arvatud programmitöö?

Millised kolm peamist asja programmeerimise kohta vajavad oma arvamuses humanitaarteadusi?

Kujutage ette, et ettevõte annab teile ühe kuu ja eelarve, et parandada teie ja teie kolleegide igapäevaelu kvaliteeti. Mida sa teeksid?

Küsimused loogika ja algoritmide kohta:

Kirjutage FIFO järjekorda, kasutades ainult Lifo korstnad. Seejärel looge Lifo stack, kasutades ainult FIFO järjekorda.

Kirjutage puhvri ülevoolu koodi fragment.

Kirjutage lõppakumise faktoriaal.

Igas keeles kirjutage vastus, mis kuvab kohe sisestatud väärtused. Parandage seda RPN-kalkulaatorile.

Kuidas te kujundasite defragmentimise kasulikkust?

Kirjutage programm, mis loob juhusliku labürindi.

Kirjutage näide koodi, mis loob mälu lekke.

Loo ainulaadsete juhuslike numbrite järjestus.

Kirjutage näide lihtsa prügi kogumissüsteemist.

Kirjutage igas keeles lihtne sõnumite maakler.

Kirjutage väga lihtne veebiserver. Tee tulevikus rakendada funktsioone, mida tuleb rakendada.

Kuidas Sortida 10 GB faili? Kuidas te tulete 10 TB-faili muudatuste tegemiseks?

Kuidas leida Duplicate Files programmi läbi?

Küsimused arhitektuuri kohta:

Kui vahemälu ei ole vaja ja isegi kahjustab?

Miks praktiseeritud arhitektuur parandab mastaapsust?

Mis teeb koodi loetavaks?

Mis vahe on arendamise disain (tekkiv disain) ja evolutsioonilise arhitektuuri vahel?

Horisontaalne ja vertikaalne skaleerimine: Mida nad erinevad? Millal rakendada ühte asja ja millal on teine?

Kuidas töötada kontrolli katkestamise ebaõnnestumises (failover) ja kasutaja istungid?

Mis on CQRS (käsk päringu vastutuse segregatsioon)? Kuidas erineb see käsupraktika eraldamise vana põhimõttest?

Mis on kolmetasandi arhitektuur?

Kuidas te kujundate tarkvarasüsteemi mastaapsusega?

Milliseid strateegiaid C10K probleemi lahendamiseks?

Kuidas kujundada detsentraliseeritud (st ilma keskserverita) P2P-süsteemi?

Miks ei ole CGI skaleeritud?

Kuidas kaitsta oma süsteeme tarnijaga sidumise eest (müüja lukustus)?

Millised on disaini malli "Kirjastaja-abonendi" puudused?

Mis juhtus 80ndatest protsessorite väljatöötamisel, miks see on programmeerimise jaoks oluline?

Millises etapis elutsükli peaks kaaluma jõudlust ja kuidas?

Kuidas probleemi keeldumise ebaõnnestumise ei pruugi ilmneda, sest Dos rünnak, kuid kuna halb disain või tõttu probleemi arhitektuuri?

Mis on seos tulemuslikkuse ja mastaapsuse vahel?

Millal on aktsepteeritav tugeva kaasamise kasutamine (tihe haakeseadis)?

Millised omadused peaksid süsteemi pilve minema?

Kas arhitektide maa disaini ühtsus? Lihtsalt paneb: Kas hea disain tuleneb kõigi arendajate kollektiivsetest jõupingutustest?

Mis vahe on disaini, arhitektuuri, funktsionaalsuse ja esteetiliste omaduste vahe? Arutagem seda.

Küsimused teenuste orienteeritud arhitektuuri ja mikroskriendi kohta:

Miks SOA pikad tehinguid ei soovitata ja selle asemel kutsutakse neid üles kasutama saaga?

Mis vahe on SOA ja mikroserveeri vahel?

Räägime veebiteenuste versioonide numeratsioonist, versiooni ühilduvusest ja kriitiliste muudatustest, mis katkestavad tagasi ühilduvuse.

Mis vahe on tehingu ja kompenseerimise operatsiooni SAGA, SOA?

Millal Microservice on liiga mikro?

Millised on mikroservice arhitektuuri plusse ja miinuseid?

Ohutusküsimused:

Kuidas kirjutada turvalise koodi? Kas teie arvates on see arendaja vastutus või see peaks olema ettevõtte eraldi spetsialist? Ja miks?

Miks sa ütled, et te ei tohiks proovida oma krüptograafia reegleid leiutada või kujundada?

Mis on kahefaktori autentimine? Kuidas rakendate seda olemasolevas veebirakenduses?

Kui te ei hakka logisid hoolikalt käidelda, on alati oht, et seal on konfidentsiaalne teave, sealhulgas paroolid. Kuidas vältida sellist probleemi?

Kirjutage koodi väljavõte SQL-i süstimisele ja parandage see.

Kuidas leida SQL-süstimise haavatavust staatilise koodi analüüsi abil? Ma ei oota, et kirjutate valmis algoritmi, sest see on liiga suur, kuid arutame üldise lähenemisviisi.

Mida sa tead saidi skriptimise kohta? Kui te ei mäleta, vaatame tema kirjeldust internetis ja rääkige sellest.

Mida sa tead rist-istud päringu võlts? Kui te ei mäleta, vaatame tema kirjeldust internetis ja rääkige sellest.

Kuidas HTTPS töötab?

Mis on rünnak "mees keskel"? Ja miks HTTPS aitab selle eest kaitsta?

Kuidas saab ära hoida kasutaja seansi varguse? Tõenäoliselt mäletate, milline vargus on seanss või küpsised, vastasel juhul loeme Wikipedia lehele koos selle teema juures.

Üldised küsimused:

Miks on oluline programmeerimine töötada? Millal ma peaksin kasutama funktsionaalse programmeerimise keelt?

Kuidas ettevõtted Microsoft, Google, Opera ja Mozilla teenivad nende brauseritele?

Miks avab TCP-pesa avamine suured õhuliinid?

Mis on oluline kasutada kapseldamise?

Mis on reaalajas süsteem ja kuidas see tavalisest süsteemist erineb?

Mis on seos reaalajas programmeerimiskeelte ja mälu jaotamise vahel vaia?

Muutumise muutmine on objekti loomise ajal ühiste väärtuste seadistamise praktika ja need väärtused ei muutunud kunagi kunagi muutunud. Kuidas aitab Imuletus ohutum koodi kirjutada?

Muutuvate ja muutuvate väärtuste plusse ja miinuseid.

Mis on objekti suhteline lõhe (objekti-relatsiooniline impedantsi mittevastavus)?

Milliseid põhimõtteid vahemälu suurust määrata?

Mis vahe on TCP ja HTTP vahel?

Millised on kliendi poolel toimuva valiku kompromisse ja serveri poolel?

Kuidas arendada usaldusväärset kommunikatsiooniprotokolli, mis põhineb ebausaldusväärsest?

Nulli pointeri Tony Hoari leiutaja ütles "Ma võin seda nimetada oma miljardi dollari suurusega," sest see meelitab "lugematuid vigu, haavatavust ja süsteemseid tõrkeid, mis ilmselt põhjustasid viimase neljakümne aasta jooksul kannatusi ja kahjustada miljardit dollarit. . " Oletame, et soovite kõrvaldada võimaluse kasutada oma programmeerimiskeeles nullpunkte: kuidas te sellist ülesannet otsustada? Millised tagajärjed sellel on?

Avatud küsimused:

Miks inimesed muutuvad?

Selgitage oma vanaemaga lõimede kontseptsiooni.

Arendajana soovid ja rakendate innovatsiooni ja prognoositavat innovatsiooni. Kuidas saavad need kaks eesmärki sama strateegia raames üksteisega koos eksisteerida?

Mis teeb hea koodi hea?

Selgitage, kuidas voogesituse ringhääling toimub ja kuidas seda rakendate.

Oletame, et teie ettevõte annab teile ühe nädala, et parandada elu teie ja teie kolleegide elu: kuidas seda nädalat kasutate?

Mida sa viimasel nädalal teada said?

Iga disainis on esteetiline element. Küsimus on selles, et esteetika on sinu sõber või vaenlane?

Nimetage viimased viis raamatut, mida lugesite.

Kuidas rakendada pidevat kohaletoimetamise lähenemisviisi suure eduka ettevõttes, mille üleminek kaskaadi mudelist pideva tarne lähenemisviisile ei ole selle suuruse ja äri keerukuse tõttu triviaalne?

Millal on mõtet ratast reinvesteerida?

Räägime ANEW rataste leiutisest, kellegi teise arendamise ja praktika sündroom tagasilükkamine ettevõtte või oma teenuste ja toodete arendajate meeskonna abil (söömine).

Mida te praeguse töövoo puhul esimest korda automatiseerida?

Millised on kirjaliku raskused tarkvara? Mis raskendab tarkvara toetamist?

Kas soovite töötada täiesti uute projektide (Greenfield) või jätkake praegust (Brownfield)? Miks?

Mis teeb operatsioonisüsteemi, kui konkreetse koodi täitmiseks ei ole käsku ja see tundub vaba? Tahaksin alustada vestlust katkestuste, deemonite, taustateenused, uuringud, sündmuste töötlemine jne

Selgitage viisaastase lapse DBMS-i Unicode'i või tehinguid.

Anna argumendid monoliitilise arhitektuuri kasuks.

Mida tähendab olla professionaalne arendaja?

Programmeerimine on kunst, käsitöö või insener? Teie arvamus.

Miks on korporatsioonid halvemad uuenduste kasutusele kui käivitamise?

Teie viimane saavutus olete uhke?

Küsimused koodifragmentidega:

Mis on selle funktsiooni täitmise tulemus JavaScript?

Funktsioon HookUrevents () (for (var i \u003d 0; I< 3; i++) { document.getElementById("button" + i) .addEventListener("click", function() { alert(i); }); } }
Mis on tüüpide kustutamine, mis annavad sellise Java-koodi ja miks?

Arraylist. Li \u003d uus arraylist (); Arraylist. LF \u003d New Arraylist (); kui (li.getclass () \u003d\u003d lf.getclass ()) // hindab tõelisele süsteemile.Out.println ("võrdne");
Kas te saate tuvastada mälu lekke?

Avaliku klassi virna (erasektori objekti elemendid; eraviisiline int suurus \u003d 0; privaatne staatiline lõplik int vaikimisi_initial_cappity \u003d 16; avalik stack () (elemendid \u003d uus objekt) Avalik objekt Pop () (kui (suurus \u003d\u003d 0) visata uus tühjastackexception () kasvada. * / Private Void ObjectCampity () (IF (elemendid.Plength \u003d\u003d suurus) elemendid \u003d array.copyof (elemendid, 2 * suurus + 1);))
Kas saate vabaneda lüliti lüliti ja kirjutada rohkem objektorienteeritud koodi?

Avaliku klassi vormindamine (erateenuse osutamine; avalik vormiriietus (teenus;) Avalik string Dothejob (string Response \u003d Service.askForpermion () : Tagasi string.format ("% s% s", theinput, theinput); vaikimisi: tagastamise null;))))
Kas te saate vabaneda sellest, kas operaatorid ja kirjutada rohkem objektorienteeritud koodi?

Avaliku klassi TheService (Private Final FileHandler flandland FILEHANDLER.GETXMLFILEFROMFILENAMENAME (fail); lõplik string-executionid \u003d filehandler.getseextionidfromfilename (fail); kui ((expectionid \u003d\u003d ") ); kui (TENDEFOO \u003d\u003d NULL) (tagastamine "";) Tagasi TagasiEelusfoo.Dothat (fail);))
Kuidas teha sellise koodi refaktsioon?

Funktsiooni () () (hressk-viga \u003d S_OK; (Viga \u003d operatsiooni3Failed;)) muu (viga \u003d operatsiooni2Failed;)) muu (viga \u003d operatsiooni1Failed;) tagastamise viga;)

Back-end arendaja (inglise keeles. Back-end (tagurpidi) arendaja) See on spetsialist, kes tegeleb veebirakenduse tarkvara-haldusliku osaga, sisemise süsteemi sisu, serveritehnoloogia - andmebaasi, arhitektuuri, tarkvara loogika. Elukutse sobib neile, kes on huvitatud arvutiteadusest (vt kutseala valikuvõimalus kooli teemade vastu).

Bec-end arendaja on nähtamatu eesmine võitleja.

Kaasaegsed saidid, veebirakendused ja mängud on muutunud väga keerukaks, nii et nende spetsialistide meeskond töötavad nendega. Täieliku, ilusate, funktsionaalsete ja kasutajasõbralike veebisaitide loomiseks on vaja esikülje ja back-end arendajate järjepidevat tööd. See on kiire töö veebisaidi või veebirakenduse loomiseks ja selle teenuse jaoks lihtsamaks.

Rääkides kujutisväärselt, seljatoe areng on automootori loomine, samas kui esiotsa arendamine on masina juhtimise disaini ja funktsioonide loomine. Tagasi lõpp-arendaja töötab tihedas seos esiosa arendajaga, kes saavad sellest kasutajaandmeid ja sellest tulenevat tagastamist.

Põhilised tööriistad Tagasi End Developer - Server programmeerimiskeeled: näiteks PHP, Python, Ruby, Java, Perl, Node JS (tarkvaraplatvorm). Lisaks sõlme JS-le on kasulik õppida väljendada (raamatukogu, et suhelda Sõlme JS-platvormi serveriga) ja Mongo DB-ga (teabe saamise ja salvestamise andmebaas).

Kui täiendavad vahendid Sümmend, Codeigniter, Yii, Zend raamistik, Kohana jne kasutatakse andmete salvestamiseks MySQL / SQLite'i abil.

Kutsealal

Kaasaegsed arendajad mitte ainult kirjutada kood programmide jaoks. Nii töötas programmeerijad 10-15 aastat tagasi. Praegu on selline mõiste sobimatu, sest tööl on sageli võimalik teha ilma koodi kirjutamiseta, lihtsalt valmisosade ühendamine üheks konfiguratsiooniks. Ja programmeerijad nimetatakse nüüd "arendajaks" või "inseneriks".

IT-sfääri arendamisega muutuvad projektid keerukamaks ja on disainer, mida saab koguda valmis lahenduste abil (raamistikud) peaaegu iga ülesannete jaoks.

Seega näeb välja arendaja lõpptulemus:

  • teenuse arhitektuuri kujundamine;
  • saidi tuuma loomine;
  • platvormi ja peamise funktsionaalsuse arendamine;
  • töö koodi arhitektuuriga;
  • kasutajaliidese ja ohutuse toetavate rakenduste väljatöötamine;
  • kontrolli serverite riigi (võitluse, katse ja töötaja) üle;
  • versioonide, andmebaaside, pideva integratsiooni juhtimine.

Plussid ja miinuse elukutse

Kõrge maksmine ja nõudis elukutse.

Töökoht

Saidi arendamise ettevõtted, veebirakendused, mobiilsed rakendused.

Olulised omadused

  • analüütiline meeles
  • loogiline mõtlemine
  • algatus
  • võime planeerida ja järgida plaane
  • meeskonnatöö oskused
  • mõte paindlikkus
  • vastutus, sihikindlus, otstarbekus
  • keskendu tulemusele ja kvaliteedile
  • soov pidevalt uurida uut ja selle rakendust oma töös

Professionaalsed teadmised ja oskused

Teadmised vähemalt ühe programmeerimiskeel: GO, C, C ++, Perl, Python, PHP, Ruby, Java.

  • võime kirjutada kiiret, ilusat ja korrektset koodi;
  • teadmised populaarsete Web FreigTors (Django, kolb, kevadel);
  • oskuste kujundamise andmebaasid ja optimeerige taotlusi;
  • teadmised kaasaegse programmeerimise paradigmade kohta;
  • teadmised disainimustritest;
  • veebiteenuste arusaamine, liidesed;
  • inglise keele lugemiseks tehnilist dokumentatsiooni.

Kust õppida tagasi-ots arendaja

Rongid (isiklikult, Moskvas). Rahvusvaheline haridusasutus spetsialiseerunud arvuti hariduse. Töötamine alates 1999. aastast. 42 filiaali 16 riigis maailmas. Suurim volitatud koolituskeskus Microsoft, Cisco, Autodesk. Õpilased saavad rahvusvahelisi sertifikaate ja rahvusvahelist diplomit. Peamine eesmärk on iga lõpetaja tööhõive.

Kõrgharidus:

Selleks, et saada tõeliseks professionaaliks back-end arengu valdkonnas, on vaja omada põhiprofiilist haridust, mida saab saada järgmistes ülikoolides:

Kuid on oluline meeles pidada, et ülikooli põhiharidus paneb fondi haridusele, kuid mitte praeguste teadmiste jaoks piisav kaasaegsed tehnoloogiad. Seetõttu on eneseteadvus selles valdkonnas oluline, et kursis kõigi uute tehnoloogiate ja tööriistade vastu. Kuid omakorda mõjutab profiilihariduse puudumine sel hetkel, kui midagi lõpetab tööle ja isik ei saa aru - mis põhjusel. Põhiharidusega spetsialist, muidugi ei tea kõik, vaid tal on suur oskus - kust leida ja kuidas vajalikke teadmisi kasutada.

Kaasaegsed tööandjad reeglina ei kehtesta ametlikke nõudeid kõrgharidus Kandidaadid kontoris. Nende jaoks on kõige olulisem kogemus, luure, motivatsioon spetsialisti.

Warry makse (mitu tagasilöögi arendaja teenib)

Palk 09/16/2019

Venemaa 40000-100000 ₽

Moskva 80000-300000 ₽

Trepid karjäär ja perspektiivid

Back-end arendaja positsioonist pärast arendaja esiosa oskuste arendamist otsese tee täieliku stack arendajale. Edasiseks majanduskasvuks on vaja pidevalt õppida uuest: uuring üksikasjalikult arendustehnoloogiate tarkvaratooted, Service Systems'i konfiguratsioon ja konfiguratsioon.

Üleminekud osakondades on mõnikord seotud erinevalt. Keegi on lihtsalt tuttav, et näha iga ettevõtte karjääri muudatusi postitamiskohtade prisma kaudu. Keegi ei pea võimalikuks muuta tegevuste ulatust, isegi kui see on praeguse kõrval. Kolmandaks oleme põhimõtteliselt kindlad, et üleminek osakonna osakonnast tähendab, et inimene võtab "kas kala, liha, ja ei suuda midagi olulist saavutada.



Samal ajal tervitavad mõned tööandjad seda igas mõttes ja kaaluma midagi väljapõlemist väljamõeldud kaitsmest - inimene muudab tähelepanu keskpunkti, muudab osakonda või osakonda, kuid ei muuda tööd ise tervikuna.


Minu nimi on Kostya ja ma töötan Qiwis peaaegu 4 aastat. Täna ma ütlen teile, kuidas edukalt lülitatakse frontend arendamise taustal.

Esiots

Qiwis alustasin 2014. aasta lõpust IOS-rakenduste arendajana töötamise ja põhimõtteliselt paar aastat tegelenud Qiwi rahakoti arendamisega. Samal ajal ei saa ma öelda, et see oli igav - ülesanded olid üsna erinevad ja sama rakenduse raames Lisaks oli Apple Watch'i taotluse loomise ajal arenenud kogemus. Siis ta laiendas vähe fookust ja töötas isegi iOS-i rakenduse üle "südametunnistuse" jaoks.



Ja siis hakkasin aeglaselt tagasi liikuma. Paindliku metoodika poolest on see isegi mugav - i sisse lülitada, esimeses sprintis võiks teha mingi Bachenda ülesandeid ja teisel teha API integratsiooni, mida ma kirjutasin.


Aga taustand, sel ajal oli liiga vähe arendajad ja liiga kopsakas backot, nii et lõpuks ma ikkagi tagasi taustapunkti täielikult. Mida ma praegu teen, on backanderi klassikalised ülesanded - kirjutan meie mikroservuse koodi, Chiny Bugi, ma tegelen refaktoriga, ma mõistan Kotlini. On võimalus töötada firma värske toote - Qiwi investor.


Muide, ma ei saa öelda, et nende kahe aasta jooksul selgus kuidagi ma kõndisin ees, ma mõistsin selgelt, et seal oli ka seal, kus arendada. Näiteks ma näen, mis toimub praegu mobiilse arengu meeskonnas ja ma saan aru, et ma seal jääksin, ma jätkaksin poisid jätkame edasi kasvama.


Seega oli siin win-win olukord - tahtsin aidata meeskonda ja toodet (arengu eelis oli väga mitte taustate suunas) ja saada uusi teadmisi. Timlids mõistsid kõike ja lubage mul minna ilma kaebusteta ja ka toodeteta.


Lisaks teadmisi tahtsin mitmekesistada ei ole ühendatud ühe platvormi (Android Mulle ei meeldi natuke, kuid Apple annab endiselt positsiooni). Noh, seal oli soov, mida oleks võimalik võtta ja teha endale rakenduse ise (ja ees ja toetus), kui mingi lahe idee äkki ilmuvad. Seni ei olnud see siiski kasulik.

Backend.


Loomulikult on esimene probleem, millega te sellise üleminekuga kokku puutute, lüngad mängus. Minu puhul olid need mõned andmebaaside töötamise mõned nüansid, kuid see aitas siin nii eneseteadvuse ja meeskonna võimalust - poisid reageerivad ja alati valmis aitama ja selgitama midagi üksikasjalikult. Qiwis, põhimõtteliselt õppimisega igas etapis, kõik on hea, kas te olete töö alguses vähemalt noorem, vähemalt see on see, kuidas otsustada ja muuta sfääri paar aastat hiljem.


Keegi ei olnud pahane, et esimest korda ma ilmselt töötanud mitte nii tõhusalt, sest palju oli vaja sisestada (kuid tipus meeskond on ikka võitnud).


Muidugi, mul oli vähe kogemusi erinevates valdkondades - mobiilimängud ja veebis, kuid see kõik oli pigem üritab tunda oma, mitte nõelata praktiline kogemus.

Pärast frontiparandi muljeid

Ei tööta UI-ga. Üleüldse. Varem ma pidin tappa aega UI vigade parandamiseks, nüüd ei ole. Sellise positsiooni miinused - lõppkasutaja ei näe konkreetselt minu töö tulemusi, sest see oli ees. Üritasin kindlaks teha, mis on raskem - toetus või eesmine ja mõistsin, et (minu jaoks isiklikult) oli raskem töötada alati mitmemerenduse ja võrgupakendiga. Ja siin ei ole enam nii oluline - sa oled ees või taga. Esiküljel tekkis ma just selliseid ülesandeid esimest korda ilma ettevalmistamiseta ja tagasilükkamiseta koos kogemusteta.


Kogemus on võimalik saada kogemusi ja teha midagi jahtuda mis tahes piirkonnas, seal oleks soov ja eeltingimus, siin on tavasid - midagi teha - midagi (ja hästi) ja et see töötas kindlalt ja lihtsalt toetas. Ja tagaise jaoks ei ole nii kriitiline kogemuste olemasolu või puudumise kriitiline. Kui areng võtab arvesse kõiki väikeseid asju, kõhkleb nurgajuhtumi ja tervikuna mõistab, kuidas tema API kasutab, siis teeb see kõik, nagu see peaks.


Minu jaoks on lihtsam avastada võimalikud probleemid Lihtsalt sellepärast, et ma tean meie mobiil-rakenduste rakendamise omadusi. Kuid see ei ole mingisugune superposiivsus - see on teadmiste kogum, mis tahes muu beckened, mis sageli töötab koos rindel.

Et lõpuks

Backend-Development on saanud minu jaoks hea kogemus - ma õppisin kirjutama koodi ja revwi, mõtlema üle arhitektuuri. See on tegelikult huvitav.


Aga samal ajal, püüdes elada, et ees on see tagasi, ma ei ütle, et juhul, mille puhul taustaks oleks kohe valinud alguses karjääri. Minu jaoks on endiselt oluline näha ja mõista, kuidas minu toode kasutajad kasutavad. Tagasi, see on kõik päris kummituslik.


Tõenäoliselt valides sfääri nüüd, ma lähen Gamedev või Web Front. Web endiselt hea platvorm käivitamise uute toodete ja samal ajal lakkas olema kohutav ja raske mõista. Kõik need õpetused spagetid koodi ja tagasihelistamise-põrgu jäi kaugele taga, õnneks.

Frontend on areng kasutajaliidese ja funktsionaalsus, mis töötavad veebisaidi kliendi poolel või rakendusel. Seda tüüpi arengut saab seostada kõike, mida kasutaja näeb, avades veebilehe. Elentide arendaja teeb koostööd disainerite, programmeerijate ja UX-analüütikutega, et luua mugav ja nõudlik toode.

Et selgelt aru saada, milline frontend-areng on, avage iga saidi leht - näete teie ees olevat liidest. Paremklõpsuga näete brauseris selle lehe koodi.

See kood on eeskuju fronti arendaja, see on alla laadida kasutaja brauserisse ja näete seda oma silmadega. Lehekülje kood kirjeldab kõike, mida näete iseenda ees: värvid, paigutus, fonte, graafiliste elementide asukoht jne.

Frontendi arendamine hõlmab järgmist:

  • HTML (hüperteksti märgistuskeel) - dokumendi märgistamise keel, millega lehekülje struktuur on moodustatud: pealkirjad, punktid, nimekirjad jne;
  • CSS (Cascading Style lehed) - kirjelduse ja stiilide keel väline vaade Dokument. Tänu CSS-koodile mõistab teie brauser elemente kuvada. CSS määrab värvide ja fondiparameetrite, määrab, kuidas erinevad saidiplokid paiknevad ja nii edasi. Samuti võimaldab see väljastada sama dokumendi erinevates stiilides, näiteks printimiseks (tavaline või Braille font), väljund ekraani või lugemiseks hääl;
  • JavaScript. - See on keel, mis loodi veebilehtede taaselustamiseks. Tema ülesanne on reageerida kasutaja tegevustele, käepide hiireklõpsuga, liigutage kursorit, klahvivajutusi. Ta saadab ka taotlusi serverisse ja laaditakse andmed lehe taaskäivitamiseta, võimaldab teil sisestada sõnumeid ja palju muud.

Mis on taustaprogramm?

Tagasirendus on riistvara tarkvara komplekt, millega rakendatakse saidi loogika. Lihtsalt öeldes on see see, mis on kasutaja silmast peidetud ja tekib väljaspool oma brauserit ja arvutit.

Näiteks, kui sisestate otsingulehe lehekülje taotluse ja klõpsake klahvi SISENEMAEsiosa lõpeb ja hakkab tausta. Teie taotlus saadetakse serverisse. Google või Yandexkus otsingu algoritmid asuvad. See on olemas kõik "maagia" juhtub. Niipea kui teie otsitava teabe ilmusite, ilmus monitorile fresend tsooni tagasipöördumine.

Suured ja suured server on sama arvuti, vaid võimsam. See salvestab andmeid ja vastab kasutaja taotlustele.

Backend on serveri kombineerimise protsess kasutajaga.

Tagasi arendaja saab rakendada oma serveris olevaid tööriistu. Tal on õigus valida näiteks universaalsete programmeerimiskeeli, näiteks Ruby, PHP, Python, Java.

Ka taustate arendamise jaoks erinevad süsteemid Andmebaasi haldamine:

  1. MySQL;
  2. PostgreSQL;
  3. SQLite;
  4. Mongodb.

Sõltuvalt toote tüübist võivad taustate arendajate ülesanded oluliselt muutuda. Selline spetsialist võib luua ja integreerida andmebaase, tagada turvalisus, luua tehnoloogiaid. reservkoopia ja taastumine.

Kuidas Front ja Backend Interact?

Front ja Backend suhtleb ringi: frontend saadab kasutajateavet Backend, see töödeldakse ja tagastab tagasi, võttes selgelt vormi.

Reeglina tegelevad erinevad spetsialistid selliste tööde puhul, kuid on soovitav mõista põhimõtteid, mille kohta kolleegid töötavad. Näiteks on liidese disainer oluline vähemalt üldistes tingimustes, et teada saada, milline on projekti varundamine, millele see tegeleb. See aitab tal piisavalt hinnata, millised tehnilised võimalused võivad olla kohapeal või rakenduses.

Fronti ja Backendi interaktsiooni jaoks on mitmeid võimalusi:

  • HTTP-päring saadetakse otse serverisse, server otsib teavet, kinnitab selle malli ja naaseb HTML-i leheks;
  • Võimalus tööriistade abil AJAX (asünkroonne JavaScript ja XML). Sellisel juhul saadab taotlus JavaScript.allalaaditud brauserile ja vastus on XML-i või JSON-vormingus;
  • Ühe lehekülje rakendused, mis laadivad andmeid allalaadimiseta ilma lehe värskendamiseta. Seda tehakse ka abi ajax või freymvorkov Nurgeline ja emakas.;
  • Ember. või raamatukogu Reageerima Aidake kasutada rakendusi ja serverit ja kliendis. Frontend ja Backend Interact kaudu Ajax ja HTML-koodi, mis töödeldakse serveris.

Nagu näeme, on kaasaegne areng keeruline ja mitmetasandiline protsess, mis on jagatud kaheks osaks: kliendi ja server. Arsenal Frontend- ja Backend programmeerijad on palju tööriistu, mille valik sõltub ülesannete ja keerukuse projekti. Mõlemad arendusliigid hõlmavad tehnilisi ja loomingulisi komponente.

Elentide ja taustate arendajate kohustused on tavaliselt jagatud, kuid on aegu, mil programmeerija peab lahendama probleeme, mis tekivad nii serveri poolel kui ka kliendiosas. Sageli turul saate kohtuda spetsialistidega, kes tunnevad end enesekindlalt tunda nii eespaneelil kui ka taustal ning võivad kombineerida kahte tüüpi töö.

Te saate alustada oma teed fronti ja backend-arendamisel 12-kuulisest oskustarbikast. See sobib väikese kogemusega uustulnukate ja programmeerijate jaoks. Aasta jooksul uurivad õpilaste kuulajad praktikas peamisi programmeerimiskeeli ja loovad oma portfelli, mis aitab leida paljutõotavat ja hästi tasustatud tööd.