{"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\/fr\/blog\/news\/pochemu-polezno-izobretat-kolyosa","title":{"rendered":"Pourquoi est-il utile d'inventer des roues","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Pourquoi est-il utile d&#039;inventer des roues\" src=\"\/wp-content\/uploads\/2019\/10\/1067abfe7a3cdf764c49bbb0d5dd6d1b.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nR\u00e9cemment, j'ai men\u00e9 un entretien avec un d\u00e9veloppeur JavaScript qui postulait pour un poste de senior. Un coll\u00e8gue, \u00e9galement pr\u00e9sent lors de l'entretien, a demand\u00e9 au candidat d'\u00e9crire une fonction qui effectuerait une requ\u00eate HTTP et, en cas d'\u00e9chec, essaierait plusieurs fois.<\/p>\n<p>Il \u00e9crivait le code directement sur le tableau, donc il suffisait de dessiner quelque chose de approximatif. S'il avait simplement montr\u00e9 qu'il comprenait bien le principe, nous aurions \u00e9t\u00e9 tout \u00e0 fait satisfaits. Mais, malheureusement, il ne parvenait pas \u00e0 trouver une solution ad\u00e9quate. Alors, en mettant cela sur le compte du stress, nous avons d\u00e9cid\u00e9 de simplifier la t\u00e2che un peu et lui avons demand\u00e9 de transformer la fonction avec des rappels en une fonction bas\u00e9e sur des promesses.<\/p>\n<p>Mais h\u00e9las. Oui, il \u00e9tait \u00e9vident qu'il avait d\u00e9j\u00e0 vu ce genre de code auparavant. Il savait en gros comment cela fonctionnait. Un simple croquis de solution montrant qu'il comprenait le concept nous aurait suffi. Cependant, le code que le candidat \u00e9crivait sur le tableau \u00e9tait compl\u00e8tement absurde. Il avait une id\u00e9e extr\u00eamement floue de ce que sont les promesses en JavaScript et ne pouvait pas vraiment expliquer pourquoi elles sont n\u00e9cessaires. Pour un junior, cela aurait encore \u00e9t\u00e9 compr\u00e9hensible, mais pour un poste de senior, ce n'\u00e9tait pas acceptable. Comment ce d\u00e9veloppeur aurait-il pu r\u00e9soudre des bugs dans une cha\u00eene complexe de promesses et expliquer aux autres ce qu'il avait fait ?<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h4>Les d\u00e9veloppeurs consid\u00e8rent le code pr\u00eat comme une \u00e9vidence.<\/h4>\n<p>\nDans le processus de d\u00e9veloppement, nous faisons constamment face \u00e0 des mat\u00e9riaux reproductibles. Nous d\u00e9pla\u00e7ons des morceaux de code pour ne pas avoir \u00e0 les r\u00e9\u00e9crire \u00e0 chaque fois. Ainsi, en concentrant toute notre attention sur les parties cl\u00e9s, nous voyons le code pr\u00eat avec lequel nous travaillons comme quelque chose d'\u00e9vident \u2013 nous supposons simplement qu'il fonctionnera comme il se doit.<\/p>\n<p>Et en g\u00e9n\u00e9ral, cela fonctionne vraiment, mais lorsque des difficult\u00e9s surviennent, comprendre sa m\u00e9canique en vaut largement la peine.<\/p>\n<p>Ainsi, notre candidat pour le poste de d\u00e9veloppeur senior consid\u00e9rait les objets promise comme \u00e9vidents. Il devait imaginer comment les g\u00e9rer lorsqu'ils apparaissent dans du code d'un autre, mais il ne comprenait pas le principe g\u00e9n\u00e9ral et n'a pas pu le reproduire lors de l'entretien. Peut-\u00eatre avait-il m\u00e9moris\u00e9 un extrait par c\u0153ur \u2013 ce n'est pas si difficile :<\/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>\nJe l'ai fait aussi - et nous l'avons probablement tous fait un jour. Nous apprenions simplement un morceau de code pour l'utiliser ensuite au travail, n'ayant qu'une id\u00e9e g\u00e9n\u00e9rale de son fonctionnement. Mais si un d\u00e9veloppeur comprenait vraiment le concept, il n'aurait rien \u00e0 m\u00e9moriser - il saurait simplement comment cela fonctionne et reproduirait tout ce qu'il faut dans le code sans effort.<\/p>\n<h4>Retournez \u00e0 l'origine<\/h4>\n<p>\nEn 2012, quand le r\u00e8gne des frameworks front-end n'\u00e9tait pas encore install\u00e9, jQuery dominait le monde et je lisais un livre <noindex><a rel=\"nofollow\" href=\"https:\/\/www.manning.com\/books\/secrets-of-the-javascript-ninja\">Secrets of the JavaScript Ninja<\/a><\/noindex>, \u00e9crit par John Resig, le cr\u00e9ateur de jQuery.<\/p>\n<p>Le livre enseigne au lecteur comment cr\u00e9er son propre jQuery \u00e0 partir de z\u00e9ro et offre une occasion unique de comprendre le cheminement de pens\u00e9e qui a conduit \u00e0 la cr\u00e9ation de la biblioth\u00e8que. Bien que jQuery ait perdu de sa popularit\u00e9 ces derni\u00e8res ann\u00e9es, je recommande tout de m\u00eame ce livre. Ce qui m'a le plus frapp\u00e9, c'est ce sentiment persistant que j'aurais pu y penser moi-m\u00eame. Les \u00e9tapes d\u00e9crites par l'auteur semblaient tellement logiques, tellement claires que j'ai s\u00e9rieusement commenc\u00e9 \u00e0 croire que je pourrais facilement cr\u00e9er jQuery si je m'y mettais.<\/p>\n<p>Bien s\u00fbr, dans la r\u00e9alit\u00e9, je n'aurais rien accompli de tel - je penserais que c'\u00e9tait trop difficile. Mes propres solutions me sembleraient trop simples et na\u00efves pour fonctionner, et j'abandonnerais. Je consid\u00e9rerais jQuery comme quelque chose d'\u00e9vident dans lequel il faut croire aveugl\u00e9ment. Par la suite, il est peu probable que je perde du temps \u00e0 comprendre la m\u00e9canique de cette biblioth\u00e8que et je l'utiliserais simplement comme une bo\u00eete noire.<\/p>\n<p>Mais d\u00e9couvrir ce livre m'a chang\u00e9. J'ai commenc\u00e9 \u00e0 examiner le code source et j'ai d\u00e9couvert que la mise en \u0153uvre de nombreuses solutions est en r\u00e9alit\u00e9 tr\u00e8s claire, voire \u00e9vidente. Non, bien s\u00fbr, parvenir \u00e0 un tel r\u00e9sultat par soi-m\u00eame rel\u00e8ve d'un autre domaine. Mais l'\u00e9tude du code des autres et la reproduction de solutions d\u00e9j\u00e0 existantes nous aident \u00e0 inventer quelque chose de nouveau. <\/p>\n<p>L'inspiration que vous tirerez et les sch\u00e9mas que vous commencerez \u00e0 remarquer vous transformeront en tant que d\u00e9veloppeur. Vous d\u00e9couvrirez que cette magnifique biblioth\u00e8que que vous utilisez constamment, et que vous avez pris l'habitude de consid\u00e9rer comme un artefact magique, fonctionne en r\u00e9alit\u00e9 non pas gr\u00e2ce \u00e0 la magie, mais r\u00e9sout simplement un probl\u00e8me de mani\u00e8re concise et astucieuse.<\/p>\n<p>Parfois, vous devrez vous attarder sur le code, en l'examinant pas \u00e0 pas, mais c'est exactement ainsi, en avan\u00e7ant par petites \u00e9tapes successives, que vous pourrez reproduire le chemin de l'auteur vers la solution. Cela vous permettra de plonger plus profond\u00e9ment dans le processus d'\u00e9criture de code et vous donnera plus de confiance dans la recherche de vos propres solutions.<\/p>\n<p>Quand j'ai commenc\u00e9 \u00e0 travailler avec des promesses, j'avais l'impression que c'\u00e9tait de la magie pure. Puis j'ai appris que leur fonctionnement repose sur les m\u00eames callbacks, et mon univers de d\u00e9veloppeur a \u00e9t\u00e9 boulevers\u00e9. C'est-\u00e0-dire que le sch\u00e9ma dont le but est de nous lib\u00e9rer des callbacks est en r\u00e9alit\u00e9 r\u00e9alis\u00e9 gr\u00e2ce \u00e0 des callbacks ?!<\/p>\n<p>Cela m'a aid\u00e9 \u00e0 voir les choses sous un autre angle et \u00e0 r\u00e9aliser que je n'avais pas devant moi de morceaux de code obscurs d'une complexit\u00e9 insurmontable. Ce ne sont que des sch\u00e9mas que l'on peut comprendre facilement avec la curiosit\u00e9 appropri\u00e9e et une immersion profonde. C'est ainsi que les gens apprennent \u00e0 programmer et grandissent en tant que d\u00e9veloppeurs.<\/p>\n<h4>R\u00e9inventez la roue.<\/h4>\n<p>\nN'h\u00e9sitez pas \u00e0 r\u00e9inventer des roues : \u00e9crivez vous-m\u00eame le code pour lier des donn\u00e9es, cr\u00e9ez une promesse maison ou m\u00eame \u00e9laborez votre propre solution pour la gestion des \u00e9tats. <br \/>\nPeu importe que personne n'utilise cela un jour \u2013 vous savez maintenant le faire. Et si vous avez l'occasion d'utiliser ces travaux dans vos propres projets par la suite, c'est encore mieux. Vous pourrez les d\u00e9velopper et apprendre encore plus.<\/p>\n<p>L'id\u00e9e ici n'est pas d'envoyer votre code en production, mais d'apprendre quelque chose de nouveau. \u00c9crire vous-m\u00eame l'impl\u00e9mentation d'une solution existante est un excellent moyen d'apprendre des meilleurs programmeurs et de perfectionner votre art.<br \/>\n<br \/>Source : <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.2 - 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\/fr\/blog\/news\/pochemu-polezno-izobretat-kolyosa\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\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\/fr\/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\udd47Pourquoi est-il utile de r\u00e9inventer la roue | ProHoster","description":"L'autre jour, j'ai men\u00e9 un entretien avec un d\u00e9veloppeur.","canonical_url":"https:\/\/prohoster.info\/fr\/blog\/news\/pochemu-polezno-izobretat-kolyosa","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"fr_FR","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\/fr\/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\/fr\/wp-json\/wp\/v2\/posts\/39071","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/comments?post=39071"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/39071\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media\/29315"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=39071"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=39071"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=39071"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}