{"id":34273,"date":"2019-10-31T21:57:22","date_gmt":"2019-10-31T18:57:22","guid":{"rendered":"https:\/\/prohoster.info\/blog\/asinhronnoe-programmirovanie-polnyj-kurs\/"},"modified":"2019-10-31T21:57:22","modified_gmt":"2019-10-31T18:57:22","slug":"asinhronnoe-programmirovanie-polnyj-kurs","status":"publish","type":"post","link":"https:\/\/prohoster.info\/et\/blog\/news\/asinhronnoe-programmirovanie-polnyj-kurs","title":{"rendered":"As\u00fcnkroonne programmeerimine (t\u00e4ielik kursus)","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/playlist?list=PLHhi8ymDMrQZ0MpTsmi54OkjTbo0cjU1T\"><img decoding=\"async\" alt=\"As\u00fcnkroonne programmeerimine (t\u00e4ielik kursus)\" src=\"\/wp-content\/uploads\/2019\/05\/05e2e5ca44a35d173d006faafd6d18c0.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>As\u00fcnkroonne programmeerimine on saanud viimase ajal sama arenenud suunaks kui klassikaline paralleelne programmeerimine ja JavaScripti maailmas, nii brauserites kui ka Node.js-is, on selle meetodite m\u00f5istmine arendajate maailmavaate kujundamisel saanud kesksele kohale. Ettepanekul on teil terviklik ja t\u00e4ielik kursus, mis selgitab k\u00f5iki laialdaselt levinud as\u00fcnkroonse programmeerimise meetodeid, adaptereid nende vahel ja abimeetodeid. Hetkel koosneb see 23 loengust, 3 ettekandest ja 28 hoidlast, kus on palju koodin\u00e4iteid GitHubis. Kokku on videosid umbes 17 tundi: <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/playlist?list=PLHhi8ymDMrQZ0MpTsmi54OkjTbo0cjU1T\">lingi oynandi<\/a><\/noindex>.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h4 id=\"poyasneniya-k-sheme\">Selgitused skeemile<\/h4>\n<p><\/p>\n<p>Skeemil (\u00fclespool) on n\u00e4idatud seosed erinevate as\u00fcnkroonsuse t\u00f6\u00f6meetodite vahel. V\u00e4rvilised plokid kuuluvad as\u00fcnkroonsele programmeerimisele, samas kui must-valged n\u00e4itavad paralleelset programmeerimist (semaforid, muteksid, baarid jne) ja Petri v\u00f5rgud, mis nagu as\u00fcnkroonne programmeerimine ja aktorite mudel, on erinevad l\u00e4henemisviisid paralleelsete arvutuste elluviimiseks (need on skeemile esitatud ainult selleks, et t\u00e4pselt m\u00e4\u00e4ratleda as\u00fcnkroonse programmeerimise koht). Aktorite mudel on seotud as\u00fcnkroonse programmeerimisega, sest aktorite rakendamine ilma mitmerealisuseta on samuti \u00f5igustatud ja teenib as\u00fcnkroonse koodi struktureerimise eesm\u00e4rki. Katkendlikud jooned seovad s\u00fcndmused ja konkurentsi j\u00e4rjekorra tagasisidega, kuna need abstraktsioonid p\u00f5hinevad tagasisidel, kuid kujundavad siiski kvaliteetselt uusi l\u00e4henemisviise.<\/p>\n<p><\/p>\n<h4 id=\"temy-lekciy\">Loengute teemad<\/h4>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/hY6Z6qNYzmc\">1. As\u00fcnkroonne programmeerimine (\u00fclevaade)<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/LK2jveAnRNg\">2. Ajastajad, ajapiirangud ja EventEmitter<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/z8Hg6zgi3yQ\">3. As\u00fcnkroonne programmeerimine callback'idega<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/wYA2cIRYLoA\">4. Mitteblokkeeriv as\u00fcnkroonne iteratsioon<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/XQ94wQc-erU\">5. \u0410\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0441\u0442\u044c \u0441 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u043e\u0439 async.js<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/RMl4r6s1Y8M\">6. As\u00fcnkroonsus promissidel<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/Jdf_tZuJbHI\">7. As\u00fcnkroonsed funktsioonid ja vigade k\u00e4sitlemine<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/76k6_YkYRmU\">8. As\u00fcnkroonsed adapterid: promisify, callbackify, asyncify<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/tgodt1JL6II\">9. As\u00fcnkroonsed andmekogujad<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/1Ml5NE2fsZ8\">10. T\u00f6\u00f6tlemata vead promissides<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/pfiHTx3j87Y\">11. As\u00fcnkroonse steki j\u00e4lgimise probleem<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/kvNm9D32s8s\">12. Generaatorid ja as\u00fcnkroonsed generaatorid<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/rBGFlWpVpGs\">13. Iteraatorid ja as\u00fcnkroonsed iteraatorid<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/T8fXlnqI4Ws\">14. As\u00fcnkroonsed operatsioonide t\u00fchistamine<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/3ZCrMlMpOrM\">15. As\u00fcnkroonne funktsioonide koondamine<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/DXp__1VNIvI\">16. Thenable ja kerge await<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/Lg46AH8wFvg\">17. Konkurentsiv\u00f5imeline as\u00fcnkroonne j\u00e4rjekord<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/leR5sXRkuJI\">18. Avatud konstruktorimuster (Revealing Constructor)<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/22ONv3AGXdk\">19. Tulevik: As\u00fcnkroonsus tulevikestes ilma olekuta<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/a2fVA1o-ovM\">20. Deferred: As\u00fcnkroonsus viivitustes olekuga<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/xp5MVKEqxY4\">21. N\u00e4itlejamudel (Actor Model)<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/_bFXuLcXoXg\">22. J\u00e4lgimise muster (Observer + Observable)<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/0kcpMAl-wfE\">23. As\u00fcnkroonsus RxJS-is ja s\u00fcndmuste vood<\/a><\/noindex><\/p>\n<p><\/p>\n<p>Iga video all on lingid kodeerimisn\u00e4idiste hoidlatele, mis videos arutatakse. Olen proovinud n\u00e4idata, et ei ole m\u00f5tet k\u00f5ike \u00fche as\u00fcnkroonsuse abstraktsiooni alla tuua. Universaalset l\u00e4henemist as\u00fcnkroonsusele ei eksisteeri, kuid iga juhtumi jaoks saab leida meetodeid, mis v\u00f5imaldavad kirjutada koodi loomulikumalt antud \u00fclesande jaoks. Loomulikult t\u00e4iendan ma kursust ja palun k\u00f5igil pakkuda uusi teemasid ning panustada kodeerimisn\u00e4idistele. Kursuse peamine eesm\u00e4rk on n\u00e4idata, kuidas ehitada as\u00fcnkroonsuse abstraktsioone seestpoolt, mitte lihtsalt \u00f5petada, kuidas neid kasutada. Peaaegu k\u00f5ik abstraktsioonid ei tule raamatukogudest, vaid on antud nende k\u00f5ige lihtsamates realisatsioonides ja koosk\u00f5las nende t\u00f6\u00f6demonstratsiooniga.<\/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\">Kuidas on teie suhtumine kursusesse?<\/h2>\n<ul class=\"content-list content-list_polling\">\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    Vaatan kogu kursust<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    Vaatan valikuliselt<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    Mul on piisav \u00fcks l\u00e4henemine<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    Panustan kursusesse<\/p>\n<\/li>\n<li class=\"content-list__item content-list__item_polling\">\n<p>                    Mind ei huvita as\u00fcnkroonsus<\/p>\n<\/li>\n<\/ul>\n<p>    H\u00e4\u00e4letas 8 kasutajat. 1 kasutaja j\u00e4i erapooletuks.<br \/>\n<br \/>Allikas: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/452974\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\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 \u0437\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u0441\u0442\u0430\u043b\u043e \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 \u0440\u0430\u0437\u0432\u0438\u0442\u044b\u043c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c, \u0447\u0435\u043c \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435, \u0430 \u0432 \u043c\u0438\u0440\u0435 JavaSript, \u043a\u0430\u043a \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430\u0445, \u0442\u0430\u043a \u0438 \u0432 Node.js, \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u0435\u0433\u043e \u043f\u0440\u0438\u0435\u043c\u043e\u0432 \u0437\u0430\u043d\u044f\u043b\u043e \u043e\u0434\u043d\u043e \u0438\u0437 \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0435\u0441\u0442 \u0432 \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u043c\u0438\u0440\u043e\u0432\u043e\u0437\u0437\u0440\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432. \u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u0432\u0430\u0448\u0435\u043c\u0443 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044e \u0446\u0435\u043b\u043e\u0441\u0442\u043d\u044b\u0439 \u0438 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u043b\u043d\u044b\u0439 \u043a\u0443\u0440\u0441 \u0441 \u043e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0435\u043c \u0432\u0441\u0435\u0445 \u0448\u0438\u0440\u043e\u043a\u043e \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0430\u0434\u0430\u043f\u0442\u0435\u0440\u043e\u0432 \u043c\u0435\u0436\u0434\u0443 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":25850,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-34273","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=\"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\/asinhronnoe-programmirovanie-polnyj-kurs\" \/>\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\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 (\u043f\u043e\u043b\u043d\u044b\u0439 \u043a\u0443\u0440\u0441) | ProHoster\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/blog\/news\/asinhronnoe-programmirovanie-polnyj-kurs\" \/>\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=\"2019-10-31T18:57:22+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:57:22+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\udd47As\u00fcnkroonne programmeerimine (t\u00e4iskursus) | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/et\/blog\/news\/asinhronnoe-programmirovanie-polnyj-kurs","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\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 (\u043f\u043e\u043b\u043d\u044b\u0439 \u043a\u0443\u0440\u0441) | ProHoster","og:url":"https:\/\/prohoster.info\/et\/blog\/news\/asinhronnoe-programmirovanie-polnyj-kurs","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":"2019-10-31T18:57:22+00:00","article:modified_time":"2019-10-31T18:57:22+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"34273","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":"2026-01-21 18:33:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 02:25:30","updated":"2026-01-21 18:33:19","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\/34273","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=34273"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/34273\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/25850"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=34273"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=34273"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=34273"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}