{"id":39071,"date":"2019-10-31T22:27:41","date_gmt":"2019-10-31T19:27:41","guid":{"rendered":"https:\/\/prohoster.info\/blog\/pochemu-polezno-izobretat-kolyosa\/"},"modified":"2019-10-31T22:27:41","modified_gmt":"2019-10-31T19:27:41","slug":"pochemu-polezno-izobretat-kolyosa","status":"publish","type":"post","link":"https:\/\/prohoster.info\/et\/blog\/news\/pochemu-polezno-izobretat-kolyosa","title":{"rendered":"Miks on kasulik rattaid v\u00e4lja m\u00f5elda","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Miks on kasulik rattaid v\u00e4lja m\u00f5elda\" src=\"\/wp-content\/uploads\/2019\/10\/1067abfe7a3cdf764c49bbb0d5dd6d1b.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nHiljuti korraldasin intervjueerimise JavaScript arendajaga, kes kandideeris vanema positsioonile. Kaaslane, kes samuti ajaloos kohal viibis, palus kandidaadil kirjutada funktsioon, mis teeks HTTP p\u00e4ringu ja probleemide korral prooviks mitu korda uuesti.<\/p>\n<p>Ta kirjutas koodi kohe tahvlile, seet\u00f5ttu oleks olnud piisav joonistada midagi umbkaudu. Kui ta oleks lihtsalt n\u00e4idanud, et m\u00f5istab h\u00e4sti, mille poolest tegu, oleksime rahul olnud. Kuid kahjuks tal ei \u00f5nnestunud leida head lahendust. Siis, olles seda n\u00e4rvilisusega ette heitnud, otsustasime veidi \u00fclesannet lihtsustada ja palusime tal muuta tagasisidefunktsioon promisse kasutavaks funktsiooniks.<\/p>\n<p>Kahjuks. Jah, oli ilmne, et selline kood oli talle varem tuntud. Ta teadis \u00fcldiselt, kuidas see k\u00f5ik toimib. Meile oleks piisanud lahenduse visandist, mis n\u00e4itas arusaamist kontseptsioonist. Kuid kood, mille kandidaat tahvlile kirjutas, oli t\u00e4ielik m\u00f5ttetuseks. Tal oli v\u00e4ga udune arusaam sellest, mis on JavaScriptis promissid ning ta ei osanud h\u00e4sti selgitada, miks need vajalikud on. Junior arendaja puhul oleks see veel aktsepteeritav, kuid vanema positsioonile ta ei sobinud. Kuidas suudaks see arendaja lahendada vigu keerulises promisside ahelas ja selgitada teistele, mida t\u00e4pselt ta tegi?<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h4>Arendajad peavad valmis koodi enesestm\u00f5istetavaks.<\/h4>\n<p>\nArendusprotsessis puutume pidevalt kokku korduvate materjalidega. Me jagame koodifragmente, et ei peaks neid iga kord uuesti kirjutama. Seega, keskendudes k\u00f5ikidele p\u00f5hiosadele, vaatame valmis koodi, millega t\u00f6\u00f6tame, kui midagi enesestm\u00f5istetavat \u2013 me lihtsalt eeldame, et see t\u00f6\u00f6tab nagu peab.<\/p>\n<p>Ja tavaliselt see t\u00f5epoolest t\u00f6\u00f6tab, kuid kui tekivad probleemid, tasub aru saada selle mehhanismist \u00fcle m\u00f5istmise.<\/p>\n<p>Nii arvas meie kandidaat vanema arendaja positsioonile, et promise objektid on enesestm\u00f5istetavad. T\u00f5en\u00e4oliselt oskas ta ette kujutada, kuidas nendega hallata, kui need ilmuvad kuskil v\u00e4liskoodis, kuid ta ei m\u00f5istnud \u00fcldp\u00f5him\u00f5tet ja ei suutnud seda ise intervjuul korrata. V\u00f5ib-olla oli ta mingit fragmenti meelde j\u00e4tnud \u2013 see pole sugugi keeruline:<\/p>\n<pre><code class=\"javascript\">return new Promise((resolve, reject) =&gt; {\n  functionWithCallback((err, result) =&gt; {\n   return err ? reject(err) : resolve(result);\n  });\n});<\/code><\/pre>\n<p>\nMina ka tegin \u2013 me k\u00f5ik oleme t\u00f5en\u00e4oliselt kunagi nii teinud. Lihtsalt \u00f5ppisime koodi osa peast, et hiljem seda t\u00f6\u00f6s kasutada, omamata \u00fcldiselt aimu, kuidas k\u00f5ik tegelikult t\u00f6\u00f6tab. Kuid kui arendaja oleks t\u00f5eliselt m\u00f5istnud kontseptsiooni, ei oleks tal olnud midagi meelde j\u00e4tta \u2013 ta oleks lihtsalt teadnud, kuidas seda teha, ja oleks muretult k\u00f5ik vajaliku koodis taastanud.<\/p>\n<h4>P\u00f6\u00f6rduge allikate poole<\/h4>\n<p>\n2012. aastal, mil esimesed front-end raamistikud ei olnud veel populaarsust kogunud, valitses maailmas jQuery ja ma lugesin raamatut <noindex><a rel=\"nofollow\" href=\"https:\/\/www.manning.com\/books\/secrets-of-the-javascript-ninja\">Secrets of the JavaScript Ninja<\/a><\/noindex>, mille autoriks oli John Resig, jQuery looja.<\/p>\n<p>Raamat \u00f5petab lugema, kuidas luua oma jQuery nullist ja annab ainulaadse v\u00f5imaluse tutvuda m\u00f5tlemise k\u00e4iguga, mis viis raamatukogu loomisele. Viimastel aastatel on jQuery kaotanud oma endise populaarsuse, kuid ma soovitan raamatut siiski v\u00e4ga. Mis mind enim veretavalt \u00fcllatas \u2013 oli p\u00fcsiv tunne, et oleksin v\u00f5inud ise sellele j\u00e4reldusele tulla. Autor kirjeldatud sammud tundusid nii loogilised ja arusaadavad, et mul oli t\u00f5siselt tunne, nagu saaksin kergesti jQuery luua, kui vaid asjaga pihta hakkaksin.<\/p>\n<p>Muidugi, reaalsuses ma ei oleks midagi sellist suurt osanud \u2013 oleksin arvanud, et see on \u00fcletamatult keeruline. Omandatud lahendused tunduksid mulle liiga lihtsate ja naiivsetena, et t\u00f6\u00f6tada, ja ma oleksin k\u00e4ed alla lasknud. Ma oleksin pidanud jQuery'd iseenesestm\u00f5istetavaks asjaks, mille korrektsesse toimimisse tuleb lihtsalt pimesi uskuda. Edasi ei oleks ma ilmselt raisanud aega, et l\u00e4heneda selle raamatukogu mehhanikale, vaid oleksin lihtsalt kasutanud seda musta kasti moodi.<\/p>\n<p>Kuid see raamat tegi minust teise inimese. Hakkasin s\u00fcvenema l\u00e4htekoodi ja avastasin, et paljude lahenduste rakendamine on tegelikult v\u00e4ga transparantne, isegi ilmne. Ei, muidugi, ise sarnasele tasemele j\u00f5udmine on juba hoopis teine lugu. Kuid just teiste koodi uurimine ja juba olemasolevate lahenduste taastamine aitab meil midagi uut v\u00e4lja m\u00f5elda. <\/p>\n<p>Inspireerige end ja m\u00e4rkige mustreid, mis teid arendajana muudavad. Te avastate, et see suurep\u00e4rane teekogu, mida te pidevalt kasutate ja milles te olete harjunud m\u00f5tlema kui maagilises artefaktis, ei toimi mitte maagia, vaid lihtsalt lahendab probleemi nutikalt ja lakooniliselt.<\/p>\n<p>M\u00f5nikord tuleb koodiga vaeva n\u00e4ha, liigendades seda samm-sammult, kuid just nii, edasi liikudes v\u00e4ikeste j\u00e4rkj\u00e4rgsete sammudega, suudate te autori teed lahenduse leidmisel j\u00e4ljendada. See v\u00f5imaldab teil s\u00fcgavamalt s\u00fcveneda koodikirjutamise protsessi ja suurendab teie enesekindlust oma lahenduste otsimisel.<\/p>\n<p>Kui ma alles hakkasin promesse kasutama, tundus, et see on puhas maagia. Seej\u00e4rel sain ma teada, et nende aluseks on samad tagasisidekutsed, ja minu arendaja maailm p\u00f6\u00f6rdus pea peale. See t\u00e4hendab, et muster, mille eesm\u00e4rk on vabastada meid tagasisidekutsest, rakendub ise tagasisidekutsede abil?!<\/p>\n<p>See aitas mul vaadata asju teise nurga alt ja m\u00f5ista, et minu ees ei ole m\u00f5ningaid arusaamatuid koodit\u00fckke, mille \u00e4\u00e4rmiselt keerulist olemust ma kunagi ei m\u00f5ista. Need on lihtsalt mustrid, milles on lihtne orienteeruda, kui vaid on piisavalt uudishimu ja s\u00fcvenemist. Just niimoodi \u00f5petavad inimesed end programmeerima ja kasvavad arendajatena.<\/p>\n<h4>Leiutage see ratta uuesti<\/h4>\n<p>\nSeega leiutage rattaid julgelt uuesti: kirjutage ise kood andmete sidumiseks, looge kodune promiss v\u00f5i isegi tehke oma k\u00e4tega lahendus olekute haldamiseks. <br \/>\nPole t\u00e4htis, et keegi nendele kunagi ei kasuta \u2013 oluline on, et n\u00fc\u00fcd oskate te seda. Ja kui teil on hiljem v\u00f5imalus neid saavutusi oma projektides kasutada, siis on see t\u00f5eliselt suurep\u00e4rane. Saate neid arendada ja \u00f5ppida veel rohkem.<\/p>\n<p>Siin ei ole m\u00f5te saata oma koodi tootmisse, vaid \u00f5ppida midagi uut. Omak\u00e4eliselt olemasoleva lahenduse rakendamine on suurep\u00e4rane viis \u00f5ppida parimatelt arendajatelt ja selle kaudu oma oskusi arendada.<br \/>\n<br \/>Allikas: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/digital-ecosystems\/blog\/472006\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041d\u0430 \u0434\u043d\u044f\u0445 \u044f \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u043b \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u0441 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u043c \u043d\u0430 JavaScript, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0435\u0442\u0435\u043d\u0434\u043e\u0432\u0430\u043b \u043d\u0430 \u043f\u043e\u0437\u0438\u0446\u0438\u044e \u0441\u0435\u043d\u0438\u043e\u0440\u0430. \u041a\u043e\u043b\u043b\u0435\u0433\u0430, \u0442\u043e\u0436\u0435 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0432\u0448\u0438\u0439 \u043d\u0430 \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0438, \u043f\u043e\u043f\u0440\u043e\u0441\u0438\u043b \u043a\u0430\u043d\u0434\u0438\u0434\u0430\u0442\u0430 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u044b \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043b\u0430 HTTP \u0437\u0430\u043f\u0440\u043e\u0441 \u0438 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u043d\u0435\u0443\u0434\u0430\u0447\u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u043b\u0430 \u043f\u043e\u043f\u044b\u0442\u043a\u0443 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437. \u041e\u043d \u043f\u0438\u0441\u0430\u043b \u043a\u043e\u0434 \u0441\u0440\u0430\u0437\u0443 \u043d\u0430 \u0434\u043e\u0441\u043a\u0435, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0431\u044b \u0431\u044b\u043b\u043e \u0438\u0437\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c \u043d\u0435\u0447\u0442\u043e \u043f\u0440\u0438\u0431\u043b\u0438\u0437\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435. \u0415\u0441\u043b\u0438 \u0431\u044b \u043e\u043d \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u043a\u0430\u0437\u0430\u043b, \u0447\u0442\u043e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":29315,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-39071","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=\"\u041d\u0430 \u0434\u043d\u044f\u0445 \u044f \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u043b \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u0441 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u043c \u043d\u0430.\" \/>\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\/pochemu-polezno-izobretat-kolyosa\" \/>\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\u041f\u043e\u0447\u0435\u043c\u0443 \u043f\u043e\u043b\u0435\u0437\u043d\u043e \u0438\u0437\u043e\u0431\u0440\u0435\u0442\u0430\u0442\u044c \u043a\u043e\u043b\u0451\u0441\u0430 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041d\u0430 \u0434\u043d\u044f\u0445 \u044f \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u043b \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u0441 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u043c \u043d\u0430.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/blog\/news\/pochemu-polezno-izobretat-kolyosa\" \/>\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-31T19:27:41+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:27:41+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\udd47Miks on kasulik rattaid leiutada | ProHoster","description":"Hiljuti intervjueerisin arendajat.","canonical_url":"https:\/\/prohoster.info\/et\/blog\/news\/pochemu-polezno-izobretat-kolyosa","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\u041f\u043e\u0447\u0435\u043c\u0443 \u043f\u043e\u043b\u0435\u0437\u043d\u043e \u0438\u0437\u043e\u0431\u0440\u0435\u0442\u0430\u0442\u044c \u043a\u043e\u043b\u0451\u0441\u0430 | ProHoster","og:description":"\u041d\u0430 \u0434\u043d\u044f\u0445 \u044f \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u043b \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u0441 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u043c \u043d\u0430.","og:url":"https:\/\/prohoster.info\/et\/blog\/news\/pochemu-polezno-izobretat-kolyosa","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-31T19:27:41+00:00","article:modified_time":"2019-10-31T19:27:41+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"39071","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-24 00:37:21","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 23:16:10","updated":"2026-01-24 00:37:21","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\/39071","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=39071"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/39071\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/29315"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=39071"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=39071"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=39071"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}