{"id":55630,"date":"2020-01-24T00:00:00","date_gmt":"2020-01-23T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/sovremennyj-kurs-po-node-js-v-2020"},"modified":"2020-02-18T14:03:46","modified_gmt":"2020-02-18T11:03:46","slug":"sovremennyj-kurs-po-node-js-v-2020","status":"publish","type":"post","link":"https:\/\/prohoster.info\/et\/blog\/news\/sovremennyj-kurs-po-node-js-v-2020","title":{"rendered":"Kaasaegne Node.js kursus 2020. aastal","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Kaasaegne Node.js kursus 2020. aastal\" src=\"\/wp-content\/uploads\/2020\/01\/77b9f16832b724faf6df54b19062808a.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Lugupeetud insenerid, Metarhi kogukond esitleb teile kaasaegset <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/playlist?list=PLHhi8ymDMrQZmXEqIIlq2S9-Ibh9b_-rQ\">\u043a\u0443\u0440\u0441 \u043f\u043e Node.js<\/a><\/noindex>, mis sisaldab k\u00f5igi platvormi v\u00f5imaluste ja aspektide s\u00fcgavat k\u00e4sitlemist. P\u00f5hir\u00f5hk on seatud sellele, kuidas luua usaldusv\u00e4\u00e4rseid k\u00f5rge koormusega rakenduste ja API servereid ilma, et need oleksid seotud konkreetse raamistikuga v\u00f5i isegi protokolli, st \u00e4riloogika eraldamine eraldi kihti. Loengutele on lisatud arvukalt koodin\u00e4iteid, mis demonstreerivad rakenduste paindlikku struktuuri ja arhitektuurilisi tehnikaid, sealhulgas andmebaasidega t\u00f6\u00f6tamine andmete juurde p\u00e4\u00e4su kihi kaudu, interaktiivsete rakenduste loomine veebip\u00f5histe socket'itega, turvalisuse tagamine, Graceful shutdown, protsessidevaheline suhtlemine, m\u00e4lu lekkimise v\u00e4ltimine, skaleerimine ja klasterdamine protsesside ja thread\u2019ide abil. Praegu sisaldab kursus 38 loengut (umbes 35,5 tundi videot) <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/HowProgrammingWorks\/Index\/blob\/master\/Courses\/NodeJS.md\">37 koodin\u00e4idete repot<\/a><\/noindex>, 4 PDF slaidid. Enne Node.js kursuse p\u00f5hiosa tuleb esmalt osata v\u00e4hemalt osaliselt <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/452974\/\">as\u00fcnkroonse programmeerimise kursust<\/a><\/noindex>.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2 id=\"vvedenie-i-osnovy\">Sissejuhatus ja alused<\/h2>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/WBcHgaoHh1k\">Node.js tehnoloogia sissejuhatus<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/CUU49jjHloM\">Node.js 2019. aastal<\/a><\/noindex>\n<ul>\n<li>Slaidid: <noindex><a rel=\"nofollow\" href=\"https:\/\/www.slideshare.net\/tshemsedinov\/nodejs-in-2019\">https:\/\/www.slideshare.net\/tshemsedinov\/nodejs-in-2019<\/a><\/noindex><\/li>\n<\/ul>\n<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/hY6Z6qNYzmc\">\u0410\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432 Node.js<\/a><\/noindex>\n<ul>\n<li>See on vaid \u00fclevaateloeng, link as\u00fcnkroonse programmeerimise kursusele<br \/>\nasub \u00fclalpool, enne sisukorda<\/li>\n<\/ul>\n<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/sOkjR-N6IAs\">Node.js sisseehitatud API \u00fclevaade<\/a><\/noindex>\n<ul>\n<li>Dokumentatsiooni link: <noindex><a rel=\"nofollow\" href=\"https:\/\/nodejs.org\/api\/documentation.html\">https:\/\/nodejs.org\/api\/documentation.html<\/a><\/noindex><\/li>\n<\/ul>\n<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/hSyA7tcNaCE\">Keskkonna seadistamine: Node.js, npm, git, eslint<\/a><\/noindex>\n<ul>\n<li>Instrumentide repo: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/HowProgrammingWorks\/Tools\">https:\/\/github.com\/HowProgrammingWorks\/Tools<\/a><\/noindex><\/li>\n<\/ul>\n<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/eQGBS15vUac\">\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u0444\u0430\u0439\u043b\u0430\u043c\u0438, \u0431\u0443\u0444\u0435\u0440\u0430\u043c\u0438 \u0438 \u0444\u0430\u0439\u043b\u043e\u0432\u044b\u043c\u0438 \u043f\u043e\u0442\u043e\u043a\u0430\u043c\u0438 \u0432 Node.js<\/a><\/noindex>\n<ul>\n<li>Failidega t\u00f6\u00f6tamine: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/HowProgrammingWorks\/Files\">https:\/\/github.com\/HowProgrammingWorks\/Files<\/a><\/noindex><\/li>\n<li>Failivood: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/HowProgrammingWorks\/Streams\">https:\/\/github.com\/HowProgrammingWorks\/Streams<\/a><\/noindex><\/li>\n<li>Puhvrid: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/HowProgrammingWorks\/Buffers\">https:\/\/github.com\/HowProgrammingWorks\/Buffers<\/a><\/noindex><\/li>\n<\/ul>\n<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/29QINR9rruQ\">\u041d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0435 \u0437\u0430 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 \u0432 Node.js<\/a><\/noindex>\n<ul>\n<li>Failis\u00fcsteem Node.js-is: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/HowProgrammingWorks\/Files\">https:\/\/github.com\/HowProgrammingWorks\/Files<\/a><\/noindex><\/li>\n<li>Failide j\u00e4lgimine: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/HowProgrammingWorks\/FilesystemWatch\">https:\/\/github.com\/HowProgrammingWorks\/FilesystemWatch<\/a><\/noindex><\/li>\n<\/ul>\n<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/5aSZyKi5BmE\">\u041a\u043e\u043d\u0441\u043e\u043b\u044c \u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u0432 JavaScript \u0438 Node.js<\/a><\/noindex>\n<ul>\n<li>Koodin\u00e4ited: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/HowProgrammingWorks\/CommandLine\">https:\/\/github.com\/HowProgrammingWorks\/CommandLine<\/a><\/noindex><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><\/p>\n<h2 id=\"struktura-i-arhitektura-prilozheniy-na-nodejs\">\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0438 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043d\u0430 Node.js<\/h2>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/d_vyO2CkiOc\">Arhitektuurne l\u00e4henemine programmeerimisele<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/O7A9chb573E\">\u041c\u043e\u0434\u0443\u043b\u0438, \u0441\u043b\u043e\u0438, \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0430, \u043f\u0435\u0441\u043e\u0447\u043d\u0438\u0446\u044b \u0432 JavaScript \u0438 Node.js<\/a><\/noindex>\n<ul>\n<li>Projekti n\u00e4ide: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/HowProgrammingWorks\/Project\">https:\/\/github.com\/HowProgrammingWorks\/Project<\/a><\/noindex><\/li>\n<li>Abstraktsed kihid: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/HowProgrammingWorks\/AbstractionLayers\">https:\/\/github.com\/HowProgrammingWorks\/AbstractionLayers<\/a><\/noindex><\/li>\n<li>Liivakastid: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/HowProgrammingWorks\/Sandboxes\">https:\/\/github.com\/HowProgrammingWorks\/Sandboxes<\/a><\/noindex><\/li>\n<\/ul>\n<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/Fz86Fdjz-LM\">\u0418\u043d\u0432\u0435\u0440\u0441\u0438\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438 \u0432\u043d\u0435\u0434\u0440\u0435\u043d\u0438\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0432 Node.js<\/a><\/noindex>\n<ul>\n<li>S\u00fcsteemi juhtimise p\u00f6\u00f6rdumine: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/HowProgrammingWorks\/InversionOfControl\">https:\/\/github.com\/HowProgrammingWorks\/InversionOfControl<\/a><\/noindex><\/li>\n<li>S\u00f5ltuvuste s\u00fcstimine: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/HowProgrammingWorks\/DependencyInjection\">https:\/\/github.com\/HowProgrammingWorks\/DependencyInjection<\/a><\/noindex><\/li>\n<\/ul>\n<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/2OXWZFMvfbc\">\u041c\u0435\u0436\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432\u043e\u0435 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0432 Node.js<\/a><\/noindex>\n<ul>\n<li>Koodin\u00e4ited: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/HowProgrammingWorks\/InterProcessCommunication\">https:\/\/github.com\/HowProgrammingWorks\/InterProcessCommunication<\/a><\/noindex><\/li>\n<\/ul>\n<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/A3RpwNlVeyY\">Kihid, sidusus ja koodi sidusus<\/a><\/noindex>\n<ul>\n<li>Koodin\u00e4ited: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/HowProgrammingWorks\/Abstractions\">https:\/\/github.com\/HowProgrammingWorks\/Abstractions<\/a><\/noindex><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><\/p>\n<h2 id=\"razrabotka-serverov-prilozheniy-i-api-na-nodejs\">\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0438 API \u043d\u0430 Node.js<\/h2>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/bHn-wTlTTR0\">Klient-server Node.js-is TCP ja UDP, DNS<\/a><\/noindex>\n<ul>\n<li>Koodin\u00e4ited: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/HowProgrammingWorks\/Socket\">https:\/\/github.com\/HowProgrammingWorks\/Socket<\/a><\/noindex><\/li>\n<\/ul>\n<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/7Ufxj0oTaUo\">HTTP-server Node.js-is (routing, cluster, IP sticky)<\/a><\/noindex>\n<ul>\n<li>Koodin\u00e4ited: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/HowProgrammingWorks\/NodeServer\">https:\/\/github.com\/HowProgrammingWorks\/NodeServer<\/a><\/noindex><\/li>\n<\/ul>\n<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/T_wKXuWW4Wo\">HTTP \u0441\u0435\u0441\u0441\u0438\u0438 \u0438 cookies \u043d\u0430 \u0447\u0438\u0441\u0442\u043e\u043c Node.js<\/a><\/noindex>\n<ul>\n<li>Koodin\u00e4ited: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/HowProgrammingWorks\/Session\">https:\/\/github.com\/HowProgrammingWorks\/Session<\/a><\/noindex><\/li>\n<\/ul>\n<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/wMMki2FEYGY\">HTTP p\u00e4ringud brauseris ja Node.js-is: XMLHttpRequest, fetch<\/a><\/noindex>\n<ul>\n<li>Koodin\u00e4ited: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/HowProgrammingWorks\/HttpRequest\">https:\/\/github.com\/HowProgrammingWorks\/HttpRequest<\/a><\/noindex><\/li>\n<\/ul>\n<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/-az912XBCu8\">API arendamine Node.js-is (klient ja server)<\/a><\/noindex>\n<ul>\n<li>Koodin\u00e4ited: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/HowProgrammingWorks\/API\">https:\/\/github.com\/HowProgrammingWorks\/API<\/a><\/noindex><\/li>\n<\/ul>\n<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/Sf7ln3n16ws\">WebSocket server Node.js-is (tabelid ja vestlus)<\/a><\/noindex>\n<ul>\n<li>Veebiserverid: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/HowProgrammingWorks\/WebsocketChat\">https:\/\/github.com\/HowProgrammingWorks\/WebsocketChat<\/a><\/noindex><\/li>\n<li>Vestlus: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/HowProgrammingWorks\/LiveTable\">https:\/\/github.com\/HowProgrammingWorks\/LiveTable<\/a><\/noindex><\/li>\n<\/ul>\n<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/lipkLQVqDd8\">API, UI ja andmete scaffoldimine<\/a><\/noindex>\n<ul>\n<li>Koodin\u00e4ited: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/HowProgrammingWorks\/Scaffolding\">https:\/\/github.com\/HowProgrammingWorks\/Scaffolding<\/a><\/noindex><\/li>\n<\/ul>\n<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/7tfZDABPvVs\">\u0412\u044b\u0441\u043e\u043a\u043e\u043d\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u0435 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430 Node.js<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/n_AdKIzbpBc\">\u041e\u0442\u0434\u0430\u0447\u0430 \u0441\u0442\u0430\u0442\u0438\u043a\u0438 \u0432 Node.js<\/a><\/noindex>\n<ul>\n<li>Koodin\u00e4ited ja \u00fclesanded: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/HowProgrammingWorks\/ServeStatic\">https:\/\/github.com\/HowProgrammingWorks\/ServeStatic<\/a><\/noindex><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><\/p>\n<h2 id=\"rabota-s-bazami-dannyh-na-nodejs\">\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u0431\u0430\u0437\u0430\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 Node.js<\/h2>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/CRcSWtWVvrA\">Andmete juurde p\u00e4\u00e4su kiht, kursor, tehing<\/a><\/noindex>\n<ul>\n<li>Koodin\u00e4ited: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/HowProgrammingWorks\/Transaction\">https:\/\/github.com\/HowProgrammingWorks\/Transaction<\/a><\/noindex><\/li>\n<\/ul>\n<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/2tDvHQCBt3w\">Andmebaasidega t\u00f6\u00f6tamine Node.js-is PostgreSQL n\u00e4itel<\/a><\/noindex>\n<ul>\n<li>Koodin\u00e4ited: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/HowProgrammingWorks\/Databases\">https:\/\/github.com\/HowProgrammingWorks\/Databases<\/a><\/noindex><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><\/p>\n<h2 id=\"lekcii-po-cqrs-i-event-sourcing\">Loengud CQRS ja Event Sourcing<\/h2>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/vER0vYL4hM4\">K\u00e4sklus (Command) muster, tegevus ja parameetrid objektina<\/a><\/noindex>\n<ul>\n<li>Seda mustrit on vaja j\u00e4rgmise loengu jaoks<\/li>\n<li>Koodin\u00e4ited: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/HowProgrammingWorks\/Command\">https:\/\/github.com\/HowProgrammingWorks\/Command<\/a><\/noindex><\/li>\n<\/ul>\n<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/T2tRc80Q8Qw\">CQS, CQRS, Event Sourcing \u2014 P\u00e4ringute ja andmete muutmise eristamine<\/a><\/noindex>\n<ul>\n<li>CQS: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/HowProgrammingWorks\/CQS\">https:\/\/github.com\/HowProgrammingWorks\/CQS<\/a><\/noindex><\/li>\n<li>CQRS: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/HowProgrammingWorks\/CQRS\">https:\/\/github.com\/HowProgrammingWorks\/CQRS<\/a><\/noindex><\/li>\n<li>EventSourcing: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/HowProgrammingWorks\/EventSourcing\">https:\/\/github.com\/HowProgrammingWorks\/EventSourcing<\/a><\/noindex><\/li>\n<\/ul>\n<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/kFNtKiK2SPs\">EventSourcingi rakendamine<\/a><\/noindex>\n<ul>\n<li>Vaata eelneva loengu n\u00e4iteid<\/li>\n<\/ul>\n<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/xp5MVKEqxY4\">N\u00e4itlejate mudel (Actor Model)<\/a><\/noindex>\n<ul>\n<li>Koodin\u00e4ited: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/HowProgrammingWorks\/ActorModel\">https:\/\/github.com\/HowProgrammingWorks\/ActorModel<\/a><\/noindex><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><\/p>\n<h2 id=\"upravlenie-pamyatyu-i-parallelnoe-programmirovanie\">M\u00e4luhaldus ja paralleelne programmeerimine<\/h2>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/0oZa64SB2wM\">M\u00e4lulekkeid Node.js-is ja JavaScriptis, pr\u00fcgikoristus ja profileerimine<\/a><\/noindex>\n<ul>\n<li>Koodin\u00e4ited: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/HowProgrammingWorks\/MemoryLeaks\">https:\/\/github.com\/HowProgrammingWorks\/MemoryLeaks<\/a><\/noindex><\/li>\n<\/ul>\n<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/zLm8pnbxSII\">Atomics, SharedArrayBuffer, worker_threads \u0432 Node.js<\/a><\/noindex>\n<ul>\n<li>Protsessid: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/HowProgrammingWorks\/Threads\/\">https:\/\/github.com\/HowProgrammingWorks\/Threads\/<\/a><\/noindex><\/li>\n<li>Aatomilised toimingud: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/HowProgrammingWorks\/Atomics\/\">https:\/\/github.com\/HowProgrammingWorks\/Atomics\/<\/a><\/noindex><\/li>\n<\/ul>\n<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/JNLrITevhRI\">\u0421\u0435\u043c\u0430\u0444\u043e\u0440\u044b \u0438 \u043c\u044c\u044e\u0442\u0435\u043a\u0441\u044b \u0432 JavaScript \u0438 Node.js<\/a><\/noindex>\n<ul>\n<li>Seemaforid: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/HowProgrammingWorks\/Semaphore\">https:\/\/github.com\/HowProgrammingWorks\/Semaphore<\/a><\/noindex><\/li>\n<li>M\u00fc\u00fctod: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/HowProgrammingWorks\/Mutex\">https:\/\/github.com\/HowProgrammingWorks\/Mutex<\/a><\/noindex><\/li>\n<\/ul>\n<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/KNsm_iIQt7U\">\u0420\u0430\u0437\u0434\u0435\u043b\u044f\u0435\u043c\u0430\u044f \u043f\u0430\u043c\u044f\u0442\u044c \u0432 \u043c\u043d\u043e\u0433\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u043e\u043c Node.js<\/a><\/noindex> \u2014 ettekande JS Fest 2019 Spring konverentsil\n<ul>\n<li>Slaidid: <noindex><a rel=\"nofollow\" href=\"https:\/\/www.slideshare.net\/JSFestUA\/js-fest-2019-nodejs\">https:\/\/www.slideshare.net\/JSFestUA\/js-fest-2019-nodejs<\/a><\/noindex><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><\/p>\n<h2 id=\"bezopasnost-nadezhnost-razvertyvanie-i-infrastruktura\">Turvalisus, usaldusv\u00e4\u00e4rsus, kasutuselev\u00f5tt ja infrastruktuur<\/h2>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/1Ml5NE2fsZ8\">T\u00f6\u00f6tlemata vead lubadustes<\/a><\/noindex>\n<ul>\n<li>Koodin\u00e4ited: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/HowProgrammingWorks\/PromiseError\">https:\/\/github.com\/HowProgrammingWorks\/PromiseError<\/a><\/noindex><\/li>\n<\/ul>\n<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/pfiHTx3j87Y\">\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0433\u043e \u0441\u0442\u0435\u043a\u0442\u0440\u0435\u0439\u0441\u0430 \u0432 JavaScript \u0438 Node.js<\/a><\/noindex>\n<ul>\n<li>Koodin\u00e4ited: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/HowProgrammingWorks\/StackTrace\">https:\/\/github.com\/HowProgrammingWorks\/StackTrace<\/a><\/noindex><\/li>\n<\/ul>\n<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/4DkZj2Cdokc\">Logimine Node.js-is ja JavaScriptis<\/a><\/noindex>\n<ul>\n<li>Koodin\u00e4ited: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/HowProgrammingWorks\/Logging\">https:\/\/github.com\/HowProgrammingWorks\/Logging<\/a><\/noindex><\/li>\n<\/ul>\n<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/ZstnowFeCe0\">Graceful Shutdown \u0432 Node.js<\/a><\/noindex>\n<ul>\n<li>Koodin\u00e4ited ja \u00fclesanded: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/HowProgrammingWorks\/GracefulShutdown\">https:\/\/github.com\/HowProgrammingWorks\/GracefulShutdown<\/a><\/noindex><\/li>\n<\/ul>\n<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/Pdfo1G-gI6s\">\u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 Node.js<\/a><\/noindex>\n<ul>\n<li>Slaidid: <noindex><a rel=\"nofollow\" href=\"https:\/\/www.slideshare.net\/tshemsedinov\/nodejs-security-199004963\">https:\/\/www.slideshare.net\/tshemsedinov\/nodejs-security-199004963<\/a><\/noindex><\/li>\n<\/ul>\n<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/x-Rd6fPV6L8\">Serverless Clouds (FaaS) \u0438 \u0438\u0437\u043e\u043b\u044f\u0446\u0438\u044f \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u043e\u0432 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0432 Node.js<\/a><\/noindex>\n<ul>\n<li>Slaidid: <noindex><a rel=\"nofollow\" href=\"https:\/\/www.slideshare.net\/tshemsedinov\/serverless-clouds-faas-and-request-context-isolation-in-nodejs\">https:\/\/www.slideshare.net\/tshemsedinov\/serverless-clouds-faas-and-request-context-isolation-in-nodejs<\/a><\/noindex><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><\/p>\n<p>Palume teil jagada oma arvamust kursuse kohta ja soovitusi kursuse materjalide t\u00e4iendamiseks. Ait\u00e4h meie t\u00f6\u00f6 huvi eest ja kogukonna abi koodin\u00e4idete parandamisel. Liituda saab YouTube'i kanaliga avatud loengutega siin: <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/TimurShemsedinov\">https:\/\/www.youtube.com\/TimurShemsedinov<\/a><\/noindex> ja autori GitHub siin: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/tshemsedinov\">https:\/\/github.com\/tshemsedinov<\/a><\/noindex><\/p>\n<p class=\"for_users_only_msg\">Ainult registreeritud kasutajad saavad k\u00fcsitluses osaleda. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/auth\/login\/\">Logige sisse<\/a><\/noindex>, palun.<\/p>\n<h2 class=\"default-block__polling-title\">Kas vaatate kursust?<\/h2>\n<ul class=\"poll-result\">\n<li class=\"poll-result__item\">\n<p>                <strong class=\"poll-result__data-percent  poll-result__data-percent_winner\">70,4%<\/strong>Jah, k\u00f5ik on huvitav155<\/p>\n<\/li>\n<li class=\"poll-result__item\">\n<p>                <strong class=\"poll-result__data-percent\">26,4%<\/strong>Vaatan valikuliselt58<\/p>\n<\/li>\n<li class=\"poll-result__item\">\n<p>                <strong class=\"poll-result__data-percent\">3,2%<\/strong>Ei ole huvitav7<\/p>\n<\/li>\n<\/ul>\n<p>    H\u00e4\u00e4letas 220 kasutajat. K\u00fcmme kasutajat olid erapooletud.<\/p>\n<h2 class=\"default-block__polling-title\">Kas soovite loengute j\u00e4tku?<\/h2>\n<ul class=\"poll-result\">\n<li class=\"poll-result__item\">\n<p>                <strong class=\"poll-result__data-percent  poll-result__data-percent_winner\">95,0%<\/strong>Jah, loomulikult191<\/p>\n<\/li>\n<li class=\"poll-result__item\">\n<p>                <strong class=\"poll-result__data-percent\">3,0%<\/strong>Jah, ja ma soovitan teemasid6<\/p>\n<\/li>\n<li class=\"poll-result__item\">\n<p>                <strong class=\"poll-result__data-percent\">2,0%<\/strong>Seda piisab4<\/p>\n<\/li>\n<\/ul>\n<p>    H\u00e4\u00e4letas 201 kasutaja. K\u00fcmme kasutajat olid erapooletud.<br \/>\n<br \/>Allikas: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/485294\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0414\u043e\u0440\u043e\u0433\u0438\u0435 \u0442\u043e\u0432\u0430\u0440\u0438\u0449\u0438 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u044b, \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u043e \u041c\u0435\u0442\u0430\u0440\u0445\u0438\u044f \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0432\u0430\u0448\u0435\u043c\u0443 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044e \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 \u043a\u0443\u0440\u0441 \u043f\u043e Node.js, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0433\u043b\u0443\u0431\u043e\u043a\u0438\u0439 \u0440\u0430\u0437\u0431\u043e\u0440 \u0432\u0441\u0435\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \u0438 \u0430\u0441\u043f\u0435\u043a\u0442\u043e\u0432 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b. \u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0443\u043f\u043e\u0440 \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0442\u043e, \u043a\u0430\u043a \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0435 \u0432\u044b\u0441\u043e\u043a\u043e\u043d\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0438 API \u0431\u0435\u0437 \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0438 \u043a \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u043c\u0443 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0443 \u0438 \u0434\u0430\u0436\u0435 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0443, \u0442.\u0435. \u0430\u0431\u0441\u0442\u0440\u0430\u0433\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0431\u0438\u0437\u043d\u0435\u0441-\u043b\u043e\u0433\u0438\u043a\u0443 \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0441\u043b\u043e\u0439. \u041a \u043b\u0435\u043a\u0446\u0438\u044f\u043c \u043f\u0440\u0438\u043a\u0440\u0435\u043f\u043b\u0435\u043d\u043e \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u043a\u043e\u0434\u0430, \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u044e\u0449\u0438\u0445 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":55631,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-55630","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0414\u043e\u0440\u043e\u0433\u0438\u0435 \u0442\u043e\u0432\u0430\u0440\u0438\u0449\u0438 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u044b, \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u043e \u041c\u0435\u0442\u0430\u0440\u0445\u0438\u044f.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/et\/blog\/news\/sovremennyj-kurs-po-node-js-v-2020\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0421\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 \u043a\u0443\u0440\u0441 \u043f\u043e Node.js \u0432 2020 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0414\u043e\u0440\u043e\u0433\u0438\u0435 \u0442\u043e\u0432\u0430\u0440\u0438\u0449\u0438 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u044b, \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u043e \u041c\u0435\u0442\u0430\u0440\u0445\u0438\u044f.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/blog\/news\/sovremennyj-kurs-po-node-js-v-2020\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-01-23T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:03:46+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Kaasaegne Node.js kursus 2020 | ProHoster","description":"Kallid insenerikaaslased, Metarkhia kogukond.","canonical_url":"https:\/\/prohoster.info\/et\/blog\/news\/sovremennyj-kurs-po-node-js-v-2020","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0421\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 \u043a\u0443\u0440\u0441 \u043f\u043e Node.js \u0432 2020 | ProHoster","og:description":"\u0414\u043e\u0440\u043e\u0433\u0438\u0435 \u0442\u043e\u0432\u0430\u0440\u0438\u0449\u0438 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u044b, \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u043e \u041c\u0435\u0442\u0430\u0440\u0445\u0438\u044f.","og:url":"https:\/\/prohoster.info\/et\/blog\/news\/sovremennyj-kurs-po-node-js-v-2020","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-01-23T21:00:00+00:00","article:modified_time":"2020-02-18T11:03:46+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"55630","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 19:40:27","updated":"2022-10-06 09:56:03","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/55630","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=55630"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/55630\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/55631"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=55630"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=55630"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=55630"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}