<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[CodeRoad - Blog]]></title><description><![CDATA[Kurs JavaScript Online - Blog]]></description><link>https://blog.coderoad.pl/</link><image><url>https://blog.coderoad.pl/favicon.png</url><title>CodeRoad - Blog</title><link>https://blog.coderoad.pl/</link></image><generator>Ghost 5.72</generator><lastBuildDate>Thu, 16 Apr 2026 00:03:13 GMT</lastBuildDate><atom:link href="https://blog.coderoad.pl/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[Wracam z sesjami Q&A! 🎉]]></title><description><![CDATA[<p></p><h3 id="na-pocz%C4%85tek-troch%C4%99-nostalgii-poprzednie-sesje-%F0%9F%AA%A6">Na pocz&#x105;tek troch&#x119; nostalgii (poprzednie sesje &#x1FAA6;)</h3><p>Mo&#x17C;e niekt&#xF3;rzy z Was pami&#x119;taj&#x105; lata 2020, 2021 i 2022 gdzie plus minus co tydzie&#x144; spotykali&#x15B;my si&#x119; na sesjach Q&amp;A na YT i rozmawiali&#x15B;my o</p>]]></description><link>https://blog.coderoad.pl/wracam-z-sesjami-q-a/</link><guid isPermaLink="false">67b2410ade0679000187be9c</guid><dc:creator><![CDATA[Mateusz Choma]]></dc:creator><pubDate>Sun, 16 Feb 2025 20:32:36 GMT</pubDate><content:encoded><![CDATA[<p></p><h3 id="na-pocz%C4%85tek-troch%C4%99-nostalgii-poprzednie-sesje-%F0%9F%AA%A6">Na pocz&#x105;tek troch&#x119; nostalgii (poprzednie sesje &#x1FAA6;)</h3><p>Mo&#x17C;e niekt&#xF3;rzy z Was pami&#x119;taj&#x105; lata 2020, 2021 i 2022 gdzie plus minus co tydzie&#x144; spotykali&#x15B;my si&#x119; na sesjach Q&amp;A na YT i rozmawiali&#x15B;my o pocz&#x105;tkach programowania oraz o problemach z kodem, jakie napotkali&#x15B;cie podczas nauki.</p><p>W ramach wspominania dobrych czas&#xF3;w podrzucam linki:</p><ul><li>do pierwszej z nich: <a href="https://www.youtube.com/watch?v=vhaU7OCfle0&amp;ref=blog.coderoad.pl">https://www.youtube.com/watch?v=vhaU7OCfle0</a></li><li>i do 53, czyli ostatniej z serii <a href="https://www.youtube.com/watch?v=IerQUrAmcko&amp;ref=blog.coderoad.pl">https://www.youtube.com/watch?v=IerQUrAmcko</a></li></ul><p>Przez lata 2023 i 2024 razem z narzeczon&#x105; byli&#x15B;my zaj&#x119;ci spe&#x142;nianiem naszych marze&#x144; o domu na czterech ko&#x142;ach. </p><p>Teraz gdy ju&#x17C; od p&#xF3;&#x142; roku mieszkamy w naszym kamperze, mo&#x17C;emy wr&#xF3;ci&#x107; do wi&#x119;kszej obecno&#x15B;ci w sieci &#x1F600;</p><h3 id="powr%C3%B3t-do-tera%C5%BAniejszo%C5%9Bci-nowe-sesje-%F0%9F%8E%89">Powr&#xF3;t do tera&#x17A;niejszo&#x15B;ci (nowe sesje &#x1F389;)</h3><p>Sesje b&#x119;d&#x105; organizowane na YT tak jak dotychczas, z t&#x105; r&#xF3;&#x17C;nic&#x105;, &#x17C;e pyta&#x144; nie b&#x119;d&#x119; zbiera&#x142; przez grup&#x119; na FB, a przez maila &#x2014; przed sesj&#x105; b&#x119;dzie formularz :)  Oczywi&#x15B;cie b&#x119;d&#x119; przyjmowa&#x107; te&#x17C; pytania w trakcie!</p><p><strong>B&#x119;dziemy si&#x119; widzie&#x107; co drugi czwartek o godzinie 20:00. W razie zmiany termin&#xF3;w lub jakich&#x15B; przesuni&#x119;&#x107; b&#x119;d&#x119; pisa&#x107; z wyprzedzeniem na mailu.</strong></p><p>Link do sesji b&#x119;d&#x119; r&#xF3;wnie&#x17C; podsy&#x142;a&#x142; mailem. </p><p><strong>&#x1F447; WA&#x17B;NE! &#x1F447; </strong></p><p>Rozumiem, &#x17C;e nie wszyscy z Was pami&#x119;taj&#x105; sesje z 2020 roku i nie wszyscy b&#x119;d&#x105; nimi zainteresowani. Nie zamierzam te&#x17C; wszystkich spamowa&#x107; powiadomieniami co tydzie&#x144;. Zamierzam jeszcze przypomnie&#x107; si&#x119; przed pierwsz&#x105; sesj&#x105;, ale dalsz&#x105; komunikacj&#x119; b&#x119;d&#x119; prowadzi&#x142; przez now&#x105; list&#x119; mailingow&#x105; dedykowan&#x105; sesjom Q&amp;A:</p><div class="kg-card kg-button-card kg-align-center"><a href="https://blog.coderoad.pl/wracam-z-sesjami-q-a/#/portal" class="kg-btn kg-btn-accent">Zapisz si&#x119; na list&#x119; mailingow&#x105; sesji Q&amp;A o programowaniu &#x1F468;&#x200D;&#x1F4BB;</a></div><p><strong>&#x1F446; WA&#x17B;NE! &#x1F446;</strong></p><h3 id="dlaczego-co-dwa-tygodnie-a-nie-co-tydzie%C5%84">Dlaczego co dwa tygodnie, a nie co tydzie&#x144;? </h3><p>Wynika to z faktu, &#x17C;e co drugi tydzie&#x144; b&#x119;dziemy razem z narzeczon&#x105; robi&#x107; sesje o vanlife! &#x1F690; </p><p>Wi&#x119;c je&#x15B;li interesuj&#x105; Ci&#x119; vanlifowe klimaty, paca zdalna, podr&#xF3;&#x17C;e i &#x17C;ycie full-time w kamperze to koniecznie zapisz si&#x119; r&#xF3;wnie&#x17C; na osobn&#x105; list&#x119; mailingow&#x105; dedykowan&#x105; naszym przygodom w kamperze:</p><div class="kg-card kg-button-card kg-align-center"><a href="https://zbudujsamkampera.pl/?ref=blog.coderoad.pl#/portal" class="kg-btn kg-btn-accent">Zapisz si&#x119; na list&#x119; mailingow&#x105; sesji Q&amp;A o vanlife &#x1F690;</a></div><p>Opr&#xF3;cz tego obejrzyj:</p><ul><li>YT short &quot;o nas&quot;: <a href="https://youtube.com/shorts/4nOZQRtoCzg?feature=share&amp;ref=blog.coderoad.pl">https://youtube.com/shorts/4nOZQRtoCzg</a></li><li>filmik o pierwszej wersji naszego kampera: <a href="https://www.youtube.com/watch?v=YdiY0itr5zs&amp;ref=blog.coderoad.pl" rel="external nofollow noopener">https://www.youtube.com/watch?v=YdiY0itr5zs</a></li><li>van tour po (prawie) sko&#x144;czonym kamperze ju&#x17C; po przeprowadzce: <a href="https://www.youtube.com/watch?v=WDah4WakVNk&amp;ref=blog.coderoad.pl">https://www.youtube.com/watch?v=WDah4WakVNk</a></li></ul><h3 id="najbli%C5%BCsze-sesje">Najbli&#x17C;sze sesje:</h3><ul><li>vanlife: 20 lutego 2025 (zapisz si&#x119; tu: <a href="https://zbudujsamkampera.pl/?ref=blog.coderoad.pl">https://zbudujsamkampera.pl</a>)</li><li>programowanie: 27 lutego 2025 (zapisz si&#x119; powy&#x17C;ej)</li></ul><h3 id="do-zobaczenia-%F0%9F%91%8B"><strong>Do zobaczenia! &#x1F44B;</strong></h3><p></p>]]></content:encoded></item><item><title><![CDATA[Moduł 21 – Podstawy testowania komponentów w React]]></title><description><![CDATA[<figure class="kg-card kg-image-card"><img src="https://s3-eu-central-1.amazonaws.com/blog-coderoad-pl/2023/06/RiLQ80KBRM2ZMu2f8mPw_THREE-LINER.jpeg" class="kg-image" alt loading="lazy" width="380" height="213"></figure><p>Modu&#x142; kursu o numerze 21, zatytu&#x142;owany &quot;Podstawy testowania komponent&#xF3;w w React&quot;, skupia si&#x119; na nauce podstawowych technik testowania komponent&#xF3;w w React. W tym module odkryjesz r&#xF3;&#x17C;ne biblioteki i narz&#x119;dzia, kt&#xF3;re pomog&#x105; Ci</p>]]></description><link>https://blog.coderoad.pl/modul-21-podstawy-testowania-komponentow-w-react/</link><guid isPermaLink="false">6550c92a9383a90001a7696a</guid><category><![CDATA[Kurs front-end]]></category><category><![CDATA[Program kursu]]></category><dc:creator><![CDATA[Mateusz Choma]]></dc:creator><pubDate>Sun, 04 Jun 2023 14:03:55 GMT</pubDate><media:content url="https://s3-eu-central-1.amazonaws.com/blog-coderoad-pl/2023/11/RiLQ80KBRM2ZMu2f8mPw_THREE-LINER.jpeg" medium="image"/><content:encoded><![CDATA[<figure class="kg-card kg-image-card"><img src="https://s3-eu-central-1.amazonaws.com/blog-coderoad-pl/2023/06/RiLQ80KBRM2ZMu2f8mPw_THREE-LINER.jpeg" class="kg-image" alt="Modu&#x142; 21 &#x2013; Podstawy testowania komponent&#xF3;w w React" loading="lazy" width="380" height="213"></figure><img src="https://s3-eu-central-1.amazonaws.com/blog-coderoad-pl/2023/11/RiLQ80KBRM2ZMu2f8mPw_THREE-LINER.jpeg" alt="Modu&#x142; 21 &#x2013; Podstawy testowania komponent&#xF3;w w React"><p>Modu&#x142; kursu o numerze 21, zatytu&#x142;owany &quot;Podstawy testowania komponent&#xF3;w w React&quot;, skupia si&#x119; na nauce podstawowych technik testowania komponent&#xF3;w w React. W tym module odkryjesz r&#xF3;&#x17C;ne biblioteki i narz&#x119;dzia, kt&#xF3;re pomog&#x105; Ci pisa&#x107; skuteczne testy jednostkowe i testy end-to-end dla Twoich komponent&#xF3;w React.</p><h3 id="%F0%9F%93%9A-zawarto%C5%9B%C4%87-modu%C5%82u">&#x1F4DA; Zawarto&#x15B;&#x107; modu&#x142;u</h3><p>Modu&#x142; &quot;Podstawy testowania komponent&#xF3;w w React&quot; jest podzielony na 8 lekcji:</p><ol><li><strong>Wst&#x119;p</strong>: Zapoznaj si&#x119; z tematyk&#x105; testowania komponent&#xF3;w w React i dowiedz si&#x119;, dlaczego jest to wa&#x17C;ny element procesu tworzenia aplikacji.</li><li><strong>JSDOM</strong>: Poznaj bibliotek&#x119; JSDOM, kt&#xF3;ra umo&#x17C;liwia symulowanie &#x15B;rodowiska przegl&#x105;darki w testach jednostkowych dla komponent&#xF3;w React.</li><li><strong>Enzyme</strong>: Naucz si&#x119; korzysta&#x107; z biblioteki Enzyme, kt&#xF3;ra zapewnia przyjazne API do testowania komponent&#xF3;w React poprzez manipulacj&#x119; ich struktur&#x105; i stanem.</li><li><strong>Enzyme with hooks</strong>: Przejd&#x17A; dalej i odkryj, jak testowa&#x107; komponenty u&#x17C;ywaj&#x105;ce hook&#xF3;w za pomoc&#x105; biblioteki Enzyme.</li><li><strong>React Testing Library</strong>: Poznaj inn&#x105; popularn&#x105; bibliotek&#x119; testow&#x105;, React Testing Library, kt&#xF3;ra promuje testowanie komponent&#xF3;w z perspektywy u&#x17C;ytkownika ko&#x144;cowego.</li><li><strong>React Testing Library &#x2013; getByTestId</strong>: Dowiedz si&#x119;, jak wykorzysta&#x107; funkcj&#x119; getByTestId z React Testing Library do wybierania element&#xF3;w w testach i sprawdzania ich zawarto&#x15B;ci.</li><li><strong>React Testing Library &#x2013; Snapshot testing</strong>: Zapoznaj si&#x119; z technik&#x105; testowania z u&#x17C;yciem snapshot&#xF3;w w React Testing Library, kt&#xF3;ra pozwala na por&#xF3;wnywanie wynik&#xF3;w renderowania komponent&#xF3;w z oczekiwaniami.</li><li><strong>E2E tests &#x2013; Cypress</strong>: Przejd&#x17A; do test&#xF3;w end-to-end (E2E) za pomoc&#x105; narz&#x119;dzia Cypress i dowiedz si&#x119;, jak pisa&#x107; testy, kt&#xF3;re symuluj&#x105; interakcje u&#x17C;ytkownika z Twoimi komponentami React.</li></ol><h3 id="%F0%9F%91%80-zobacz-przyk%C5%82adow%C4%85-lekcj%C4%99-z-tego-modu%C5%82u-kursu">&#x1F440; Zobacz przyk&#x142;adow&#x105; lekcj&#x119; z tego modu&#x142;u kursu:</h3><figure class="kg-card kg-embed-card"><iframe width="200" height="150" src="https://www.youtube.com/embed/BIHNEwFoT7Q?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen title="CodeRoad,pl | Modu&#x142; 21 &#x2013; Podstawy testowania komponent&#xF3;w w React | 08. E2E tests &#x2013; Cypress"></iframe></figure><h3 id="%F0%9F%91%A8%E2%80%8D%F0%9F%92%BB-zobacz-przyk%C5%82adowy-kod-z-tej-lekcji"><strong>&#x1F468;&#x200D;&#x1F4BB; Zobacz przyk&#x142;adowy kod z tej lekcji:</strong></h3><figure class="kg-card kg-embed-card"><iframe width="1000" height="500" src="https://codesandbox.io/embed/github/coderoadpl/frontend--testing-react--task-6/tree/master/?fontsize=14&amp;hidenavigation=1&amp;theme=dark" style="width:1000px; height:500px; border:0; border-radius: 4px; overflow:hidden;" sandbox="allow-modals allow-forms allow-popups allow-scripts allow-same-origin"></iframe></figure><h3 id="%F0%9F%92%B8-kup-kurs">&#x1F4B8; Kup kurs</h3><p>Kup ca&#x142;y kurs CodeRoad &#x2013; <a href="https://coderoad.pl/?ref=blog.coderoad.pl">TUTAJ</a></p><p>Kup ten modu&#x142; kursu &#x2013; <a href="https://coderoad.thinkific.com/enroll/1505107?price_id=1856548&amp;ref=blog.coderoad.pl">TUTAJ</a></p><h4 id="%F0%9F%92%AA-odbierz-bezp%C5%82atny-kurs">&#x1F4AA; Odbierz bezp&#x142;atny kurs!</h4>
<!--kg-card-begin: html-->
<div class="ml-embedded" data-form="VpNCE8"></div>
<!--kg-card-end: html-->
]]></content:encoded></item><item><title><![CDATA[Moduł 20 – Efekty asynchroniczne w Redux]]></title><description><![CDATA[<figure class="kg-card kg-image-card"><img src="https://s3-eu-central-1.amazonaws.com/blog-coderoad-pl/2023/06/z1dKfj9iS46mRMtFZ0l1_THREE-LINER--1-.jpeg" class="kg-image" alt loading="lazy" width="380" height="213"></figure><p>Ten modu&#x142; po&#x15B;wi&#x119;cony jest rozwi&#x105;zywaniu problem&#xF3;w zwi&#x105;zanych z asynchronicznymi operacjami w zarz&#x105;dzaniu stanem aplikacji za pomoc&#x105; biblioteki Redux.</p><p>Nauczysz si&#x119;, jak skutecznie obs&#x142;ugiwa&#x107; operacje asynchroniczne w Redux, takie jak &#x142;adowanie danych</p>]]></description><link>https://blog.coderoad.pl/modul-20-efekty-asynchroniczne-w-redux/</link><guid isPermaLink="false">6550c92a9383a90001a76969</guid><category><![CDATA[Kurs front-end]]></category><category><![CDATA[Program kursu]]></category><dc:creator><![CDATA[Mateusz Choma]]></dc:creator><pubDate>Sun, 04 Jun 2023 13:59:43 GMT</pubDate><media:content url="https://s3-eu-central-1.amazonaws.com/blog-coderoad-pl/2023/06/z1dKfj9iS46mRMtFZ0l1_THREE-LINER--1--1.jpeg" medium="image"/><content:encoded><![CDATA[<figure class="kg-card kg-image-card"><img src="https://s3-eu-central-1.amazonaws.com/blog-coderoad-pl/2023/06/z1dKfj9iS46mRMtFZ0l1_THREE-LINER--1-.jpeg" class="kg-image" alt="Modu&#x142; 20 &#x2013; Efekty asynchroniczne w Redux" loading="lazy" width="380" height="213"></figure><img src="https://s3-eu-central-1.amazonaws.com/blog-coderoad-pl/2023/06/z1dKfj9iS46mRMtFZ0l1_THREE-LINER--1--1.jpeg" alt="Modu&#x142; 20 &#x2013; Efekty asynchroniczne w Redux"><p>Ten modu&#x142; po&#x15B;wi&#x119;cony jest rozwi&#x105;zywaniu problem&#xF3;w zwi&#x105;zanych z asynchronicznymi operacjami w zarz&#x105;dzaniu stanem aplikacji za pomoc&#x105; biblioteki Redux.</p><p>Nauczysz si&#x119;, jak skutecznie obs&#x142;ugiwa&#x107; operacje asynchroniczne w Redux, takie jak &#x142;adowanie danych z serwera czy wysy&#x142;anie &#x17C;&#x105;da&#x144; HTTP. Przejdziemy przez wszystkie istotne zagadnienia, kt&#xF3;re pozwol&#x105; Ci opanowa&#x107; efekty asynchroniczne w kontek&#x15B;cie Redux.</p><p>Rozpoczniemy od wprowadzenia do tematu i zrozumienia, dlaczego obs&#x142;uga operacji asynchronicznych w Redux mo&#x17C;e by&#x107; wyzwaniem. Nast&#x119;pnie skupimy si&#x119; na praktycznych aspektach, takich jak tworzenie akcji asynchronicznych przy u&#x17C;yciu biblioteki Redux Thunk, kt&#xF3;ra pozwol&#x105; Ci &#x142;atwo tworzy&#x107; akcje asynchroniczne w Redux.</p><p>W ramach modu&#x142;u stworzysz r&#xF3;wnie&#x17C; funkcj&#x119; pomocnicz&#x105; o nazwie <code>createAsyncDuck</code>, kt&#xF3;ra u&#x142;atwi tworzenie asynchronicznych akcji w Redux, wraz z obs&#x142;ug&#x105; stan&#xF3;w &#x142;adowania i b&#x142;&#x119;d&#xF3;w &#x2013; idealne narz&#x119;dzie do wysy&#x142;ania zapyta&#x144; HTTP przy pomocy Redux i Redux Thunk oraz Redux Duck.</p><p>B&#x119;dziesz mia&#x142;/a r&#xF3;wnie&#x17C; okazj&#x119; praktycznie zastosowa&#x107; zdobyt&#x105; wiedz&#x119;, uczestnicz&#x105;c w projekcie praktycznym. Zaprojektujesz aplikacj&#x119;, kt&#xF3;ra b&#x119;dzie sprawdza&#x107;, czy u&#x17C;ytkownik jest administratorem, stworzysz routing dla panelu administracyjnego, zaprojektujesz uk&#x142;ad administracyjny, a tak&#x17C;e b&#x119;dziesz obs&#x142;ugiwa&#x107; r&#xF3;&#x17C;ne operacje na lekcjach i kursach.</p><h3 id="-zawarto-modu-u">&#x1F4DA; Zawarto&#x15B;&#x107; modu&#x142;u</h3><p>Modu&#x142; &quot;Efekty asynchroniczne w Redux&quot; jest podzielony na 16 lekcji:</p><ol><li><strong>Introduction + loading users app</strong>: Rozpocznijmy ten modu&#x142; od wprowadzenia do tematu oraz stworzenia aplikacji wczytuj&#x105;cej asynchronicznie u&#x17C;ytkownik&#xF3;w, na kt&#xF3;rej b&#x119;dziemy pracowa&#x107; dalej.</li><li><strong>Loading users with Redux</strong>: Przeniesiemy &#x142;adowanie danych u&#x17C;ytkownik&#xF3;w do Redux.</li><li><strong>Loading users with Redux Thunk</strong>: Skorzystamy z biblioteki Redux Thunk, aby usprawni&#x107; &#x142;adowanie danych u&#x17C;ytkownik&#xF3;w w Redux.</li><li><strong>Redux flow on diagrams</strong>: Zobacz, jak przedstawi&#x107; przep&#x142;yw danych w Redux za pomoc&#x105; diagram&#xF3;w, aby lepiej zrozumie&#x107; i wizualizowa&#x107; operacje wykonywane na stanach.</li><li><strong>createAsyncDuck</strong>: Stworzymy r&#xF3;wnie&#x17C; funkcj&#x119; pomocnicz&#x105; o nazwie <code>createAsyncDuck</code>, kt&#xF3;ra u&#x142;atwi tworzenie asynchronicznych akcji w Redux, wraz z obs&#x142;ug&#x105; stan&#xF3;w &#x142;adowania i b&#x142;&#x119;d&#xF3;w.</li><li><strong>Actions with setTimeout</strong>: Przeanalizujmy dzia&#x142;anie funkcji setTimeout w kontek&#x15B;cie akcji Redux, aby op&#xF3;&#x17A;nia&#x107; i kontrolowa&#x107; wywo&#x142;anie akcji.</li><li><strong>Callback on createAsyncDuck</strong>: Wykorzystamy callbacki w <code>createAsyncDuck</code>.</li><li><strong>Project 0.0 checking if user is admin</strong>: W projekcie praktycznym zaprojektujemy funkcjonalno&#x15B;&#x107; sprawdzania, czy u&#x17C;ytkownik jest administratorem.</li><li><strong>Project 0.1 Admin routes</strong>: Skonfigurujemy routing dla panelu administracyjnego.</li><li><strong>Project 0.2 Admin layout</strong>: Stworzymy funkcjonalny uk&#x142;ad dla panelu administracyjnego w projekcie.</li><li><strong>Project 0.3 Lessons &#x2013; getAll</strong>: Zajmiemy si&#x119; pobieraniem lekcji w projekcie z wykorzystaniem Redux.</li><li><strong>Project 0.4 Lessons &#x2013; create</strong>: Dowiemy si&#x119;, jak tworzy&#x107; nowe lekcje i zintegrujemy te operacje z Redux.</li><li><strong>Project 0.5 Lessons &#x2013; update</strong>: Nauczymy si&#x119; aktualizowa&#x107; istniej&#x105;ce lekcje w projekcie, wykorzystuj&#x105;c Redux.</li><li><strong>Project 0.6 Lessons &#x2013; remove</strong>: Opanujemy operacje usuwania lekcji w projekcie, korzystaj&#x105;c z Redux.</li><li><strong>Project 0.7 Courses</strong>: Stworzymy panel do zarz&#x105;dzania kursami (zawieraj&#x105;cymi lekcje).</li><li><strong>Project 0.8 Deployment</strong>: Wdro&#x17C;ymy aplikacj&#x119; na serwer, aby by&#x142;a dost&#x119;pna publicznie i gotowa do u&#x17C;ytku.</li></ol><h3 id="-zobacz-przyk-adow-lekcj-z-tego-modu-u-kursu-">&#x1F440; Zobacz przyk&#x142;adow&#x105; lekcj&#x119; z tego modu&#x142;u kursu:</h3><figure class="kg-card kg-embed-card"><iframe width="200" height="113" src="https://www.youtube.com/embed/uNN6ASPTFkw?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen title="CodeRoad,pl przyk&#x142;adowa lekcja | Modu&#x142; 20 &#x2013; Efekty asynchroniczne w  Redux | 05. createAsyncDuck"></iframe></figure><h3 id="-zobacz-przyk-adowy-kod-z-tej-lekcji-"><strong>&#x1F468;&#x200D;&#x1F4BB; Zobacz przyk&#x142;adowy kod z tej lekcji:</strong></h3><figure class="kg-card kg-embed-card"><iframe width="1000" height="500" src="https://codesandbox.io/embed/github/coderoadpl/frontend--redux-async--task-4/tree/master/?fontsize=14&amp;hidenavigation=1&amp;theme=dark" style="width:1000px; height:500px; border:0; border-radius: 4px; overflow:hidden;" sandbox="allow-modals allow-forms allow-popups allow-scripts allow-same-origin"></iframe></figure><h3 id="-kup-kurs">&#x1F4B8; Kup kurs</h3><p>Kup ca&#x142;y kurs CodeRoad &#x2013; <a href="https://coderoad.pl/?ref=blog.coderoad.pl">TUTAJ</a></p><p>Kup ten modu&#x142; kursu &#x2013; <a href="https://coderoad.thinkific.com/enroll/1505116?price_id=1856557&amp;ref=blog.coderoad.pl">TUTAJ</a></p><h4 id="-odbierz-bezp-atny-kurs-">&#x1F4AA; Odbierz bezp&#x142;atny kurs!</h4><!--kg-card-begin: html--><div class="ml-embedded" data-form="VpNCE8"></div><!--kg-card-end: html-->]]></content:encoded></item><item><title><![CDATA[Moduł 19 – Redux i wykorzystanie go w React]]></title><description><![CDATA[<figure class="kg-card kg-image-card"><img src="https://s3-eu-central-1.amazonaws.com/blog-coderoad-pl/2023/06/FA1LAb7ZTgmhC4FQ60Qo_ONE-LINER--1-.jpeg" class="kg-image" alt loading="lazy" width="380" height="213"></figure><p>Ten modu&#x142; kursu programowania po&#x15B;wi&#x119;cony jest jednej z najpopularniejszych bibliotek do zarz&#x105;dzania stanem aplikacji w &#x15B;rodowisku React &#x2014; Redux.</p><p>Czy zdarzy&#x142;o Ci si&#x119; kiedy&#x15B; utkn&#x105;&#x107; w pu&#x142;apce rozbudowanych komponent&#xF3;w, przekazywania stanu w</p>]]></description><link>https://blog.coderoad.pl/modul-19-redux-i-wykorzystanie-go-w-react/</link><guid isPermaLink="false">6550c92a9383a90001a76968</guid><category><![CDATA[Kurs front-end]]></category><category><![CDATA[Program kursu]]></category><dc:creator><![CDATA[Mateusz Choma]]></dc:creator><pubDate>Sun, 04 Jun 2023 13:45:02 GMT</pubDate><media:content url="https://s3-eu-central-1.amazonaws.com/blog-coderoad-pl/2023/06/FA1LAb7ZTgmhC4FQ60Qo_ONE-LINER--1--1.jpeg" medium="image"/><content:encoded><![CDATA[<figure class="kg-card kg-image-card"><img src="https://s3-eu-central-1.amazonaws.com/blog-coderoad-pl/2023/06/FA1LAb7ZTgmhC4FQ60Qo_ONE-LINER--1-.jpeg" class="kg-image" alt="Modu&#x142; 19 &#x2013; Redux i wykorzystanie go w React" loading="lazy" width="380" height="213"></figure><img src="https://s3-eu-central-1.amazonaws.com/blog-coderoad-pl/2023/06/FA1LAb7ZTgmhC4FQ60Qo_ONE-LINER--1--1.jpeg" alt="Modu&#x142; 19 &#x2013; Redux i wykorzystanie go w React"><p>Ten modu&#x142; kursu programowania po&#x15B;wi&#x119;cony jest jednej z najpopularniejszych bibliotek do zarz&#x105;dzania stanem aplikacji w &#x15B;rodowisku React &#x2014; Redux.</p><p>Czy zdarzy&#x142;o Ci si&#x119; kiedy&#x15B; utkn&#x105;&#x107; w pu&#x142;apce rozbudowanych komponent&#xF3;w, przekazywania stanu w d&#xF3;&#x142; drzewa komponent&#xF3;w, czy utraty kontroli nad zarz&#x105;dzaniem stanem aplikacji? Je&#x15B;li tak, to Redux mo&#x17C;e by&#x107; rozwi&#x105;zaniem, kt&#xF3;rego szukasz!</p><p>W ramach tego modu&#x142;u nauczysz si&#x119;, jak efektywnie korzysta&#x107; z Redux w po&#x142;&#x105;czeniu z React, aby tworzy&#x107; skalowalne, &#x142;atwe w zarz&#x105;dzaniu i utrzymaniu aplikacje. Przejdziemy przez wszystkie istotne zagadnienia, kt&#xF3;re pozwol&#x105; Ci opanowa&#x107; Redux i w pe&#x142;ni wykorzysta&#x107; jego potencja&#x142;.</p><p>Rozpoczniemy od wprowadzenia do Redux i zrozumienia, jak&#x105; rol&#x119; odgrywa w zarz&#x105;dzaniu stanem aplikacji. Nast&#x119;pnie przejdziemy do praktycznych aspekt&#xF3;w, takich jak tworzenie w&#x142;asnego kontenera stanu (store), integracja z React przy u&#x17C;yciu biblioteki react-redux, czy te&#x17C; wykorzystanie narz&#x119;dzi developerskich Redux do debugowania i monitorowania stanu.</p><p>Poznasz r&#xF3;wnie&#x17C; kluczowe zasady dzia&#x142;ania Redux, takie jak pojedyncze &#x17A;r&#xF3;d&#x142;o prawdy, stan tylko do odczytu i czysta funkcja reducera. Dowiesz si&#x119;, jak efektywnie korzysta&#x107; z funkcji combineReducers, aby &#x142;&#x105;czy&#x107; wiele reduktor&#xF3;w w jedno miejsce.</p><p>Podczas kursu b&#x119;dziesz mia&#x142;/a okazj&#x119; praktycznie zastosowa&#x107; zdobyt&#x105; wiedz&#x119;, tworz&#x105;c projekt listy zada&#x144; w Redux. B&#x119;dziesz m&#xF3;g&#x142;/a do&#x15B;wiadczy&#x107;, jak Redux u&#x142;atwia zarz&#x105;dzanie stanem aplikacji i zapewnia sp&#xF3;jno&#x15B;&#x107; danych.</p><h3 id="-zawarto-modu-u">&#x1F4DA; Zawarto&#x15B;&#x107; modu&#x142;u</h3><p>Modu&#x142; &quot;Redux i wykorzystanie go w React&quot; jest podzielony na 14 lekcji:</p><ol><li><strong>Wst&#x119;p</strong>: Wprowadzenie do Redux i om&#xF3;wienie jego roli w zarz&#x105;dzaniu stanem aplikacji.</li><li><strong>Simple state container &#x2013; own store</strong>: Tworzenie w&#x142;asnej prostej implementacji kontenera stanu w czystym JavaScript.</li><li><strong>Simple state container &#x2013; refactor</strong>: Refaktoryzacja kontenera stanu w Redux w celu poprawy czytelno&#x15B;ci.</li><li><strong>Instalacja</strong>: Proces instalacji biblioteki Redux i jej zale&#x17C;no&#x15B;ci.</li><li><strong>Redux duck proposal</strong>: Zapoznania si&#x119; z Redux Duck, kt&#xF3;re jest konwencj&#x105; organizacji kodu, plik&#xF3;w i katalog&#xF3;w w Redux.</li><li><strong>Devtools</strong>: Wykorzystanie narz&#x119;dzi developerskich Redux do debugowania i monitorowania stanu aplikacji.</li><li><strong>Integracja z React</strong>: Integrowanie biblioteki Redux z React w celu zarz&#x105;dzania stanem komponent&#xF3;w i re-renderowania podczas zmian stanu.</li><li><strong>react-redux</strong>: Wykorzystanie biblioteki react-redux do uproszczenia integracji Redux z React.</li><li><strong>Three Redux principles</strong>: Przedstawienie trzech fundamentalnych zasad Redux: pojedyncze &#x17A;r&#xF3;d&#x142;o prawdy, stan tylko do odczytu i czysta funkcja reducera.</li><li><strong>Lista zada&#x144; w Redux</strong>: Tworzenie prostego projektu listy zada&#x144; z wykorzystaniem Redux do zarz&#x105;dzania stanem.</li><li><strong>combineReducers</strong>: Wykorzystanie funkcji combineReducers w Redux do &#x142;&#x105;czenia wielu reducer&#xF3;w.</li><li><strong>State preloading and saving</strong>: Implementacja zapisywania i wczytywania wcze&#x15B;niej zapisanego stanu w Redux.</li><li><strong>Project 0.0 &#x2013; introducting redux to handle laoders</strong>: Wprowadzenie do projektu aplikacji kursowej biblioteki Redux do obs&#x142;ugi komponnet&#xF3;w &#x142;adowania (spinners/loaders).</li><li><strong>Projekt 0.1 &#x2013; refaktoryzacja</strong>: Refaktoryzacja kodu w projekcie.</li></ol><h3 id="-zobacz-przyk-adow-lekcj-z-tego-modu-u-kursu-">&#x1F440; Zobacz przyk&#x142;adow&#x105; lekcj&#x119; z tego modu&#x142;u kursu:</h3><figure class="kg-card kg-embed-card"><iframe width="200" height="150" src="https://www.youtube.com/embed/VMDYKbjtmjg?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen title="CodeRoad,pl przyk&#x142;adowa lekcja | Modu&#x142; 20 &#x2013; Redux | 10. ToDo list in Redux"></iframe></figure><h3 id="-zobacz-przyk-adowy-kod-z-tej-lekcji-"><strong>&#x1F468;&#x200D;&#x1F4BB; Zobacz przyk&#x142;adowy kod z tej lekcji:</strong></h3><figure class="kg-card kg-embed-card"><iframe width="1000" height="500" src="https://codesandbox.io/embed/github/coderoadpl/frontend--redux--task-7/tree/master/?fontsize=14&amp;hidenavigation=1&amp;theme=dark" style="width:1000px; height:500px; border:0; border-radius: 4px; overflow:hidden;" sandbox="allow-modals allow-forms allow-popups allow-scripts allow-same-origin"></iframe></figure><h3 id="-kup-kurs">&#x1F4B8; Kup kurs</h3><p>Kup ca&#x142;y kurs CodeRoad &#x2013; <a href="https://coderoad.pl/?ref=blog.coderoad.pl">TUTAJ</a></p><p>Kup ten modu&#x142; kursu &#x2013; <a href="https://coderoad.thinkific.com/enroll/1505109?price_id=1856550&amp;ref=blog.coderoad.pl">TUTAJ</a></p><h4 id="-odbierz-bezp-atny-kurs-">&#x1F4AA; Odbierz bezp&#x142;atny kurs!</h4><!--kg-card-begin: html--><div class="ml-embedded" data-form="VpNCE8"></div><!--kg-card-end: html-->]]></content:encoded></item><item><title><![CDATA[Moduł 18 – Material UI — ekosystem Reacta]]></title><description><![CDATA[<figure class="kg-card kg-image-card"><img src="https://s3-eu-central-1.amazonaws.com/blog-coderoad-pl/2023/06/jXSlwfFCRmOio3I71Tgn_ONE-LINER--1-.jpeg" class="kg-image" alt loading="lazy" width="380" height="213"></figure><p>Modu&#x142; kursu &quot;Material UI &#x2014; ekosystem Reacta&quot; skupia si&#x119; na wykorzystaniu biblioteki Material UI do tworzenia interfejs&#xF3;w w React.</p><h3 id="-zawarto-modu-u">&#x1F4DA; Zawarto&#x15B;&#x107; modu&#x142;u</h3><p>Modu&#x142; &quot;Material UI &#x2014; ekosystem Reacta&quot; jest podzielony na 24 lekcje:</p><ol><li><strong>Wst&#x119;p i</strong></li></ol>]]></description><link>https://blog.coderoad.pl/modul-18-material-ui-ekosystem-reacta/</link><guid isPermaLink="false">6550c92a9383a90001a76967</guid><category><![CDATA[Kurs front-end]]></category><category><![CDATA[Program kursu]]></category><dc:creator><![CDATA[Mateusz Choma]]></dc:creator><pubDate>Sun, 04 Jun 2023 13:32:30 GMT</pubDate><media:content url="https://s3-eu-central-1.amazonaws.com/blog-coderoad-pl/2023/06/jXSlwfFCRmOio3I71Tgn_ONE-LINER--1--1.jpeg" medium="image"/><content:encoded><![CDATA[<figure class="kg-card kg-image-card"><img src="https://s3-eu-central-1.amazonaws.com/blog-coderoad-pl/2023/06/jXSlwfFCRmOio3I71Tgn_ONE-LINER--1-.jpeg" class="kg-image" alt="Modu&#x142; 18 &#x2013; Material UI &#x2014; ekosystem Reacta" loading="lazy" width="380" height="213"></figure><img src="https://s3-eu-central-1.amazonaws.com/blog-coderoad-pl/2023/06/jXSlwfFCRmOio3I71Tgn_ONE-LINER--1--1.jpeg" alt="Modu&#x142; 18 &#x2013; Material UI &#x2014; ekosystem Reacta"><p>Modu&#x142; kursu &quot;Material UI &#x2014; ekosystem Reacta&quot; skupia si&#x119; na wykorzystaniu biblioteki Material UI do tworzenia interfejs&#xF3;w w React.</p><h3 id="-zawarto-modu-u">&#x1F4DA; Zawarto&#x15B;&#x107; modu&#x142;u</h3><p>Modu&#x142; &quot;Material UI &#x2014; ekosystem Reacta&quot; jest podzielony na 24 lekcje:</p><ol><li><strong>Wst&#x119;p i instalacja</strong>: Wprowadzenie do Material UI i instalacja biblioteki.</li><li><strong>Button component</strong>: Wykorzystanie komponentu Button w Material UI do tworzenia interaktywnych przycisk&#xF3;w.</li><li><strong>MUI Icons</strong>: U&#x17C;ycie ikon z biblioteki MUI Icons w naszych aplikacjach React.</li><li><strong>Theme &#x2013; wprowadzenie</strong>: Poznanie mo&#x17C;liwo&#x15B;ci konfiguracji theme&apos;&#xF3;w (m.in. kolorystycznych) w Material UI i ich zastosowanie w projektach.</li><li><strong>Theme &#x2013; palette</strong>: Dostosowywanie palety kolor&#xF3;w w theme&apos;ach Material UI.</li><li><strong>Theme &#x2013; Typography</strong>: Stylizacja typografii w theme&apos;ach Material UI.</li><li><strong>Grid</strong>: Wykorzystanie komponentu Grid w Material UI do tworzenia elastycznego i responsywnego uk&#x142;adu komponent&#xF3;w na stronie.</li><li><strong>Stack &amp; Divider</strong>: U&#x17C;ycie komponent&#xF3;w Stack i Divider do uporz&#x105;dkowania i separacji element&#xF3;w w interfejsie.</li><li><strong>makeStyles &#x2013; basics</strong>: Podstawowe korzystanie z hooka makeStyles w Material UI do definiowania niestandardowych styl&#xF3;w.</li><li><strong>makeStyles &#x2013; nested elements</strong>: Tworzenie zagnie&#x17C;d&#x17C;onych styl&#xF3;w za pomoc&#x105; makeStyles w Material UI.</li><li><strong>makeStyles &#x2013; theme &amp; props</strong>: Wykorzystanie tematu i props&#xF3;w w hooku makeStyles w Material UI.</li><li><strong>MUI System &#x2013; Box &amp; sx prop</strong>: Zastosowanie komponentu Box i w&#x142;a&#x15B;ciwo&#x15B;ci sx do tworzenia stylowania komponent&#xF3;w.</li><li><strong>MUI System &#x2013; nested elements</strong>: Stylowanie zagnie&#x17C;d&#x17C;onych element&#xF3;w w Material UI System.</li><li><strong>MUI System &#x2013; sx in custom props</strong>: Wykorzystanie w&#x142;a&#x15B;ciwo&#x15B;ci sx w niestandardowych propsach w Material UI System.</li><li><strong>MUI System &#x2013; theme &amp; props</strong>: Wykorzystanie tematu i props&#xF3;w w Material UI System.</li><li><strong>Shorthand properties and values in <code>sx</code></strong>: Skr&#xF3;cone w&#x142;a&#x15B;ciwo&#x15B;ci i warto&#x15B;ci w stylach sx w Material UI.</li><li><strong>React component MUI template</strong>: Tworzenie szablonu komponentu React z wykorzystaniem Material UI.</li><li><strong>MUI System &#x2013; styled function</strong>: Wykorzystanie funkcji styled w Material UI System.</li><li><strong>Project 0.0 &#x2013; data setup</strong>: Konfiguracja projetu wykorzystuj&#x105;cego wiedze z modu&#x142;u.</li><li><strong>Project 0.1 &#x2013; Routing</strong>: Obs&#x142;uga routingu w projekcie.</li><li><strong>Project 0.2 &#x2013; CourseLayout</strong>: Tworzenie elementu odpowiadaj&#x105;cego za pozycjonowanie (layout) w projekcie.</li><li><strong>Project 0.3 &#x2013; Course tile and sidebar</strong>: Tworzenie karty kursu i menu bocznego w projekcie.</li><li><strong>Project 0.4 &#x2013; Player and not found handling</strong>: Obs&#x142;uga odtwarzacza wideo oraz obs&#x142;uga b&#x142;&#x119;d&#xF3;w w projekcie.</li><li><strong>Project 0.5 &#x2013; Refactor</strong>: Ko&#x144;cowa refaktoryzacja kodu.</li></ol><h3 id="-zobacz-przyk-adow-lekcj-z-tego-modu-u-kursu-">&#x1F440; Zobacz przyk&#x142;adow&#x105; lekcj&#x119; z tego modu&#x142;u kursu:</h3><figure class="kg-card kg-embed-card"><iframe width="200" height="150" src="https://www.youtube.com/embed/vQ2bXEz4YXc?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen title="CodeRoad,pl przyk&#x142;adowa lekcja | Modu&#x142; 18 &#x2013; Material UI | 12. MUI System &#x2013; Box &amp; sx prop"></iframe></figure><h3 id="-zobacz-przyk-adowy-kod-z-tej-lekcji-"><strong>&#x1F468;&#x200D;&#x1F4BB; Zobacz przyk&#x142;adowy kod z tej lekcji:</strong></h3><figure class="kg-card kg-embed-card"><iframe width="1000" height="500" src="https://codesandbox.io/embed/github/coderoadpl/frontend--material-ui--task-11/tree/master/?fontsize=14&amp;hidenavigation=1&amp;theme=dark" style="width:1000px; height:500px; border:0; border-radius: 4px; overflow:hidden;" sandbox="allow-modals allow-forms allow-popups allow-scripts allow-same-origin"></iframe></figure><h3 id="-kup-kurs">&#x1F4B8; Kup kurs</h3><p>Kup ca&#x142;y kurs CodeRoad &#x2013; <a href="https://coderoad.pl/?ref=blog.coderoad.pl">TUTAJ</a></p><p>Kup ten modu&#x142; kursu &#x2013; <a href="https://coderoad.thinkific.com/enroll/1505103?price_id=1856544&amp;ref=blog.coderoad.pl">TUTAJ</a></p><h4 id="-odbierz-bezp-atny-kurs-">&#x1F4AA; Odbierz bezp&#x142;atny kurs!</h4><!--kg-card-begin: html--><div class="ml-embedded" data-form="VpNCE8"></div><!--kg-card-end: html-->]]></content:encoded></item><item><title><![CDATA[Moduł 17 – React Hook Form — ekosystem Reacta]]></title><description><![CDATA[<figure class="kg-card kg-image-card"><img src="https://s3-eu-central-1.amazonaws.com/blog-coderoad-pl/2023/06/uaWONb8eTdC0CH1jelz6_THREE-LINER--1-.jpeg" class="kg-image" alt loading="lazy" width="380" height="213"></figure><p><br>Modu&#x142; kursu &quot;React Hook Form &#x2014; ekosystem Reacta&quot; wprowadza do u&#x17C;ywania gotowych rozwi&#x105;za&#x144; w React do tworzenia formularzy. Sam React odpowiada wy&#x142;&#x105;cznie za interfejs. Nie ma wbudowanych wielu element&#xF3;w potrzebnych do stworzenia pe&#x142;noprawnej aplikacji. Mo&</p>]]></description><link>https://blog.coderoad.pl/modul-17-react-hook-form-ekosystem-reacta/</link><guid isPermaLink="false">6550c92a9383a90001a76966</guid><category><![CDATA[Kurs front-end]]></category><category><![CDATA[Program kursu]]></category><dc:creator><![CDATA[Mateusz Choma]]></dc:creator><pubDate>Sun, 04 Jun 2023 11:37:25 GMT</pubDate><media:content url="https://s3-eu-central-1.amazonaws.com/blog-coderoad-pl/2023/06/uaWONb8eTdC0CH1jelz6_THREE-LINER--1--1.jpeg" medium="image"/><content:encoded><![CDATA[<figure class="kg-card kg-image-card"><img src="https://s3-eu-central-1.amazonaws.com/blog-coderoad-pl/2023/06/uaWONb8eTdC0CH1jelz6_THREE-LINER--1-.jpeg" class="kg-image" alt="Modu&#x142; 17 &#x2013; React Hook Form &#x2014; ekosystem Reacta" loading="lazy" width="380" height="213"></figure><img src="https://s3-eu-central-1.amazonaws.com/blog-coderoad-pl/2023/06/uaWONb8eTdC0CH1jelz6_THREE-LINER--1--1.jpeg" alt="Modu&#x142; 17 &#x2013; React Hook Form &#x2014; ekosystem Reacta"><p><br>Modu&#x142; kursu &quot;React Hook Form &#x2014; ekosystem Reacta&quot; wprowadza do u&#x17C;ywania gotowych rozwi&#x105;za&#x144; w React do tworzenia formularzy. Sam React odpowiada wy&#x142;&#x105;cznie za interfejs. Nie ma wbudowanych wielu element&#xF3;w potrzebnych do stworzenia pe&#x142;noprawnej aplikacji. Mo&#x17C;emy wymy&#x15B;la&#x107; ko&#x142;o na nowo albo... skorzysta&#x107; z gotowych i sprawdzonych rozwi&#x105;za&#x144;! :)</p><h3 id="-zawarto-modu-u">&#x1F4DA; Zawarto&#x15B;&#x107; modu&#x142;u</h3><p>Modu&#x142; &quot;React Hook Form &#x2014; ekosystem Reacta&quot; jest podzielony na 15 lekcji:</p><ol><li><strong>Wst&#x119;p</strong>: Poznanie konceptu React Hook Form i potrzeby korzystania z gotowych rozwi&#x105;za&#x144; w tworzeniu aplikacji React.</li><li><strong>Registering fields</strong>: Rejestracja p&#xF3;l formularza, umo&#x17C;liwiaj&#x105;ca ich manipulacj&#x119;.</li><li><strong>Validation</strong>: Walidacja p&#xF3;l formularza w celu sprawdzenia poprawno&#x15B;ci wprowadzonych danych.</li><li><strong>Displaying validation messages</strong>: Wy&#x15B;wietlanie komunikat&#xF3;w walidacyjnych informuj&#x105;cych o b&#x142;&#x119;dach w formularzu.</li><li><strong>Controller</strong>: Wykorzystanie komponentu &quot;Controller&quot; do zarz&#x105;dzania danymi p&#xF3;l formularza.</li><li><strong>Validation and revalidation mode</strong>: Poznanie tryb&#xF3;w walidacji i ponownej walidacji p&#xF3;l formularza.</li><li><strong>Conditional fields</strong>: Tworzenie p&#xF3;l warunkowych w formularzu.</li><li><strong>Lifting state up &#x2014; FormProvider &amp; useFormContext</strong>: Wynoszenie stanu formularza do komponent&#xF3;w-rodzic&#xF3;w za pomoc&#x105; &quot;FormProvider&quot; i &quot;useFormContext&quot;.</li><li><strong>Saving form state &#x2014; default values</strong>: Zapisywanie stanu formularza &#x2014; domy&#x15B;lne warto&#x15B;ci p&#xF3;l.</li><li><strong>Resetting form state</strong>: Resetowanie stanu formularza do warto&#x15B;ci pocz&#x105;tkowych.</li><li><strong>Project 0.0 &#x2013; RecoverPasswordForm</strong>: Tworzenie komponentu formularza odzyskiwania has&#x142;a przy u&#x17C;yciu react-hook-form.</li><li><strong>Project 0.1 &#x2013; LoginForm</strong>: Tworzenie formularza logowania przy u&#x17C;yciu react-hook-form.</li><li><strong>Project 0.2 &#x2013; CreateAccountForm</strong>: Tworzenie formularza tworzenia konta przy u&#x17C;yciu react-hook-form.</li><li><strong>Project 1.0 &#x2013; ProfileForm</strong>: Tworzenie formularza profilu przy u&#x17C;yciu react-hook-form.</li><li><strong>Project 1.1 &#x2013; Uploading avatar</strong>: Obs&#x142;uga wysy&#x142;ania awatara przy u&#x17C;yciu react-hook-form.</li></ol><h3 id="-zobacz-przyk-adow-lekcj-z-tego-modu-u-kursu-">&#x1F440; Zobacz przyk&#x142;adow&#x105; lekcj&#x119; z tego modu&#x142;u kursu:</h3><figure class="kg-card kg-embed-card"><iframe width="200" height="113" src="https://www.youtube.com/embed/8QfnJFHliIA?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen title="CodeRoad,pl przyk&#x142;adowa lekcja | Modu&#x142; 17 &#x2013; React Hook Form | 04.  Displaying validation messages"></iframe></figure><h3 id="-zobacz-przyk-adowy-kod-z-tej-lekcji-"><strong>&#x1F468;&#x200D;&#x1F4BB; Zobacz przyk&#x142;adowy kod z tej lekcji:</strong></h3><figure class="kg-card kg-embed-card"><iframe width="1000" height="500" src="https://codesandbox.io/embed/github/coderoadpl/frontend--react-hook-form--task-2/tree/master/?fontsize=14&amp;hidenavigation=1&amp;theme=dark" style="width:1000px; height:500px; border:0; border-radius: 4px; overflow:hidden;" sandbox="allow-modals allow-forms allow-popups allow-scripts allow-same-origin"></iframe></figure><h3 id="-kup-kurs">&#x1F4B8; Kup kurs</h3><p>Kup ca&#x142;y kurs CodeRoad &#x2013; <a href="https://coderoad.pl/?ref=blog.coderoad.pl">TUTAJ</a></p><p>Kup ten modu&#x142; kursu &#x2013; <a href="https://coderoad.thinkific.com/enroll/1505101?price_id=1856542&amp;ref=blog.coderoad.pl">TUTAJ</a></p><h4 id="-odbierz-bezp-atny-kurs-">&#x1F4AA; Odbierz bezp&#x142;atny kurs!</h4><!--kg-card-begin: html--><div class="ml-embedded" data-form="VpNCE8"></div><!--kg-card-end: html-->]]></content:encoded></item><item><title><![CDATA[Moduł 16 – React Router — ekosystem Reacta]]></title><description><![CDATA[<figure class="kg-card kg-image-card"><img src="https://s3-eu-central-1.amazonaws.com/blog-coderoad-pl/2023/06/nsUDlHlESYyEB4pVOpoY_TWO-LINER--1-.jpeg" class="kg-image" alt loading="lazy" width="380" height="213"></figure><p><br>Modu&#x142; kursu programowania o numerze 16 zatytu&#x142;owany &quot;React Router &#x2014; ekosystem Reacta&quot; wprowadza programist&#xF3;w w &#x15B;wiat React Router, cz&#x119;&#x15B;&#x107; ekosystemu biblioteki React, kt&#xF3;ra umo&#x17C;liwia tworzenie dynamicznej nawigacji i zarz&#x105;dzanie trasami w aplikacjach React.</p>]]></description><link>https://blog.coderoad.pl/modul-16-react-router-ekosystem-reacta/</link><guid isPermaLink="false">6550c92a9383a90001a76965</guid><category><![CDATA[Kurs front-end]]></category><category><![CDATA[Program kursu]]></category><dc:creator><![CDATA[Mateusz Choma]]></dc:creator><pubDate>Sun, 04 Jun 2023 11:28:02 GMT</pubDate><media:content url="https://s3-eu-central-1.amazonaws.com/blog-coderoad-pl/2023/06/nsUDlHlESYyEB4pVOpoY_TWO-LINER--1--1.jpeg" medium="image"/><content:encoded><![CDATA[<figure class="kg-card kg-image-card"><img src="https://s3-eu-central-1.amazonaws.com/blog-coderoad-pl/2023/06/nsUDlHlESYyEB4pVOpoY_TWO-LINER--1-.jpeg" class="kg-image" alt="Modu&#x142; 16 &#x2013; React Router &#x2014; ekosystem Reacta" loading="lazy" width="380" height="213"></figure><img src="https://s3-eu-central-1.amazonaws.com/blog-coderoad-pl/2023/06/nsUDlHlESYyEB4pVOpoY_TWO-LINER--1--1.jpeg" alt="Modu&#x142; 16 &#x2013; React Router &#x2014; ekosystem Reacta"><p><br>Modu&#x142; kursu programowania o numerze 16 zatytu&#x142;owany &quot;React Router &#x2014; ekosystem Reacta&quot; wprowadza programist&#xF3;w w &#x15B;wiat React Router, cz&#x119;&#x15B;&#x107; ekosystemu biblioteki React, kt&#xF3;ra umo&#x17C;liwia tworzenie dynamicznej nawigacji i zarz&#x105;dzanie trasami w aplikacjach React.</p><h3 id="-zawarto-modu-u">&#x1F4DA; Zawarto&#x15B;&#x107; modu&#x142;u</h3><p>Modu&#x142; &quot;React Router &#x2014; ekosystem Reacta&quot; jest podzielony na 13 lekcji:</p><ol><li><strong>Wst&#x119;p i instalacja </strong>&#x2014; Wprowadzenie do tematu React Router i instrukcje instalacji.</li><li><strong>Router Routes &amp; Route</strong> &#x2014; Wykorzystanie komponent&#xF3;w Router, Routes i Route do definiowania rout&#xF3;w (&#x15B;cie&#x17C;ek) w aplikacji.</li><li><strong>Link &amp; NavLink</strong> &#x2014; Korzystanie z komponent&#xF3;w Link i NavLink do nawigacji mi&#x119;dzy &#x15B;cie&#x17C;kami.</li><li><strong>URL params &amp; useParams</strong> &#x2014; Wykorzystanie parametr&#xF3;w URL i hooka useParams do odczytywania i przekazywania danych w trasach.</li><li><strong>Nested routes</strong> &#x2014; Tworzenie zagnie&#x17C;d&#x17C;onych &#x15B;cie&#x17C;ek w aplikacji.</li><li><strong>Debouncing URL params change</strong> &#x2014; Wprowadzenie funkcji debounce w celu op&#xF3;&#x17A;nionego reagowania na zmiany parametr&#xF3;w URL.</li><li><strong>Dynamic routes</strong> &#x2014; Tworzenie dynamicznych &#x15B;cie&#x17C;ek w zale&#x17C;no&#x15B;ci od posiadanych/pobranych danych.</li><li><strong>Index routes</strong> &#x2014; Definiowanie g&#x142;&#xF3;wnych &#x15B;cie&#x17C;ek w aplikacji.</li><li><strong>404 routes</strong> &#x2014; Obs&#x142;uga b&#x142;&#x119;du 404 w przypadku braku pasuj&#x105;cej &#x15B;cie&#x17C;ki.</li><li><strong>HashRouter vs BrowserRouter</strong> &#x2014; Por&#xF3;wnanie i wyb&#xF3;r pomi&#x119;dzy dwoma dost&#x119;pnymi rodzajami ruter&#xF3;w.</li><li><strong>Fetching on URL param change</strong> &#x2014; Pobieranie danych przy zmianie parametr&#xF3;w URL.</li><li><strong>Fetching on URL param change part 2</strong> &#x2014; Kontynuacja pobierania danych przy zmianie parametr&#xF3;w URL.</li><li><strong>Project 0</strong> - Implementacja aplikacji na podstawie wiedzy zdobytej w module.</li></ol><h3 id="-zobacz-przyk-adow-lekcj-z-tego-modu-u-kursu-">&#x1F440; Zobacz przyk&#x142;adow&#x105; lekcj&#x119; z tego modu&#x142;u kursu:</h3><figure class="kg-card kg-embed-card"><iframe width="200" height="150" src="https://www.youtube.com/embed/4U-iIn8CDq0?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen title="CodeRoad,pl przyk&#x142;adowa lekcja | Modu&#x142; 16 &#x2013; React Router | 11. Fetching on URL param change"></iframe></figure><h3 id="-zobacz-przyk-adowy-kod-z-tej-lekcji-"><strong>&#x1F468;&#x200D;&#x1F4BB; Zobacz przyk&#x142;adowy kod z tej lekcji:</strong></h3><figure class="kg-card kg-embed-card"><iframe width="1000" height="500" src="https://codesandbox.io/embed/github/coderoadpl/frontend--react-router--task-10/tree/master/?fontsize=14&amp;hidenavigation=1&amp;theme=dark" style="width:1000px; height:500px; border:0; border-radius: 4px; overflow:hidden;" sandbox="allow-modals allow-forms allow-popups allow-scripts allow-same-origin"></iframe></figure><h3 id="-kup-kurs">&#x1F4B8; Kup kurs</h3><p>Kup ca&#x142;y kurs CodeRoad &#x2013; <a href="https://coderoad.pl/?ref=blog.coderoad.pl">TUTAJ</a></p><p>Kup ten modu&#x142; kursu &#x2013; <a href="https://coderoad.thinkific.com/enroll/1505098?price_id=1856539&amp;ref=blog.coderoad.pl">TUTAJ</a></p><h4 id="-odbierz-bezp-atny-kurs-">&#x1F4AA; Odbierz bezp&#x142;atny kurs!</h4><!--kg-card-begin: html--><div class="ml-embedded" data-form="VpNCE8"></div><!--kg-card-end: html-->]]></content:encoded></item><item><title><![CDATA[Moduł 15 – React — hooks + context]]></title><description><![CDATA[<figure class="kg-card kg-image-card"><img src="https://s3-eu-central-1.amazonaws.com/blog-coderoad-pl/2023/06/8PQj5YZTQV6gM2vuwMBv_THREE-LINER--10-.jpeg" class="kg-image" alt loading="lazy" width="380" height="213"></figure><p><br>Modu&#x142; kursu o numerze 15 zatytu&#x142;owany &quot;React &#x2014; hooks + context&quot; wprowadza uczestnik&#xF3;w w hooki i context, dwie znaczne nowo&#x15B;ci biblioteki React, kt&#xF3;re zdoby&#x142;y popularno&#x15B;&#x107; w 2019 roku, przedstawiaj&#x105;c je jako niezb&#x119;dne</p>]]></description><link>https://blog.coderoad.pl/modul-15-react-hooks-context/</link><guid isPermaLink="false">6550c92a9383a90001a76964</guid><category><![CDATA[Kurs front-end]]></category><category><![CDATA[Program kursu]]></category><dc:creator><![CDATA[Mateusz Choma]]></dc:creator><pubDate>Sun, 04 Jun 2023 11:17:45 GMT</pubDate><media:content url="https://s3-eu-central-1.amazonaws.com/blog-coderoad-pl/2023/06/8PQj5YZTQV6gM2vuwMBv_THREE-LINER--10--1.jpeg" medium="image"/><content:encoded><![CDATA[<figure class="kg-card kg-image-card"><img src="https://s3-eu-central-1.amazonaws.com/blog-coderoad-pl/2023/06/8PQj5YZTQV6gM2vuwMBv_THREE-LINER--10-.jpeg" class="kg-image" alt="Modu&#x142; 15 &#x2013; React &#x2014; hooks + context" loading="lazy" width="380" height="213"></figure><img src="https://s3-eu-central-1.amazonaws.com/blog-coderoad-pl/2023/06/8PQj5YZTQV6gM2vuwMBv_THREE-LINER--10--1.jpeg" alt="Modu&#x142; 15 &#x2013; React &#x2014; hooks + context"><p><br>Modu&#x142; kursu o numerze 15 zatytu&#x142;owany &quot;React &#x2014; hooks + context&quot; wprowadza uczestnik&#xF3;w w hooki i context, dwie znaczne nowo&#x15B;ci biblioteki React, kt&#xF3;re zdoby&#x142;y popularno&#x15B;&#x107; w 2019 roku, przedstawiaj&#x105;c je jako niezb&#x119;dne narz&#x119;dzia przed nauk&#x105; korzystania z kolejnych bibliotek w ekosystemie React&apos;a.</p><h3 id="-zawarto-modu-u">&#x1F4DA; Zawarto&#x15B;&#x107; modu&#x142;u</h3><p>Modu&#x142; &quot;React &#x2014; hooks + context&quot; jest podzielony na 32 lekcje:</p><ol><li><strong>Wst&#x119;p</strong> &#x2014; Wprowadzenie do tematu hook&#xF3;w i contextu w bibliotece React.</li><li><strong>useState</strong> &#x2014; Wykorzystanie - Wyorzystanie hooka useState do zarz&#x105;dzania stanem w komponentach funkcyjnych.</li><li><strong>Hook vs Class</strong> &#x2014; Por&#xF3;wnanie hook&#xF3;w i klasowych komponent&#xF3;w w React.</li><li><strong>Custom useState hook</strong> &#x2014; Tworzenie w&#x142;asnej implementacji hooka useState w celu odkrycia jak dzia&#x142;a on &quot;pod mask&#x105;&quot;.</li><li><strong>Classes &amp; reusable logic</strong> &#x2014; Wykorzystanie klasowych komponent&#xF3;w i reu&#x17C;ywalnej logiki.</li><li><strong>Hooks &amp; reusable logic &#x2014; custom hooks</strong> &#x2014; Wykorzystanie hook&#xF3;w i tworzenie niestandardowych hook&#xF3;w dla reu&#x17C;ywalno&#x15B;ci logiki.</li><li><strong>useEffect</strong> &#x2014; Wykorzystanie hooka useEffect do zarz&#x105;dzania efektami ubocznymi w komponentach funkcyjnych.</li><li><strong>useEffect &#x2014; componentDidMount</strong> &#x2014; Wykorzystanie hooka useEffect do emulowania metody componentDidMount.</li><li><strong>useEffect &#x2014; componentWillUnmount </strong>&#x2014; Wykorzystanie hooka useEffect do emulowania metody componentWillUnmount.</li><li><strong>useEffect &#x2014; using dependencies </strong>&#x2014; Wykorzystanie hooka useEffect zale&#x17C;no&#x15B;ciami.</li><li><strong>Fetch using hooks</strong> &#x2014; Wykorzystanie hook&#xF3;w do wykonywania &#x17C;&#x105;da&#x144; fetch.</li><li><strong>useCallback</strong> &#x2014; Wykorzystanie hooka useCallback do zoptymalizowania wydajno&#x15B;ci komponent&#xF3;w.</li><li><strong>Custom hook for loading states</strong> &#x2014; Tworzenie niestandardowego hooka do zarz&#x105;dzania stanem &#x142;adowania.</li><li><strong>react-use</strong> - Korzystanie z biblioteki react-use do wykorzystania gotowych hook&#xF3;w.</li><li><strong>useMemo</strong> &#x2014; Wykorzystanie hooka useMemo do zapami&#x119;tywania oblicze&#x144;.</li><li><strong>useRef</strong> &#x2014; Wykorzystanie hooka useRef do zarz&#x105;dzania referencjami do element&#xF3;w w komponentach.</li><li><strong>Rules of hooks</strong> &#x2013; Zsady korzystania z hook&#xF3;w w React.</li><li><strong>Stale closures in pure JS</strong> &#x2014; Om&#xF3;wienie problemu wyst&#x119;powania tak zwanych &quot;stale closures&quot; w czystym JavaScript.</li><li><strong>Stale closures React components</strong> &#x2014; &#xA0;Om&#xF3;wienie problemu wyst&#x119;powania stale closures w komponentach React.</li><li><strong>Passing props multiple levels &#x2014; theme</strong> &#x2014; Przekazywanie props&#xF3;w na wielu poziomach komponent&#xF3;w.</li><li><strong>Context.Provider &amp; Context.Consumer</strong> &#x2014; Wykorzystanie Context.Provider i Context.Consumer w zarz&#x105;dzaniu stanem aplikacji.</li><li><strong>Context default values</strong> &#x2014; Ustawianie domy&#x15B;lnych warto&#x15B;ci dla kontekstu.</li><li><strong>Changing context dynamically</strong> &#x2014; Dynamiczna zmiana kontekstu.</li><li><strong>useContext</strong> &#x2014; Wykorzystanie hooka useContext do odczytywania kontekstu.</li><li><strong>Custom context providers</strong> &#x2014; Tworzenie w&#x142;asnych dostawc&#xF3;w kontekstu.</li><li><strong>Project 0</strong> <strong>&#x2014; refactor PageRecoverPassword </strong>&#x2014; Refaktoryzacja komponentu PageRecoverPassword z komponent&#xF3;w klasowych na hooki.</li><li><strong>Project 0.1 &#x2014; refactor PageCoursesList &#x2014; </strong>Refaktoryzacja komponentu PageCoursesList z komponent&#xF3;w klasowych na hooki.</li><li><strong>Project 0.2 &#x2014; refactor PageLogin </strong>&#x2014; Refaktoryzacja komponentu PageLogin z komponent&#xF3;w klasowych na hooki.</li><li><strong>Project 0.3 &#x2014; refactor PageCreateAccount </strong>&#x2014; Refaktoryzacja komponentu PageCreateAccount z komponent&#xF3;w klasowych na hooki.</li><li><strong>Project 0.4 &#x2013; refactor App </strong>&#x2013; Refaktoryzacja komponentu App z komponent&#xF3;w klasowych na hooki.</li><li><strong>Project 0.5 &#x2014; RouterContext</strong> &#x2014; Wykorzystanie kontekstu routera w projekcie.</li><li><strong>Project 0.6 &#x2014; UserContext </strong>&#x2014; Wykorzystanie kontekstu u&#x17C;ytkownika w projekcie.</li></ol><h3 id="-zobacz-przyk-adow-lekcj-z-tego-modu-u-kursu-">&#x1F440; Zobacz przyk&#x142;adow&#x105; lekcj&#x119; z tego modu&#x142;u kursu:</h3><figure class="kg-card kg-embed-card"><iframe width="200" height="150" src="https://www.youtube.com/embed/VFCeUmoHqAA?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen title="CodeRoad,pl | Modu&#x142;  15 &#x2013; React Hooks &amp; Context | 19. Stale closures in React components"></iframe></figure><h3 id="-zobacz-przyk-adowy-kod-z-tej-lekcji-"><strong>&#x1F468;&#x200D;&#x1F4BB; Zobacz przyk&#x142;adowy kod z tej lekcji:</strong></h3><figure class="kg-card kg-embed-card"><iframe width="1000" height="500" src="https://codesandbox.io/embed/github/coderoadpl/frontend--react-hook-and-context--task-17/tree/master/?fontsize=14&amp;hidenavigation=1&amp;theme=dark" style="width:1000px; height:500px; border:0; border-radius: 4px; overflow:hidden;" sandbox="allow-modals allow-forms allow-popups allow-scripts allow-same-origin"></iframe></figure><h3 id="-kup-kurs">&#x1F4B8; Kup kurs</h3><p>Kup ca&#x142;y kurs CodeRoad &#x2013; <a href="https://coderoad.pl/?ref=blog.coderoad.pl">TUTAJ</a></p><p>Kup ten modu&#x142; kursu &#x2013; <a href="https://coderoad.thinkific.com/enroll/1505099?price_id=1856540&amp;ref=blog.coderoad.pl">TUTAJ</a></p><h4 id="-odbierz-bezp-atny-kurs-">&#x1F4AA; Odbierz bezp&#x142;atny kurs!</h4><!--kg-card-begin: html--><div class="ml-embedded" data-form="VpNCE8"></div><!--kg-card-end: html-->]]></content:encoded></item><item><title><![CDATA[Moduł 14 – Podstawy React]]></title><description><![CDATA[<figure class="kg-card kg-image-card"><img src="https://s3-eu-central-1.amazonaws.com/blog-coderoad-pl/2023/06/YN185wc4QYy600czHeVS_TWO-LINER--5-.jpeg" class="kg-image" alt loading="lazy" width="380" height="213"></figure><p><br>Modu&#x142; kursu o numerze 14, o nazwie &quot;Podstawy React&quot;, pozwoli Ci zapozna&#x107; si&#x119; z React&apos;em &#x2014; bibliotek&#x105; wydan&#x105; i utrzymywan&#x105; przez Facebooka, znacznie u&#x142;atwiaj&#x105;c&#x105; tworzenie interfejs&#xF3;w u&#x17C;ytkownika (UI aplikacji). </p><p>React pod</p>]]></description><link>https://blog.coderoad.pl/modul-14-podstawy-react/</link><guid isPermaLink="false">6550c92a9383a90001a76963</guid><category><![CDATA[Kurs front-end]]></category><category><![CDATA[Program kursu]]></category><dc:creator><![CDATA[Mateusz Choma]]></dc:creator><pubDate>Sun, 04 Jun 2023 11:06:00 GMT</pubDate><media:content url="https://s3-eu-central-1.amazonaws.com/blog-coderoad-pl/2023/06/YN185wc4QYy600czHeVS_TWO-LINER--5--1.jpeg" medium="image"/><content:encoded><![CDATA[<figure class="kg-card kg-image-card"><img src="https://s3-eu-central-1.amazonaws.com/blog-coderoad-pl/2023/06/YN185wc4QYy600czHeVS_TWO-LINER--5-.jpeg" class="kg-image" alt="Modu&#x142; 14 &#x2013; Podstawy React" loading="lazy" width="380" height="213"></figure><img src="https://s3-eu-central-1.amazonaws.com/blog-coderoad-pl/2023/06/YN185wc4QYy600czHeVS_TWO-LINER--5--1.jpeg" alt="Modu&#x142; 14 &#x2013; Podstawy React"><p><br>Modu&#x142; kursu o numerze 14, o nazwie &quot;Podstawy React&quot;, pozwoli Ci zapozna&#x107; si&#x119; z React&apos;em &#x2014; bibliotek&#x105; wydan&#x105; i utrzymywan&#x105; przez Facebooka, znacznie u&#x142;atwiaj&#x105;c&#x105; tworzenie interfejs&#xF3;w u&#x17C;ytkownika (UI aplikacji). </p><p>React pod wzgl&#x119;dem popularno&#x15B;ci bije na g&#x142;ow&#x119; inne dost&#x119;pne rozwi&#x105;zania, a praca z nim jest bardzo zbli&#x17C;ona do pracy z czystym JS-em (z wyj&#x105;tkiem drzewa DOM).<br><br>Nauczysz si&#x119; jak dzia&#x142;a React i jak pisa&#x107; w nim kod, aby na ko&#x144;cu tej cz&#x119;&#x15B;ci w&#x142;asnor&#x119;cznie napisa&#x107; du&#x17C;&#x105;, pe&#x142;noprawn&#x105; aplikacj&#x119; z rejestracj&#x105; i logowaniem.</p><h3 id="-zawarto-modu-u">&#x1F4DA; Zawarto&#x15B;&#x107; modu&#x142;u</h3><p>Modu&#x142; &quot;Podstawy React&quot; jest podzielony na 98 lekcji:</p><ol><li><strong>Wst&#x119;p</strong>: Wprowadzenie do kursu i om&#xF3;wienie cel&#xF3;w i korzy&#x15B;ci p&#x142;yn&#x105;cych z nauki React&apos;a.</li><li><strong>Co to jest React &#x2014; framework a biblioteka</strong>: Wyja&#x15B;nienie r&#xF3;&#x17C;nicy mi&#x119;dzy frameworkiem a bibliotek&#x105; oraz przedstawienie roli React&apos;a jako biblioteki do budowania interfejs&#xF3;w.</li><li><strong>U&#x17C;ywanie React bez bundlera &#x2014; React.createElement</strong>: Om&#xF3;wienie sposobu korzystania z React&apos;a bez narz&#x119;dzi buduj&#x105;cych (bundler&#xF3;w) i prezentacja funkcji React.createElement.</li><li><strong>Drzewo DOM vs Virtual DOM</strong>: Por&#xF3;wnanie drzewa DOM z wirtualnym drzewem DOM i wyja&#x15B;nienie, dlaczego React u&#x17C;ywa wirtualnego DOM do efektywnego renderowania.</li><li><strong>JSX bez bundlera</strong>: Wyja&#x15B;nienie sk&#x142;adni JSX oraz pokazanie, jak mo&#x17C;na korzysta&#x107; z JSX bez u&#x17C;ycia bundler&#xF3;w.</li><li><strong>Create React App</strong>: Przedstawienie narz&#x119;dzia Create React App, kt&#xF3;re u&#x142;atwia tworzenie nowych projekt&#xF3;w React.</li><li><strong>ESLint</strong>: Om&#xF3;wienie narz&#x119;dzia ESLint, kt&#xF3;re pomaga w utrzymaniu jednolitej i zgodnej sk&#x142;adni w kodzie React.</li><li><strong>Emmet w JSX</strong>: Wykorzystanie skr&#xF3;tu Emmet w JSX do szybkiego i efektywnego tworzenia kodu.</li><li><strong>JSX vs HTML (r&#xF3;&#x17C;nice)</strong>: Przedstawienie r&#xF3;&#x17C;nic mi&#x119;dzy JSX a HTML i wyja&#x15B;nienie, jakie zmiany trzeba wprowadzi&#x107; w kodzie HTML, aby go u&#x17C;ywa&#x107; w React.</li><li><strong>Co JSX potrafi wyrenderowa&#x107;</strong>: Przedstawienie typ&#xF3;w danych z JavaScript, kt&#xF3;re mo&#x17C;na bezpo&#x15B;rednio renderowa&#x107; przy u&#x17C;yciu JSX w React.</li><li><strong>Key i renderowanie tablic</strong>: Wyja&#x15B;nienie roli atrybutu &quot;key&quot; przy renderowaniu element&#xF3;w z tablicy oraz om&#xF3;wienie najlepszych praktyk zwi&#x105;zanych z jego u&#x17C;ywaniem.</li><li><strong>Renderowanie zagnie&#x17C;d&#x17C;onych tablic</strong>: Om&#xF3;wienie technik renderowania zagnie&#x17C;d&#x17C;onych tablic w React i pokazanie, jak skutecznie zarz&#x105;dza&#x107; kluczami.</li><li><strong>Renderowanie warunkowe</strong>: Wykorzystanie instrukcji warunkowych do renderowania r&#xF3;&#x17C;nych element&#xF3;w w zale&#x17C;no&#x15B;ci od okre&#x15B;lonych warunk&#xF3;w.</li><li><strong>Filtrowanie element&#xF3;w</strong>: Przedstawienie technik filtrowania element&#xF3;w w React na podstawie okre&#x15B;lonych kryteri&#xF3;w.</li><li><strong>onClick</strong>: Wykorzystanie zdarzenia onClick do obs&#x142;ugi interakcji u&#x17C;ytkownika w React.</li><li><strong>onChange</strong>: Wykorzystanie zdarzenia onChange do obs&#x142;ugi zmiany warto&#x15B;ci formularza w React.</li><li><strong>Komponenty funkcyjne</strong>: Om&#xF3;wienie komponent&#xF3;w funkcyjnych w React i pokazanie, jak mo&#x17C;na je tworzy&#x107; i u&#x17C;ywa&#x107;.</li><li><strong>Komponenty klasowe</strong>: Przedstawienie komponent&#xF3;w klasowych w React i wyja&#x15B;nienie, jak je tworzy&#x107; i zarz&#x105;dza&#x107; nimi.</li><li><strong>Stan w komponencie</strong>: Wyja&#x15B;nienie koncepcji stanu w komponencie React i pokazanie, jak go u&#x17C;ywa&#x107; do przechowywania i aktualizowania danych.</li><li><strong>Pola klas</strong>: Om&#xF3;wienie p&#xF3;l klasowych w komponentach React i przedstawienie r&#xF3;&#x17C;nych technik ich u&#x17C;ywania.</li><li><strong>Mutowanie stanu bezpo&#x15B;rednio</strong>: Wyja&#x15B;nienie, dlaczego bezpo&#x15B;rednie mutowanie stanu w komponentach React jest niew&#x142;a&#x15B;ciwe.</li><li><strong>forceUpdate</strong>: Wykorzystanie funkcji forceUpdate do wymuszenia ponownego renderowania komponentu w React.</li><li><strong>async setState</strong>: Wykorzystanie funkcji setState w asynchronicznych operacjach w React i om&#xF3;wienie najlepszych praktyk.</li><li><strong>W&#x142;asny CRA template cz. 1</strong>: Tworzenie w&#x142;asnego szablonu projektu w Create React App (CRA), cz&#x119;&#x15B;&#x107; 1.</li><li><strong>W&#x142;asny CRA template cz. 2</strong>: Tworzenie w&#x142;asnego szablonu projektu w Create React App (CRA), cz&#x119;&#x15B;&#x107; 2.</li><li><strong>Warunkowe renderowanie ze stanem</strong>: Wykorzystanie stanu w React do warunkowego renderowania element&#xF3;w na podstawie okre&#x15B;lonych warunk&#xF3;w.</li><li><strong>Filtrowanie oparte o stan</strong>: Implementacja filtrowania element&#xF3;w w React na podstawie warto&#x15B;ci stanu.</li><li><strong>React DevTools</strong>: Przedstawienie narz&#x119;dzia React DevTools, kt&#xF3;re u&#x142;atwia debugowanie i inspekcj&#x119; aplikacji React.</li><li><strong>Projekt 1 - ToDo lista w React</strong>: Praktyczne zastosowanie wiedzy z poprzednich lekcji do stworzenia aplikacji ToDo listy w React.</li><li><strong>Propsy</strong>: Wyja&#x15B;nienie koncepcji props&#xF3;w w React i pokazanie, jak przekazywa&#x107; dane do komponent&#xF3;w.</li><li><strong>Co mo&#x17C;na przekaza&#x107; propsem</strong>: Przedstawienie r&#xF3;&#x17C;nych typ&#xF3;w danych, kt&#xF3;re mo&#x17C;na przekazywa&#x107; za pomoc&#x105; props&#xF3;w w React.</li><li><strong>Spread props&#xF3;w &#x2014; otherProps</strong>: Wykorzystanie operatora spread do przekazywania dodatkowych props&#xF3;w do komponent&#xF3;w w React.</li><li><strong>Domy&#x15B;lna warto&#x15B;&#x107; props&#xF3;w</strong>: Om&#xF3;wienie mo&#x17C;liwo&#x15B;ci ustawienia domy&#x15B;lnej warto&#x15B;ci props&#xF3;w w React.</li><li><strong>prop-types</strong>: Wykorzystanie biblioteki prop-types do definiowania typ&#xF3;w props&#xF3;w i zapewnienia poprawno&#x15B;ci przekazywanych danych.</li><li><strong>Domy&#x15B;lne propsy dla komponentu</strong>: Ustalanie domy&#x15B;lnych warto&#x15B;ci props&#xF3;w dla komponent&#xF3;w w React.</li><li><strong>Counter z komponent&#xF3;w</strong>: Praktyczne zastosowanie wiedzy o propsach i stanach do stworzenia prostego licznika w React.</li><li><strong>Counter z propsami</strong>: Rozbudowanie poprzedniego projektu licznika o mo&#x17C;liwo&#x15B;&#x107; konfiguracji za pomoc&#x105; props&#xF3;w.</li><li><strong>Lifting state up &#x2014; wynoszenie stanu do g&#xF3;ry</strong>: Wyja&#x15B;nienie koncepcji &quot;lifting state up&quot; w React i przedstawienie korzy&#x15B;ci p&#x142;yn&#x105;cych z przenoszenia stanu do wy&#x17C;szego poziomu komponent&#xF3;w.</li><li><strong>children</strong>: Wykorzystanie specjalnego propsa &quot;children&quot; w React do przekazywania zawarto&#x15B;ci wewn&#x119;trznej do komponent&#xF3;w.</li><li><strong>Inline styles</strong>: U&#x17C;ycie styli wewn&#x119;trznych (inline styles) w React do definiowania styl&#xF3;w bezpo&#x15B;rednio w kodzie komponentu.</li><li><strong>Inline styles based on props</strong>: Dynamiczne dostosowywanie styli wewn&#x119;trznych w React na podstawie warto&#x15B;ci przekazywanych props&#xF3;w.</li><li><strong>Importowanie CSS</strong>: Importowanie i stosowanie zewn&#x119;trznych plik&#xF3;w CSS w projektach React.</li><li><strong>Prefixowanie klas</strong>: Automatyczne dodawanie prefiks&#xF3;w do klas CSS w celu unikni&#x119;cia konflikt&#xF3;w nazw i poprawnego dzia&#x142;ania w r&#xF3;&#x17C;nych przegl&#x105;darkach.</li><li><strong>CSS modules</strong>: Wykorzystanie CSS modu&#x142;&#xF3;w w React do zapewnienia izolacji styl&#xF3;w dla poszczeg&#xF3;lnych komponent&#xF3;w.</li><li><strong>CSS in JS</strong>: Przedstawienie technik tworzenia styl&#xF3;w w JavaScript (CSS in JS) w projekcie React.</li><li><strong>Wst&#x119;p do metod cyklu &#x17C;ycia (lifecycle)</strong>: Om&#xF3;wienie podstawowych metod cyklu &#x17C;ycia komponent&#xF3;w w React i wyja&#x15B;nienie, jak s&#x105; one wywo&#x142;ywane.</li><li><strong>Mounting lifecycle methods</strong>: Przedstawienie metod cyklu &#x17C;ycia zwi&#x105;zanych z montowaniem komponentu w drzewie DOM.</li><li><strong>Updating lifecycle methods</strong>: Wyja&#x15B;nienie metod cyklu &#x17C;ycia zwi&#x105;zanych z aktualizacj&#x105; komponentu w React.</li><li><strong>Unmounting lifecycle methods</strong>: Om&#xF3;wienie metod cyklu &#x17C;ycia zwi&#x105;zanych z usuwaniem komponentu z drzewa DOM.</li><li><strong>Error boundaries</strong>: Wykorzystanie mechanizmu error boundaries w React do obs&#x142;ugi i zarz&#x105;dzania b&#x142;&#x119;dami w komponentach.</li><li><strong>Projekt 1 &#x2013; obs&#x142;uga losowych b&#x142;&#x119;d&#xF3;w</strong>: Implementacja obs&#x142;ugi losowych b&#x142;&#x119;d&#xF3;w w projekcie ToDo listy w React.</li><li><strong>Fetchowanie danych</strong>: Wykorzystanie funkcji fetch do pobierania danych z serwera w React.</li><li><strong>Stany &#x142;adowania</strong>: Obs&#x142;uga stan&#xF3;w &#x142;adowania w czasie pobierania danych w React.</li><li><strong>Wy&#x15B;wietlanie pobranych tablic</strong>: Renderowanie pobranych danych w postaci tablicy w projekcie React.</li><li><strong>Projekt 2 &#x2013; pobieranie z odst&#x119;pami czasowymi</strong>: Wykorzystanie funkcji setInterval do okresowego pobierania danych w projekcie w React.</li><li><strong>Ikony SVG</strong>: Wykorzystanie ikon SVG w projekcie React.</li><li><strong>Projekt 3.0 &#x2013; ToDo lista z komponent&#xF3;w</strong>: Rozbudowanie projektu ToDo listy o komponenty w React.</li><li><strong>Projekt 3.1 - ToDo lista z komponent&#xF3;w &#x2014; usuwanie</strong>: Implementacja funkcjonalno&#x15B;ci usuwania element&#xF3;w z ToDo listy w projekcie React.</li><li><strong>Projekt 3.2 - ToDo lista z komponent&#xF3;w &#x2014; edycja</strong>: Implementacja funkcjonalno&#x15B;ci edycji element&#xF3;w w ToDo li&#x15B;cie w projekcie React.</li><li><strong>Projekt 3.3 - ToDo lista z komponent&#xF3;w &#x2014; zako&#x144;czenie</strong>: Finalizacja projektu ToDo listy z komponent&#xF3;w w React.</li><li><strong>Projekt 3.4 Publikowanie Firebase Hosting</strong>: Wykorzystanie Firebase Hosting do publikacji aplikacji Reactowej, umo&#x17C;liwiaj&#x105;c udost&#x119;pnienie aplikacji online.</li><li><strong>React.Fragment</strong>: Wykorzystanie React.Fragment do grupowania i renderowania element&#xF3;w bez dodawania dodatkowych w&#x119;z&#x142;&#xF3;w DOM.</li><li><strong>React DOM refs</strong>: Korzystanie z refs w React w celu uzyskania dost&#x119;pu do w&#x119;z&#x142;&#xF3;w DOM i manipulacji nimi.</li><li><strong>React components refs</strong>: Wykorzystywanie refs do odwo&#x142;ywania si&#x119; do komponent&#xF3;w w React, umo&#x17C;liwiaj&#x105;ce bezpo&#x15B;rednie wywo&#x142;anie ich metod i dost&#x119;p do danych.</li><li><strong>Projekt 4.0 Design w Figma</strong>: Projektowanie interfejsu aplikacji w narz&#x119;dziu Figma, obejmuj&#x105;ce tworzenie prototyp&#xF3;w, projektowanie uk&#x142;adu i stylizacj&#x119; komponent&#xF3;w.</li><li><strong>Projekt 4.1 Stan aplikacji</strong>: Zarz&#x105;dzanie globalnym stanem aplikacji w React za pomoc&#x105; narz&#x119;dzia takiego jak Redux lub Context API.</li><li><strong>Projekt 4.2 Loader</strong>: Implementacja animowanego wska&#x17A;nika &#x142;adowania (loadera) w celu informowania u&#x17C;ytkownika o trwaj&#x105;cym procesie.</li><li><strong>Projekt 4.3 Typografia</strong>: Stworzenie sp&#xF3;jnego stylu typograficznego dla aplikacji, definiuj&#x105;c rozmiary czcionek, odst&#x119;py mi&#x119;dzy liniami i inne atrybuty tekstu.</li><li><strong>Projekt 4.4 Przyciski</strong>: Tworzenie wielu wariant&#xF3;w przycisk&#xF3;w, takich jak przyciski podstawowe, przyciski akcji, przyciski wype&#x142;nione i puste itp., z odpowiednimi stylami i efektami.</li><li><strong>Projekt 4.5 Info messages</strong>: Wy&#x15B;wietlanie komunikat&#xF3;w informacyjnych (info messages) dla u&#x17C;ytkownik&#xF3;w, np. powiadomienia o sukcesie, ostrze&#x17C;enia lub b&#x142;&#x119;dy.</li><li><strong>Projekt 4.6 Kompozycja komponent&#xF3;w</strong>: Tworzenie bardziej zaawansowanych komponent&#xF3;w poprzez kompozycj&#x119; i &#x142;&#x105;czenie mniejszych komponent&#xF3;w w celu uzyskania wi&#x119;kszej elastyczno&#x15B;ci i &#x142;atwo&#x15B;ci u&#x17C;ycia.</li><li><strong>Projekt 4.7 Szablony modu&#x142;&#xF3;w</strong>: Stworzenie gotowych szablon&#xF3;w modu&#x142;&#xF3;w, kt&#xF3;re mog&#x105; by&#x107; wielokrotnie wykorzystywane w projekcie, zapewniaj&#x105;c jednolity styl i funkcjonalno&#x15B;&#x107;.</li><li><strong>Projekt 4.8 TextField</strong>: Implementacja pola tekstowego z mo&#x17C;liwo&#x15B;ci&#x105; wprowadzania i edycji tekstu oraz obs&#x142;ug&#x105; zdarze&#x144; zwi&#x105;zanych z wprowadzaniem danych.</li><li><strong>Projekt 4.9 LoginForm</strong>: Stworzenie formularza logowania umo&#x17C;liwiaj&#x105;cego u&#x17C;ytkownikom wprowadzanie danych logowania i ich weryfikacj&#x119;.</li><li><strong>Projekt 4.10 CreateAccountForm</strong>: Implementacja formularza rejestracji umo&#x17C;liwiaj&#x105;cego u&#x17C;ytkownikom tworzenie nowych kont w aplikacji.</li><li><strong>Projekt 4.11 RecoverPasswordForm</strong>: Stworzenie formularza przywracania has&#x142;a, kt&#xF3;ry umo&#x17C;liwia u&#x17C;ytkownikom zresetowanie swojego has&#x142;a w przypadku jego zapomnienia.</li><li><strong>Projekt 4.12 Podstawowa nawigacja</strong>: Dodanie podstawowej nawigacji do aplikacji za pomoc&#x105; biblioteki do routingu, takiej jak React Router.</li><li><strong>Projekt 4.13 Logowanie przez Firebase</strong>: Integracja funkcji logowania przez platform&#x119; Firebase, umo&#x17C;liwiaj&#x105;cej uwierzytelnianie u&#x17C;ytkownik&#xF3;w przy u&#x17C;yciu konta Firebase.</li><li><strong>Projekt 4.14 Walidacja e-maila</strong>: Implementacja walidacji adres&#xF3;w e-mail, sprawdzaj&#x105;c poprawno&#x15B;&#x107; formatu i unikalno&#x15B;&#x107; w systemie.</li><li><strong>Projekt 4.15 Walidacja pozosta&#x142;ych formularzy</strong>: Stworzenie mechanizmu walidacji innych p&#xF3;l formularzy, takich jak has&#x142;o, imi&#x119;, nazwisko itp., z uwzgl&#x119;dnieniem r&#xF3;&#x17C;nych regu&#x142; i wymaga&#x144;.</li><li><strong>Projekt 4.16 Rejestracja i odzyskiwanie has&#x142;a</strong>: Implementacja funkcjonalno&#x15B;ci rejestracji i odzyskiwania has&#x142;a w aplikacji, umo&#x17C;liwiaj&#x105;cej u&#x17C;ytkownikom tworzenie konta i przywracanie dost&#x119;pu do konta w przypadku utraty has&#x142;a.</li><li><strong>Projekt 4.17 AppBar</strong>: Stworzenie paska nawigacji (AppBar) na g&#xF3;rnym panelu aplikacji, zawieraj&#x105;cego logo, menu i inne elementy nawigacyjne.</li><li><strong>Projekt 4.18 UserDropdown</strong>: Implementacja rozwijanego menu u&#x17C;ytkownika, kt&#xF3;re pozwala na wy&#x15B;wietlanie dodatkowych opcji i dzia&#x142;a&#x144; zwi&#x105;zanych z kontem u&#x17C;ytkownika.</li><li><strong>Projekt 4.19 UserDropdown - prze&#x142;&#x105;czanie listy</strong>: Dodanie interaktywno&#x15B;ci do menu rozwijanego u&#x17C;ytkownika, umo&#x17C;liwiaj&#x105;c u&#x17C;ytkownikowi otwieranie i zamykanie listy opcji.</li><li><strong>Projekt 4.20 UserDropdown - pozycja listy + wylogowanie</strong>: Dodanie elementu listy do menu rozwijanego u&#x17C;ytkownika, kt&#xF3;ry umo&#x17C;liwia wylogowanie z konta.</li><li><strong>Projekt 4.21 Faker Mockaroo</strong>: Wykorzystanie narz&#x119;dzi takich jak Faker i Mockaroo do generowania fa&#x142;szywych danych w celach testowych i demonstracyjnych.</li><li><strong>Projekt 4.22 Pobieranie kurs&#xF3;w z Firebase</strong>: Integracja aplikacji z baz&#x105; danych Firebase w celu pobierania i wy&#x15B;wietlania listy kurs&#xF3;w.</li><li><strong>Projekt 4.23 CourseCard</strong>: Stworzenie komponentu CourseCard, kt&#xF3;ry reprezentuje pojedynczy kurs w aplikacji, wy&#x15B;wietlaj&#x105;c jego tytu&#x142;, opis i inne informacje.</li><li><strong>Projekt 4.24 CoursesList</strong>: Implementacja komponentu CoursesList, kt&#xF3;ry renderuje list&#x119; kurs&#xF3;w z pobranej bazy danych.</li><li><strong>Projekt 4.25 MainLayout</strong>: Stworzenie podstawowego uk&#x142;adu (layoutu) aplikacji, definiuj&#x105;cego struktur&#x119; i rozmieszczenie g&#x142;&#xF3;wnych element&#xF3;w interfejsu.</li><li><strong>Projekt 4.26 Wyszukiwanie</strong>: Dodanie funkcjonalno&#x15B;ci wyszukiwania, umo&#x17C;liwiaj&#x105;cej u&#x17C;ytkownikom znajdowanie kurs&#xF3;w na podstawie wprowadzonych fraz lub kategorii.</li><li><strong>Projekt 4.27 Dopracowanie</strong>: Optymalizacja i dopracowanie interfejsu aplikacji, w tym poprawa wygl&#x105;du, dostosowanie responsywno&#x15B;ci i usuwanie b&#x142;&#x119;d&#xF3;w.</li><li><strong>Projekt 4.28.0 Refaktoryzacja - PageCoursesList</strong>: Refaktoryzacja komponentu PageCoursesList.</li><li><strong>Projekt 4.28.1 Refaktoryzacja - PageLogin</strong>: Przeprowadzenie refaktoryzacji komponentu PageLogin.</li><li><strong>Projekt 4.28.2 Refaktoryzacja - PageCreateAccount</strong>: Refaktoryzacja komponentu PageCreateAccount.</li><li><strong>Projekt 4.28.3 Refaktoryzacja - PageRecoverPassword</strong>: Przeprowadzenie refaktoryzacji komponentu PageRecoverPassword .</li><li><strong>Projekt 4.28.4 Refaktoryzacja &#x2014; obs&#x142;uga asynchronicznych akcji</strong>: Refaktoryzacja kodu w celu lepszej obs&#x142;ugi asynchronicznych akcji, takich jak pobieranie danych z serwera czy przetwarzanie zapyta&#x144; HTTP.</li><li><strong>Projekt 4.29 Wdro&#x17C;enie</strong>: Przygotowanie aplikacji do wdro&#x17C;enia na serwerze produkcyjnym, konfiguracja &#x15B;rodowiska i publikacja aplikacji online.</li></ol><h3 id="-zobacz-przyk-adow-lekcj-z-tego-modu-u-kursu-">&#x1F440; Zobacz przyk&#x142;adow&#x105; lekcj&#x119; z tego modu&#x142;u kursu:</h3><figure class="kg-card kg-embed-card"><iframe width="200" height="150" src="https://www.youtube.com/embed/BeImcdVZCOc?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen title="CodeRoad,pl przyk&#x142;adowa lekcja | Modu&#x142; 14 &#x2013; Podstawy React | 98. Projekt 4.29 Deployment"></iframe></figure><h3 id="-zobacz-przyk-adowy-kod-z-tej-lekcji-"><strong>&#x1F468;&#x200D;&#x1F4BB; Zobacz przyk&#x142;adowy kod z tej lekcji:</strong></h3><figure class="kg-card kg-embed-card"><iframe width="1000" height="500" src="https://codesandbox.io/embed/github/coderoadpl/frontend--react--project-4.29/tree/master/?fontsize=14&amp;hidenavigation=1&amp;theme=dark" style="width:1000px; height:500px; border:0; border-radius: 4px; overflow:hidden;" sandbox="allow-modals allow-forms allow-popups allow-scripts allow-same-origin"></iframe></figure><h3 id="-kup-kurs">&#x1F4B8; Kup kurs</h3><p>Kup ca&#x142;y kurs CodeRoad &#x2013; <a href="https://coderoad.pl/?ref=blog.coderoad.pl">TUTAJ</a></p><p>Kup ten modu&#x142; kursu &#x2013; <a href="https://coderoad.thinkific.com/enroll/1446387?price_id=1755630&amp;ref=blog.coderoad.pl">TUTAJ</a></p><h4 id="-odbierz-bezp-atny-kurs-">&#x1F4AA; Odbierz bezp&#x142;atny kurs!</h4><!--kg-card-begin: html--><div class="ml-embedded" data-form="VpNCE8"></div><!--kg-card-end: html-->]]></content:encoded></item><item><title><![CDATA[Moduł 13 – Testy asynchroniczne]]></title><description><![CDATA[<figure class="kg-card kg-image-card"><img src="https://s3-eu-central-1.amazonaws.com/blog-coderoad-pl/2023/06/GscwzuEoQuuFcc7BvCmB_TWO-LINER--6-.jpeg" class="kg-image" alt loading="lazy" width="380" height="213"></figure><p><br>Modu&#x142; kursu programowania o numerze 13, zatytu&#x142;owany &quot;Testy asynchroniczne&quot;, sk&#x142;ada si&#x119; z lekcji, kt&#xF3;re po&#x142;&#x105;cz&#x105; nasz&#x105; wiedz&#x119; na temat asynchroniczno&#x15B;ci i testowania kodu. Dowiemy si&#x119;, jak pisa&#x107; testy dla kodu</p>]]></description><link>https://blog.coderoad.pl/modul-13-testy-asynchroniczne/</link><guid isPermaLink="false">6550c92a9383a90001a76962</guid><category><![CDATA[Kurs front-end]]></category><category><![CDATA[Program kursu]]></category><dc:creator><![CDATA[Mateusz Choma]]></dc:creator><pubDate>Sun, 04 Jun 2023 10:47:38 GMT</pubDate><media:content url="https://s3-eu-central-1.amazonaws.com/blog-coderoad-pl/2023/06/GscwzuEoQuuFcc7BvCmB_TWO-LINER--6--1.jpeg" medium="image"/><content:encoded><![CDATA[<figure class="kg-card kg-image-card"><img src="https://s3-eu-central-1.amazonaws.com/blog-coderoad-pl/2023/06/GscwzuEoQuuFcc7BvCmB_TWO-LINER--6-.jpeg" class="kg-image" alt="Modu&#x142; 13 &#x2013; Testy asynchroniczne" loading="lazy" width="380" height="213"></figure><img src="https://s3-eu-central-1.amazonaws.com/blog-coderoad-pl/2023/06/GscwzuEoQuuFcc7BvCmB_TWO-LINER--6--1.jpeg" alt="Modu&#x142; 13 &#x2013; Testy asynchroniczne"><p><br>Modu&#x142; kursu programowania o numerze 13, zatytu&#x142;owany &quot;Testy asynchroniczne&quot;, sk&#x142;ada si&#x119; z lekcji, kt&#xF3;re po&#x142;&#x105;cz&#x105; nasz&#x105; wiedz&#x119; na temat asynchroniczno&#x15B;ci i testowania kodu. Dowiemy si&#x119;, jak pisa&#x107; testy dla kodu obs&#x142;uguj&#x105;cego zapytania asynchroniczne, gdzie czas ich trwania jest nieznany zanim zapytanie nie zostanie zako&#x144;czone.</p><h3 id="-zawarto-modu-u">&#x1F4DA; Zawarto&#x15B;&#x107; modu&#x142;u</h3><p>Modu&#x142; &quot;Testy asynchroniczne&quot; jest podzielony na 12 lekcji:</p><ol><li><strong>Konfiguracja create-react-app - empty template</strong>: Poznamy konfiguracj&#x119; pocz&#x105;tkow&#x105; projektu przy u&#x17C;yciu create-react-app i pustego szablonu.</li><li><strong>expect.assertions</strong>: Nauczymy si&#x119; korzysta&#x107; z metody expect.assertions do tworzenia asercji (za&#x142;o&#x17C;e&#x144;) w testach.</li><li><strong>callbacks</strong>: Poznamy jak testowa&#x107; kodu wykorzystuj&#x105;cy callbacki.</li><li><strong>promises</strong>: Poznamy spos&#xF3;b testowania kodu wykorzystuj&#x105;cego obietnice.</li><li><strong>multiple promises</strong>: Nauczymy si&#x119; testowa&#x107; kod obs&#x142;uguj&#x105;cy wiele obietnic jednocze&#x15B;nie.</li><li><strong>resolves rejects</strong>: Dowiemy si&#x119;, jakie funkcje pomocnicze oferuje Jest do testowania obietnic.</li><li><strong>async await</strong>: Poznamy jak testowa&#x107; kod oparty na sk&#x142;adni async/await.</li><li><strong>mocking fetch</strong>: Nauczymy si&#x119; symulowa&#x107; wywo&#x142;ania fetch przy pomocy mock&#xF3;w w testach.</li><li><strong>Mocking setTimeout</strong>: Poznamy technik&#x119; mockowania funkcji setTimeout w testach.</li><li><strong>Mocking setInterval</strong>: Dowiemy si&#x119;, jak mockowa&#x107; funkcj&#x119; setInterval w testach.</li><li><strong>Testowanie mini aplikacji &#x142;aduj&#x105;cej dane &#x2014; cz&#x119;&#x15B;&#x107; 1</strong>: Prze&#x107;wiczymy testowanie ma&#x142;ej aplikacji, kt&#xF3;ra pobiera dane &#x2014; cz&#x119;&#x15B;&#x107; 1.</li><li><strong>Testowanie mini aplikacji &#x142;aduj&#x105;cej dane &#x2014; cz&#x119;&#x15B;&#x107; 2</strong>: Kontynuacja testowania ma&#x142;ej aplikacji, kt&#xF3;ra pobiera dane &#x2014; cz&#x119;&#x15B;&#x107; 2.</li></ol><h3 id="-zobacz-przyk-adow-lekcj-z-tego-modu-u-kursu-">&#x1F440; Zobacz przyk&#x142;adow&#x105; lekcj&#x119; z tego modu&#x142;u kursu:</h3><figure class="kg-card kg-embed-card"><iframe width="200" height="113" src="https://www.youtube.com/embed/m3sifBGyoIo?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen title="CodeRoad,pl | Modu&#x142; 13 &#x2013; Testy Asynchroniczne | 11.  Testowanie aplikacji &#x142;aduja&#x328;cej dane cz. 1"></iframe></figure><h3 id="-zobacz-przyk-adowy-kod-z-tej-lekcji-"><strong>&#x1F468;&#x200D;&#x1F4BB; Zobacz przyk&#x142;adowy kod z tej lekcji:</strong></h3><figure class="kg-card kg-embed-card"><iframe width="1000" height="500" src="https://codesandbox.io/embed/github/coderoadpl/frontend--tests-async--project-0.0/tree/master/?fontsize=14&amp;hidenavigation=1&amp;theme=dark" style="width:1000px; height:500px; border:0; border-radius: 4px; overflow:hidden;" sandbox="allow-modals allow-forms allow-popups allow-scripts allow-same-origin"></iframe></figure><h3 id="-kup-kurs">&#x1F4B8; Kup kurs</h3><p>Kup ca&#x142;y kurs CodeRoad &#x2013; <a href="https://coderoad.pl/?ref=blog.coderoad.pl">TUTAJ</a></p><p>Kup ten modu&#x142; kursu &#x2013; <a href="https://coderoad.thinkific.com/enroll/1466269?price_id=1785279&amp;ref=blog.coderoad.pl">TUTAJ</a></p><h4 id="-odbierz-bezp-atny-kurs-">&#x1F4AA; Odbierz bezp&#x142;atny kurs!</h4><!--kg-card-begin: html--><div class="ml-embedded" data-form="VpNCE8"></div><!--kg-card-end: html-->]]></content:encoded></item><item><title><![CDATA[Moduł 12 – Asynchroniczność]]></title><description><![CDATA[<figure class="kg-card kg-image-card"><img src="https://s3-eu-central-1.amazonaws.com/blog-coderoad-pl/2023/06/YsSwkGS8RQ6SyJQVqQsa_ONE-LINER--5-.jpeg" class="kg-image" alt loading="lazy" width="380" height="213"></figure><p><br>Modu&#x142; kursu o numerze 12 nosi nazw&#x119; &quot;Asynchroniczno&#x15B;&#x107;&quot; i jest jednym z najwa&#x17C;niejszych temat&#xF3;w, kt&#xF3;ry zostanie om&#xF3;wiony.</p><p>W tej cz&#x119;&#x15B;ci kursu dowiesz si&#x119;, jak pobiera&#x107; dane z serwera oraz jak radzi&</p>]]></description><link>https://blog.coderoad.pl/modul-12-asynchronicznosc/</link><guid isPermaLink="false">6550c92a9383a90001a76961</guid><category><![CDATA[Kurs front-end]]></category><category><![CDATA[Program kursu]]></category><dc:creator><![CDATA[Mateusz Choma]]></dc:creator><pubDate>Sun, 04 Jun 2023 10:29:19 GMT</pubDate><media:content url="https://s3-eu-central-1.amazonaws.com/blog-coderoad-pl/2023/06/YsSwkGS8RQ6SyJQVqQsa_ONE-LINER--5--1.jpeg" medium="image"/><content:encoded><![CDATA[<figure class="kg-card kg-image-card"><img src="https://s3-eu-central-1.amazonaws.com/blog-coderoad-pl/2023/06/YsSwkGS8RQ6SyJQVqQsa_ONE-LINER--5-.jpeg" class="kg-image" alt="Modu&#x142; 12 &#x2013; Asynchronicznos&#x301;&#x107;" loading="lazy" width="380" height="213"></figure><img src="https://s3-eu-central-1.amazonaws.com/blog-coderoad-pl/2023/06/YsSwkGS8RQ6SyJQVqQsa_ONE-LINER--5--1.jpeg" alt="Modu&#x142; 12 &#x2013; Asynchronicznos&#x301;&#x107;"><p><br>Modu&#x142; kursu o numerze 12 nosi nazw&#x119; &quot;Asynchroniczno&#x15B;&#x107;&quot; i jest jednym z najwa&#x17C;niejszych temat&#xF3;w, kt&#xF3;ry zostanie om&#xF3;wiony.</p><p>W tej cz&#x119;&#x15B;ci kursu dowiesz si&#x119;, jak pobiera&#x107; dane z serwera oraz jak radzi&#x107; sobie z asynchronicznym wykonywaniem kodu w j&#x119;zyku JavaScript. B&#x119;dziemy r&#xF3;wnie&#x17C; analizowa&#x107; zdarzenia zwi&#x105;zane z komunikacj&#x105; z serwerem i jak odpowiednio zareagowa&#x107; na odpowiedzi serwera.</p><p>Wcze&#x15B;niej skupiali&#x15B;my si&#x119; wy&#x142;&#x105;cznie na pracy z kodem i danymi, kt&#xF3;re sami wcze&#x15B;niej napisali&#x15B;my lub reagowali&#x15B;my na dzia&#x142;ania u&#x17C;ytkownika naszej aplikacji. W tym rozdziale dowiemy si&#x119;, jak pobiera&#x107; dane z serwer&#xF3;w, przetwarza&#x107; je i wy&#x15B;wietla&#x107;, a tak&#x17C;e jak post&#x119;powa&#x107;, gdy nie uda si&#x119; pobra&#x107; danych. Poznamy r&#xF3;wnie&#x17C; standardy komunikacji z serwerem, takie jak REST.</p><h3 id="-zawarto-modu-u">&#x1F4DA; Zawarto&#x15B;&#x107; modu&#x142;u</h3><p>Modu&#x142; &quot;Asynchronicznos&#x301;&#x107;&quot; jest podzielony na 93 lekcji:</p><ol><li><strong>Kolejno&#x15B;&#x107; wykonywania kodu &#x2013; przypomnienie</strong>: Przypomnienie o kolejno&#x15B;ci, w jakiej wykonywany jest kod w j&#x119;zyku JavaScript.</li><li><strong>setTimeout</strong>: Wykorzystanie funkcji setTimeout do op&#xF3;&#x17A;nienia wykonywania kodu.</li><li><strong>Event loop</strong>: Poznanie zasady dzia&#x142;ania p&#x119;tli zdarze&#x144; (event loop) w przegl&#x105;darkach.</li><li><strong>Callbacki w praktyce</strong>: Zastosowanie callback&#xF3;w w praktyce przy obs&#x142;udze asynchronicznych operacji.</li><li><strong>Koncepcja obietnic w JS</strong>: Zapoznanie si&#x119; z koncepcj&#x105; obietnic (promises) i ich roli w asynchronicznym kodzie.</li><li><strong>new Promise</strong>: Tworzenie w&#x142;asnych obietnic przy pomocy konstruktora Promise.</li><li><strong>Zamawiamy piwo</strong>: Anegdota przedstawiaj&#x105;ca koncepcje promis&#xF3;w przy pomocy zamawiania piwa w barze.</li><li><strong>Callback hell</strong>: Om&#xF3;wienie problemu callback hell i sposob&#xF3;w na jego unikni&#x119;cie.</li><li><strong>then()</strong>: Korzystanie z metody then() do obs&#x142;ugi wynik&#xF3;w zako&#x144;czonych obietnic.</li><li><strong>catch()</strong>: Obs&#x142;uga b&#x142;&#x119;d&#xF3;w przy u&#x17C;yciu metody catch() dla obietnic.</li><li><strong>Chaining &#x2013; &#x142;a&#x144;cuchowanie</strong>: &#x141;&#x105;czenie wielu operacji asynchronicznych.</li><li><strong>Microtasks and Macrotasks</strong>: R&#xF3;&#x17C;nica mi&#x119;dzy microtasks a macrotasks w kontek&#x15B;cie kolejno&#x15B;ci wykonywania kodu.</li><li><strong>Fetch</strong>: Wykorzystanie funkcji fetch do pobierania danych z serwera.</li><li><strong>Custom fetch</strong>: Implementacja w&#x142;asnej funkcji fetch dla lepszej kontroli nad zapytaniami sieciowymi.</li><li><strong>Aplikacja &#x142;aduj&#x105;ca dane</strong>: Tworzenie aplikacji, kt&#xF3;ra pobiera i wy&#x15B;wietla dane z serwera.</li><li><strong>Aplikacja ToDo &#x142;aduj&#x105;ca dane</strong>: Rozbudowa aplikacji ToDo o funkcj&#x119; pobierania danych z serwera.</li><li><strong>Aplikacja ToDo &#x142;aduj&#x105;ca dane - cz&#x119;&#x15B;&#x107; 2</strong>: Kontynuacja rozbudowy aplikacji ToDo o funkcj&#x119; pobierania danych z serwera.</li><li><strong>Aplikacja prze&#x142;adowuj&#x105;ca u&#x17C;ytkownik&#xF3;w</strong>: Implementacja funkcjonalno&#x15B;ci wy&#x15B;wietlania i prze&#x142;adowywania u&#x17C;ytkownik&#xF3;w w nowej aplikacji.</li><li><strong>Filtrowanie u&#x17C;ytkownik&#xF3;w</strong>: Dodanie mo&#x17C;liwo&#x15B;ci filtrowania u&#x17C;ytkownik&#xF3;w w aplikacji.</li><li><strong>Podstawy HTTP</strong>: Om&#xF3;wienie podstawowych poj&#x119;&#x107; zwi&#x105;zanych z protoko&#x142;em HTTP.</li><li><strong>HTTP - status codes &amp; headers</strong>: Poznanie r&#xF3;&#x17C;nych kod&#xF3;w statusu i nag&#x142;&#xF3;wk&#xF3;w HTTP oraz ich znaczenia.</li><li><strong>HTTP - REST API &amp; CRUD</strong>: Zrozumienie REST API i operacji CRUD (Create, Read, Update, Delete) w kontek&#x15B;cie HTTP.</li><li><strong>HTTP - Postman - instalacja</strong>: Instrukcja instalacji narz&#x119;dzia Postman do testowania i debugowania interfejs&#xF3;w HTTP.</li><li><strong>Open Weather Map API</strong>: Wykorzystanie Open Weather Map API do pobierania informacji o prognozie pogody.</li><li><strong>Aplikacja pogodowa - cz&#x119;&#x15B;&#x107; 1</strong>: Tworzenie aplikacji pogodowej, kt&#xF3;ra korzysta z Open Weather Map API.</li><li><strong>Konfiguracja webpacka przez create-react-app</strong>: Konfiguracja &#x15B;rodowiska developerskiego z u&#x17C;yciem narz&#x119;dzia create-react-app.</li><li><strong>Aplikacja pogodowa - cz&#x119;&#x15B;&#x107; 2</strong>: Kontynuacja rozbudowy aplikacji pogodowej o nowe funkcje.</li><li><strong>Aplikacja pogodowa - cz&#x119;&#x15B;&#x107; 3</strong>: Dalsze ulepszanie aplikacji pogodowej, dodawanie animacji i stylizacji.</li><li><strong>Debounce</strong>: Zastosowanie debouncingu do lepszej obs&#x142;ugi zdarze&#x144; asynchronicznych.</li><li><strong>Aplikacja pogodowa - cz&#x119;&#x15B;&#x107; 4</strong>: Rozbudowa aplikacji pogodowej o funkcj&#x119; wyszukiwania i filtrowania danych.</li><li><strong>Aplikacja pogodowa - cz&#x119;&#x15B;&#x107; 5</strong>: Finalizacja aplikacji pogodowej, optymalizacja i testowanie.</li><li><strong>Firebase</strong> &#x2013; wprowadzenie: Wprowadzenie do platformy Firebase i jej mo&#x17C;liwo&#x15B;ci.</li><li><strong>Firebase &#x2013; REST API - PUT</strong>: Wykorzystanie metody PUT w REST API Firebase do aktualizacji danych.</li><li><strong>Firebase &#x2013; REST API - POST</strong>: Dodawanie nowych danych za pomoc&#x105; metody POST w REST API Firebase.</li><li><strong>Firebase &#x2013; REST API - PATCH</strong>: Aktualizacja wybranych p&#xF3;l danych przy u&#x17C;yciu metody PATCH w REST API Firebase.</li><li><strong>Firebase &#x2013; REST API - DELETE</strong>: Usuwanie danych z bazy przy u&#x17C;yciu metody DELETE w REST API Firebase.</li><li><strong>Firebase &#x2013; REST API - GET &amp; filtrowanie</strong>: Pobieranie danych z bazy Firebase i filtrowanie ich zgodnie z okre&#x15B;lonymi kryteriami.</li><li><strong>Counter z baz&#x105; danych 1</strong>: Implementacja licznika z wykorzystaniem bazy danych w Firebase.</li><li><strong>Counter z baz&#x105; danych 2</strong>: Kontynuacja rozbudowy licznika z wykorzystaniem bazy danych w Firebase.</li><li><strong>W&#x142;asny &quot;Postman&quot; cz&#x119;&#x15B;&#x107; 1 &#x2013; Textarea</strong>: Tworzenie w&#x142;asnej aplikacji podobnej do Postman z wykorzystaniem elementu textarea.</li><li><strong>W&#x142;asny &quot;Postman&quot; cz&#x119;&#x15B;&#x107; 2 &#x2013; App state</strong>: Implementacja stanu aplikacji w aplikacji typu &quot;Postman&quot;.</li><li><strong>W&#x142;asny &quot;Postman&quot; cz&#x119;&#x15B;&#x107; 3 &#x2013; Select</strong>: Dodanie elementu Select do aplikacji &quot;Postman&quot; dla wyboru typu &#x17C;&#x105;dania.</li><li><strong>W&#x142;asny &quot;Postman&quot; cz&#x119;&#x15B;&#x107; 4 &#x2013; Input &amp; Button</strong>: Dodanie p&#xF3;l Input i przycisku do aplikacji &quot;Postman&quot; w celu wprowadzania danych.</li><li><strong>W&#x142;asny &quot;Postman&quot; cz&#x119;&#x15B;&#x107; 5 &#x2013; Wysy&#x142;anie &#x17C;&#x105;da&#x144;</strong>: Implementacja funkcji wysy&#x142;ania &#x17C;&#x105;da&#x144; w aplikacji &quot;Postman&quot;.</li><li><strong>W&#x142;asny &quot;Postman&quot; cz&#x119;&#x15B;&#x107; 6 </strong>&#x2013; Dopracowanie aplikacji &quot;Postman&quot;.</li><li><strong>ToDo lista z baz&#x105; danych</strong>: Tworzenie aplikacji ToDo listy z wykorzystaniem bazy danych.</li><li><strong>ToDo lista z baz&#x105; danych &#x2013; cz&#x119;&#x15B;&#x107; 2</strong>: Kontynuacja rozbudowy aplikacji ToDo listy z baz&#x105; danych.</li><li><strong>ToDo lista z baz&#x105; danych &#x2013; cz&#x119;&#x15B;&#x107; 3</strong>: Dalsza rozbudowa aplikacji ToDo listy z baz&#x105; danych.</li><li><strong>ToDo lista CRUD &#x2013; cz&#x119;&#x15B;&#x107; 1</strong>: Wprowadzenie do operacji CRUD (Create, Read, Update, Delete) w aplikacji ToDo listy.</li><li><strong>ToDo lista CRUD &#x2013; cz&#x119;&#x15B;&#x107; 2 - READ</strong>: Implementacja operacji odczytu (READ) w aplikacji ToDo listy.</li><li><strong>ToDo lista CRUD &#x2013; cz&#x119;&#x15B;&#x107; 3 - CREATE</strong>: Implementacja operacji tworzenia (CREATE) w aplikacji ToDo listy.</li><li><strong>ToDo lista CRUD &#x2013; cz&#x119;&#x15B;&#x107; 4 - UPDATE</strong>: Implementacja operacji aktualizacji (UPDATE) w aplikacji ToDo listy.</li><li><strong>ToDo lista CRUD &#x2013; cz&#x119;&#x15B;&#x107; 5 - DELETE</strong>: Implementacja operacji usuwania (DELETE) w aplikacji ToDo listy.</li><li><strong>ToDo lista CRUD &#x2013; cz&#x119;&#x15B;&#x107; 6:</strong> Rozbudowywanie aplikacji ToDo listy z operacjami CRUD.</li><li><strong>Jak dzia&#x142;a autoryzacja w sieci &#x2013; anegdota</strong>: Przyk&#x142;adowa anegdota ilustruj&#x105;ca dzia&#x142;anie mechanizmu autoryzacji w sieci.</li><li><strong>Jak dzia&#x142;a autoryzacja w sieci &#x2013; diagram</strong>: Przedstawienie diagramu, kt&#xF3;ry obrazuje dzia&#x142;anie autoryzacji w sieci.</li><li><strong>Jak wygl&#x105;da JWT</strong>: Om&#xF3;wienie struktury i wygl&#x105;du tokena JWT (JSON Web Token).</li><li><strong>Konfiguracja autentykacji w Firebase</strong>: Instrukcja konfiguracji mechanizmu autentykacji w Firebase.</li><li><strong>Konfiguracja autoryzacji w Firebase</strong>: Om&#xF3;wienie procesu konfiguracji mechanizmu autoryzacji w Firebase.</li><li><strong>Rejestracja przez REST API</strong>: Implementacja funkcjonalno&#x15B;ci rejestracji u&#x17C;ytkownika przez REST API.</li><li><strong>Logowanie przez REST API</strong>: Implementacja funkcjonalno&#x15B;ci logowania u&#x17C;ytkownika przez REST API.</li><li><strong>Dost&#x119;p do autoryzowanego zasobu przez REST API</strong>: Przedstawienie sposobu uzyskiwania dost&#x119;pu do autoryzowanego zasobu przy u&#x17C;yciu REST API.</li><li><strong>Logowanie w JS</strong>: Przyk&#x142;ad implementacji funkcjonalno&#x15B;ci logowania u&#x17C;ytkownika w j&#x119;zyku JavaScript.</li><li><strong>Rejestracja w JS</strong>: Przyk&#x142;ad implementacji funkcjonalno&#x15B;ci rejestracji u&#x17C;ytkownika w j&#x119;zyku JavaScript.</li><li><strong>Dekodowanie tokenu JWT</strong>: Przyk&#x142;ad dekodowania tokenu JWT w celu uzyskania informacji o u&#x17C;ytkowniku.</li><li><strong>Pobieranie danych u&#x17C;ytkownika</strong>: Przyk&#x142;ad implementacji funkcjonalno&#x15B;ci pobierania danych u&#x17C;ytkownika z bazy danych.</li><li><strong>Zmiana danych u&#x17C;ytkownika</strong>: Przyk&#x142;ad implementacji funkcjonalno&#x15B;ci zmiany danych u&#x17C;ytkownika w bazie danych.</li><li><strong>Zmiana has&#x142;a</strong>: Przyk&#x142;ad implementacji funkcjonalno&#x15B;ci zmiany has&#x142;a u&#x17C;ytkownika w bazie danych.</li><li><strong>Usuwanie u&#x17C;ytkownika</strong>: Przyk&#x142;ad implementacji funkcjonalno&#x15B;ci usuwania u&#x17C;ytkownika z bazy danych.</li><li><strong>Autoryzowane zapytania w JS</strong>: Przyk&#x142;ad implementacji autoryzowanych zapyta&#x144; do serwera w j&#x119;zyku JavaScript.</li><li><strong>Zapisywanie token&#xF3;w w localStorage</strong>: Przedstawienie sposobu zapisywania token&#xF3;w autoryzacyjnych w pami&#x119;ci przegl&#x105;darki za pomoc&#x105; localStorage.</li><li><strong>Sprawdzanie stanu zalogowania u&#x17C;ytkownika</strong>: Implementacja funkcjonalno&#x15B;ci sprawdzania stanu zalogowania u&#x17C;ytkownika w aplikacji.</li><li><strong>Wylogowywanie</strong>: Przyk&#x142;ad implementacji funkcjonalno&#x15B;ci wylogowywania u&#x17C;ytkownika z aplikacji.</li><li><strong>Od&#x15B;wie&#x17C;anie token&#xF3;w podczas wykonywania zapyta&#x144;</strong>: Przedstawienie sposobu od&#x15B;wie&#x17C;ania token&#xF3;w autoryzacyjnych podczas wykonywania zapyta&#x144; do serwera.</li><li><strong>Wylogowywanie gdy serwer zwr&#xF3;ci 401</strong>: Implementacja automatycznego wylogowywania u&#x17C;ytkownika w przypadku otrzymania odpowiedzi 401 od serwera.</li><li><strong>Zmienne &#x15B;rodowiskowe</strong>: Om&#xF3;wienie u&#x17C;ywania zmiennych &#x15B;rodowiskowych w aplikacjach webowych.</li><li><strong>Komponent Auth cz.1</strong>: Tworzenie komponentu odpowiedzialnego za funkcje autoryzacyjne &#x2014; cz&#x119;&#x15B;&#x107; 1.</li><li><strong>Komponent Auth cz. 2</strong>: Tworzenie komponentu odpowiedzialnego za funkcje autoryzacyjne &#x2014; cz&#x119;&#x15B;&#x107; 2.</li><li><strong>Komponent Auth cz. 3:</strong> Tworzenie komponentu odpowiedzialnego za funkcje autoryzacyjne &#x2014; cz&#x119;&#x15B;&#x107; 3.</li><li><strong>Komponent Auth cz 4</strong>: Tworzenie komponentu odpowiedzialnego za funkcje autoryzacyjne &#x2014; cz&#x119;&#x15B;&#x107; 4.</li><li><strong>Komponent logowania</strong>: Implementacja komponentu logowania w aplikacji.</li><li><strong>Komponent rejestracji</strong>: Implementacja komponentu rejestracji w aplikacji.</li><li><strong>ToDo lista z autoryzacj&#x105; cz. 1</strong>: Rozszerzanie aplikacji ToDo listy o funkcje autoryzacji &#x2014; cz&#x119;&#x15B;&#x107; 1.</li><li><strong>ToDo lista z autoryzacj&#x105; cz. 2</strong>: Rozszerzanie aplikacji ToDo listy o funkcje autoryzacji &#x2014; cz&#x119;&#x15B;&#x107; 2.</li><li><strong>Ustawianie regu&#x142; autoryzacji w Firebase</strong>: Om&#xF3;wienie procesu konfiguracji regu&#x142; autoryzacji w Firebase.</li><li><strong>Promise.all()</strong>: Wykorzystanie funkcji Promise.all() do r&#xF3;wnoczesnego wykonywania wielu obietnic.</li><li><strong>Promise.all() - rejection</strong>: Obs&#x142;uga odrzucenia obietnic w funkcji Promise.all().</li><li><strong>Promise.all() - w&#x142;asna implementacja</strong>: Implementacja w&#x142;asnej funkcji Promise.all().</li><li><strong>Promise.allSettled()</strong>: Wykorzystanie funkcji Promise.allSettled() do obs&#x142;ugi wielu obietnic niezale&#x17C;nie od ich stanu.</li><li><strong>Promise.race()</strong>: Wykorzystanie funkcji Promise.race() do obs&#x142;ugi wielu obietnic i zwr&#xF3;cenie warto&#x15B;ci najwcze&#x15B;niej zako&#x144;czonej.</li><li><strong>Promise.any()</strong>: Wykorzystanie funkcji Promise.any() do obs&#x142;ugi wielu obietnic i zwr&#xF3;cenie warto&#x15B;ci pierwszej zako&#x144;czonej sukcesem.</li><li><strong>async await</strong>: Wykorzystanie sk&#x142;adni async/await do obs&#x142;ugi asynchronicznych operacji.</li><li><strong>Async await catching errors</strong>: Obs&#x142;uga b&#x142;&#x119;d&#xF3;w przy u&#x17C;yciu sk&#x142;adni async/await.</li></ol><h3 id="-zobacz-przyk-adow-lekcj-z-tego-modu-u-kursu-">&#x1F440; Zobacz przyk&#x142;adow&#x105; lekcj&#x119; z tego modu&#x142;u kursu:</h3><figure class="kg-card kg-embed-card"><iframe width="200" height="113" src="https://www.youtube.com/embed/eoqJuKm38ic?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen title="CodeRoad,pl przyk&#x142;adowa lekcja | Modu&#x142; 12 &#x2013; Asynchroniczno&#x15B;&#x107; | 05. Koncepcja obietnic (Promise) w JS"></iframe></figure><h3 id="-kup-kurs">&#x1F4B8; Kup kurs</h3><p>Kup ca&#x142;y kurs CodeRoad &#x2013; <a href="https://coderoad.pl/?ref=blog.coderoad.pl">TUTAJ</a></p><p>Kup ten modu&#x142; kursu &#x2013; <a href="https://coderoad.thinkific.com/enroll/1446189?price_id=1755400&amp;ref=blog.coderoad.pl">TUTAJ</a></p><h4 id="-odbierz-bezp-atny-kurs-">&#x1F4AA; Odbierz bezp&#x142;atny kurs!</h4><!--kg-card-begin: html--><div class="ml-embedded" data-form="VpNCE8"></div><!--kg-card-end: html-->]]></content:encoded></item><item><title><![CDATA[Moduł 11 – Wprowadzenie do testowania kodu]]></title><description><![CDATA[<figure class="kg-card kg-image-card"><img src="https://s3-eu-central-1.amazonaws.com/blog-coderoad-pl/2023/06/jrJPKDZ8S0Wbh6iuf9Ea_THREE-LINER--8-.jpeg" class="kg-image" alt loading="lazy" width="380" height="213"></figure><p><br>Modu&#x142; &quot;Wprowadzenie do testowania kodu&quot; koncentruje si&#x119; na znaczeniu i podstawach testowania kodu. Dowiemy si&#x119;, dlaczego warto testowa&#x107; nasze skrypty i jak testowanie mo&#x17C;e pom&#xF3;c nam w zabezpieczaniu naszego kodu przed b&#x142;&#x119;dami. Poznamy r&#xF3;&#x17C;ne</p>]]></description><link>https://blog.coderoad.pl/modul-11-wprowadzenie-do-testowania-kodu/</link><guid isPermaLink="false">6550c92a9383a90001a76960</guid><category><![CDATA[Kurs front-end]]></category><category><![CDATA[Program kursu]]></category><dc:creator><![CDATA[Mateusz Choma]]></dc:creator><pubDate>Sun, 04 Jun 2023 10:05:48 GMT</pubDate><media:content url="https://s3-eu-central-1.amazonaws.com/blog-coderoad-pl/2023/06/jrJPKDZ8S0Wbh6iuf9Ea_THREE-LINER--8--1.jpeg" medium="image"/><content:encoded><![CDATA[<figure class="kg-card kg-image-card"><img src="https://s3-eu-central-1.amazonaws.com/blog-coderoad-pl/2023/06/jrJPKDZ8S0Wbh6iuf9Ea_THREE-LINER--8-.jpeg" class="kg-image" alt="Modu&#x142; 11 &#x2013; Wprowadzenie do testowania kodu" loading="lazy" width="380" height="213"></figure><img src="https://s3-eu-central-1.amazonaws.com/blog-coderoad-pl/2023/06/jrJPKDZ8S0Wbh6iuf9Ea_THREE-LINER--8--1.jpeg" alt="Modu&#x142; 11 &#x2013; Wprowadzenie do testowania kodu"><p><br>Modu&#x142; &quot;Wprowadzenie do testowania kodu&quot; koncentruje si&#x119; na znaczeniu i podstawach testowania kodu. Dowiemy si&#x119;, dlaczego warto testowa&#x107; nasze skrypty i jak testowanie mo&#x17C;e pom&#xF3;c nam w zabezpieczaniu naszego kodu przed b&#x142;&#x119;dami. Poznamy r&#xF3;&#x17C;ne metody i narz&#x119;dzia, kt&#xF3;re umo&#x17C;liwi&#x105; nam testowanie naszych projekt&#xF3;w. Upraszczaj&#x105;c, mo&#x17C;na powiedzie&#x107;, &#x17C;e testy b&#x119;d&#x105; za nas &quot;klika&#x107;&quot; i sprawdza&#x107;, czy nasz kod dzia&#x142;a poprawnie :)</p><h3 id="-zawarto-modu-u">&#x1F4DA; Zawarto&#x15B;&#x107; modu&#x142;u</h3><p>Modu&#x142; &quot;Wprowadzenie do testowania kodu&quot; jest podzielony na 14 lekcji:</p><ol><li><strong>Wst&#x119;p</strong>: Zapoznamy si&#x119; z tematyk&#x105; testowania kodu i dowiemy si&#x119;, dlaczego jest to wa&#x17C;ne w procesie programowania.</li><li><strong>Pierwszy test w czystym JS</strong>: Poznamy podstawy tworzenia prostych test&#xF3;w w czystym JavaScript.</li><li><strong>orderTotal</strong>: Stworzymy funkcje licz&#x105;c&#x105; sum&#x119; zam&#xF3;wienia w sklepie internetowym i nauczymy si&#x119; tworzy&#x107; testy dla tej funkcji.</li><li><strong>Test helpers</strong>: Stworzymy w czystym JS funkcje pomocnicze, kt&#xF3;re pomog&#x105; nam w tworzeniu czytelnych i efektywnych test&#xF3;w.</li><li><strong>orderTotal + free shipping</strong>: Rozszerzymy nasze testy dla funkcji orderTotal o przypadki, w kt&#xF3;rych mamy darmow&#x105; wysy&#x142;k&#x119;.</li><li><strong>Jest</strong>: Przedstawimy narz&#x119;dzie Jest, popularny framework do testowania w j&#x119;zyku JavaScript.</li><li><strong>orderTotal + Jest:</strong> Nauczymy si&#x119; tworzy&#x107; testy dla funkcji orderTotal przy u&#x17C;yciu narz&#x119;dzia Jest.</li><li><strong>Testowanie klas</strong>: Dowiemy si&#x119;, jak testowa&#x107; klasy w naszych projektach i tworzy&#x107; testy dla ich metod.</li><li><strong>Setup and teardown</strong>: Poznamy koncepty setup i teardown, kt&#xF3;re pozwalaj&#x105; nam przygotowa&#x107; &#x15B;rodowisko testowe przed wykonaniem test&#xF3;w i posprz&#x105;ta&#x107; po nich.</li><li><strong>Functions mocks</strong>: Om&#xF3;wimy technik&#x119; mockowania funkcji i jak mo&#x17C;e ona by&#x107; przydatna w testowaniu.</li><li><strong>Class methods mocks</strong>: Nauczymy si&#x119; mockowa&#x107; metody klas i jak mo&#x17C;na to wykorzysta&#x107; w testowaniu.</li><li><strong>Testowanie paczki NPM - cz&#x119;&#x15B;&#x107; 1</strong>: Przeanalizujemy, jak testowa&#x107; kod paczki, kt&#xF3;r&#x105; w poprzednim module opublikowali&#x15B;my w NPM.</li><li><strong>Testowanie paczki NPM - cz&#x119;&#x15B;&#x107; 2</strong>: Kontynuacja tematu testowania w&#x142;asnej paczki NPM.</li><li><strong>Git Hooks &#x2013; Husky</strong>: Przedstawimy u&#x17C;ycie hook&#xF3;w w GIT, co umo&#x17C;liwi nam uruchamianie test&#xF3;w np. tu&#x17C; przed zapisaniem commita bu upewni&#x107; si&#x119;, &#x17C;e kod, kt&#xF3;ry chcemy zapisa&#x107; w repozytorium dzia&#x142;a poprawnie.</li></ol><h3 id="-zobacz-przyk-adow-lekcj-z-tego-modu-u-kursu-">&#x1F440; Zobacz przyk&#x142;adow&#x105; lekcj&#x119; z tego modu&#x142;u kursu:</h3><figure class="kg-card kg-embed-card"><iframe width="200" height="150" src="https://www.youtube.com/embed/-hrb-RuAC6Y?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen title="CodeRoad,pl przyk&#x142;adowa lekcja | Modu&#x142; 11 &#x2013; Wprowadzenie do testowania kodu | 7. orderTotal + Jest"></iframe></figure><h3 id="-zobacz-przyk-adowy-kod-z-tej-lekcji-"><strong>&#x1F468;&#x200D;&#x1F4BB; Zobacz przyk&#x142;adowy kod z tej lekcji:</strong></h3><figure class="kg-card kg-embed-card"><iframe width="1000" height="500" src="https://codesandbox.io/embed/github/coderoadpl/frontend--testing-intro--task-5/tree/master/?fontsize=14&amp;hidenavigation=1&amp;theme=dark" style="width:1000px; height:500px; border:0; border-radius: 4px; overflow:hidden;" sandbox="allow-modals allow-forms allow-popups allow-scripts allow-same-origin"></iframe></figure><h3 id="-kup-kurs">&#x1F4B8; Kup kurs</h3><p>Kup ca&#x142;y kurs CodeRoad &#x2013; <a href="https://coderoad.pl/?ref=blog.coderoad.pl">TUTAJ</a></p><p>Kup ten modu&#x142; kursu &#x2013; <a href="https://coderoad.thinkific.com/enroll/1446055?price_id=1755249&amp;ref=blog.coderoad.pl">TUTAJ</a></p><h4 id="-odbierz-bezp-atny-kurs-">&#x1F4AA; Odbierz bezp&#x142;atny kurs!</h4><!--kg-card-begin: html--><div class="ml-embedded" data-form="VpNCE8"></div><!--kg-card-end: html-->]]></content:encoded></item><item><title><![CDATA[Moduł 10 – Moduły, NPM i ES6+]]></title><description><![CDATA[<figure class="kg-card kg-image-card"><img src="https://s3-eu-central-1.amazonaws.com/blog-coderoad-pl/2023/06/gmPTZdHqQNqDgcW8nLMA_THREE-LINER--7-.jpeg" class="kg-image" alt loading="lazy" width="380" height="213"></figure><p><br>JavaScript, od 1995 roku, kiedy zosta&#x142; opublikowany, przeszed&#x142; bardzo d&#x142;ug&#x105; drog&#x119; do stanu, w kt&#xF3;rym jest dzi&#x15B;. Najwi&#x119;ksze zmiany zasz&#x142;y stosunkowo niedawno, w 2015 roku, gdy wydana zosta&#x142;a wersja 6 znana jako ECMAScript 6 lub</p>]]></description><link>https://blog.coderoad.pl/modul-10-moduly-npm-i-es6/</link><guid isPermaLink="false">6550c92a9383a90001a7695f</guid><category><![CDATA[Kurs front-end]]></category><category><![CDATA[Program kursu]]></category><dc:creator><![CDATA[Mateusz Choma]]></dc:creator><pubDate>Fri, 02 Jun 2023 18:26:40 GMT</pubDate><media:content url="https://s3-eu-central-1.amazonaws.com/blog-coderoad-pl/2023/06/gmPTZdHqQNqDgcW8nLMA_THREE-LINER--7--1.jpeg" medium="image"/><content:encoded><![CDATA[<figure class="kg-card kg-image-card"><img src="https://s3-eu-central-1.amazonaws.com/blog-coderoad-pl/2023/06/gmPTZdHqQNqDgcW8nLMA_THREE-LINER--7-.jpeg" class="kg-image" alt="Modu&#x142; 10 &#x2013; Modu&#x142;y, NPM i ES6+" loading="lazy" width="380" height="213"></figure><img src="https://s3-eu-central-1.amazonaws.com/blog-coderoad-pl/2023/06/gmPTZdHqQNqDgcW8nLMA_THREE-LINER--7--1.jpeg" alt="Modu&#x142; 10 &#x2013; Modu&#x142;y, NPM i ES6+"><p><br>JavaScript, od 1995 roku, kiedy zosta&#x142; opublikowany, przeszed&#x142; bardzo d&#x142;ug&#x105; drog&#x119; do stanu, w kt&#xF3;rym jest dzi&#x15B;. Najwi&#x119;ksze zmiany zasz&#x142;y stosunkowo niedawno, w 2015 roku, gdy wydana zosta&#x142;a wersja 6 znana jako ECMAScript 6 lub w skr&#xF3;cie ES6. Za pomoc&#x105; nazwy ES6+ lub ESNext okre&#x15B;la si&#x119; wszystkie nowe wersje JS-a, czyli te wydane od 2015 roku. Dowiemy si&#x119;, jakie zmiany zasz&#x142;y, z czego mo&#x17C;emy swobodnie korzysta&#x107;, na co trzeba uwa&#x17C;a&#x107; i co najwa&#x17C;niejsze &#x2014; jak&#x105; wersj&#x119; JS-a obs&#x142;uguj&#x105; przegl&#x105;darki.</p><h3 id="-zawarto-modu-u">&#x1F4DA; Zawarto&#x15B;&#x107; modu&#x142;u</h3><p>Modu&#x142; &quot;Modu&#x142;y, NPM i ES6+&quot; jest podzielony na 42 lekcje:</p><ol><li><strong>Wst&#x119;p</strong>: Lekcja wprowadza do tematu modu&#x142;&#xF3;w, NPM i ES6+, prezentuj&#x105;c ich znaczenie i wp&#x142;yw na rozw&#xF3;j j&#x119;zyka JavaScript.</li><li><strong>Podstawy dzia&#x142;ania modu&#x142;&#xF3;w</strong>: Omawia podstawowe koncepcje modu&#x142;&#xF3;w w JavaScript, takie jak eksportowanie i importowanie funkcji i zmiennych.</li><li><strong>Importy i exporty nazwane i domy&#x15B;lne</strong>: Pokazuje r&#xF3;&#x17C;ne sposoby eksportowania i importowania element&#xF3;w w modu&#x142;ach, zar&#xF3;wno za pomoc&#x105; nazwanych, jak i domy&#x15B;lnych eksport&#xF3;w.</li><li><strong>Symulacja dzia&#x142;ania modu&#x142;u za pomoc&#x105; funkcji</strong>: Odczarowujemy &quot;czarn&#x105; skrzynk&#x119;&quot; jak&#x105; dla wielu s&#x105; modu&#x142;y, przedstawiaj&#x105;c metod&#x119; ich dzia&#x142;ania za pomoc&#x105; starej dobrej funkcji w czystym JS!</li><li><strong>Import ca&#x142;ej zawarto&#x15B;ci modu&#x142;u na raz</strong>: Wyja&#x15B;nia mo&#x17C;liwo&#x15B;&#x107; importowania ca&#x142;ego modu&#x142;u jednocze&#x15B;nie, co u&#x142;atwia korzystanie z niekt&#xF3;rych bibliotek i zestaw&#xF3;w narz&#x119;dzi.</li><li><strong>Projekt 0 - counter z u&#x17C;yciem modu&#x142;&#xF3;w</strong>: Praktyczne zastosowanie modu&#x142;&#xF3;w w prostym projekcie licznika, aby zaprezentowa&#x107; ich dzia&#x142;anie w praktyce.</li><li><strong>Projekt 1 - counter z interfejsem z u&#x17C;yciem modu&#x142;&#xF3;w:</strong> Kontynuacja poprzedniego projektu, dodaj&#x105;c interfejs u&#x17C;ytkownika przy u&#x17C;yciu modu&#x142;&#xF3;w. </li><li><strong>Instalacja NodeJS</strong>: Instrukcje dotycz&#x105;ce instalacji &#x15B;rodowiska Node.js na Windows, MacOS i Linux.</li><li><strong>NPM inicjalizacja i instalacja zale&#x17C;no&#x15B;ci</strong>: Omawia inicjalizacj&#x119; projektu przy u&#x17C;yciu NPM oraz proces instalacji i zarz&#x105;dzania zale&#x17C;no&#x15B;ciami.</li><li><strong>U&#x17C;ycie modu&#x142;&#xF3;w zainstalowanych przez NPM</strong>: Pokazuje, jak korzysta&#x107; z zewn&#x119;trznych modu&#x142;&#xF3;w zainstalowanych przez NPM w naszym projekcie.</li><li><strong>Webpack</strong>: Wprowadzenie do narz&#x119;dzia Webpack, kt&#xF3;re umo&#x17C;liwia pakowanie i budowanie aplikacji JavaScript.</li><li><strong>Webpack - HtmlWebpackPlugin</strong>: Wyja&#x15B;nia, jak skonfigurowa&#x107; HtmlWebpackPlugin w Webpacku, aby generowa&#x107; dynamicznie pliki HTML.</li><li><strong>Webpack - DevServer</strong>: Przedstawia DevServer w Webpacku, kt&#xF3;ry zapewnia szybkie &#x15B;rodowisko deweloperskie z automatycznym od&#x15B;wie&#x17C;aniem strony.</li><li><strong>Webpack - importowanie CSS</strong>: Demonstruje, jak importowa&#x107; i zarz&#x105;dza&#x107; stylami CSS w projekcie za pomoc&#x105; Webpacka.</li><li><strong>Webpack - importowanie zdj&#x119;&#x107; lub innych zasob&#xF3;w</strong>: Wyja&#x15B;nia, jak importowa&#x107; i obs&#x142;ugiwa&#x107; grafiki, zdj&#x119;cia i inne zasoby w projekcie za pomoc&#x105; Webpacka.</li><li><strong>Webpack - bundle hash i CleanWebpackPlugin</strong>: Omawia techniki tworzenia unikalnych hash&#xF3;w dla plik&#xF3;w wynikowych i czyszczenia folderu wyj&#x15B;ciowego za pomoc&#x105; CleanWebpackPlugin w Webpacku.</li><li><strong>Babel - wprowadzenie</strong>: Przedstawia narz&#x119;dzie Babel, kt&#xF3;re umo&#x17C;liwia transpilacj&#x119; kodu ES6+ na wcze&#x15B;niejsze wersje JavaScript.</li><li><strong>Babel - transpilacja za pomoc&#x105; CLI</strong>: Wyja&#x15B;nia, jak u&#x17C;ywa&#x107; Babela z interfejsem wiersza polece&#x144; (CLI) do transpilacji kodu JavaScript.</li><li><strong>Webpack - babel-loader</strong>: Pokazuje, jak skonfigurowa&#x107; babel-loader w Webpacku, aby automatycznie transpilowa&#x107; kod przy budowaniu.</li><li><strong>Webpack - struktura folder&#xF3;w</strong>: Przedstawia sugerowan&#x105; struktur&#x119; folder&#xF3;w dla projektu opartego na Webpacku, zapewniaj&#x105;c&#x105; czytelno&#x15B;&#x107; i skalowalno&#x15B;&#x107;.</li><li><strong>Webpack - source maps</strong>: Wyja&#x15B;nia, jak skonfigurowa&#x107; source maps w Webpacku, aby u&#x142;atwi&#x107; debugowanie kodu w przegl&#x105;darce.</li><li><strong>ES6 - lista zmian</strong>: Przegl&#x105;d zmian wprowadzonych w ES6, takich jak nowe sk&#x142;adnie, metody i funkcje, kt&#xF3;re znacz&#x105;co ulepszaj&#x105; JavaScript.</li><li><strong>ES6 - extended object literals</strong>: Omawia rozszerzone litera&#x142;y obiektowe w ES6, kt&#xF3;re umo&#x17C;liwiaj&#x105; bardziej wyrafinowane tworzenie i inicjalizacj&#x119; obiekt&#xF3;w.</li><li><strong>ES6 - template strings</strong>: Wyja&#x15B;nia template strings w ES6, kt&#xF3;re umo&#x17C;liwiaj&#x105; &#x142;&#x105;czenie dynamicznych warto&#x15B;ci z ci&#x105;gami znak&#xF3;w w bardziej czytelny spos&#xF3;b.</li><li><strong>ES6 - destrukturyzacja tablic</strong>: Pokazuje destrukturyzacj&#x119; tablic w ES6, umo&#x17C;liwiaj&#x105;c wygodne wyodr&#x119;bnianie warto&#x15B;ci z tablicy do oddzielnych zmiennych.</li><li><strong>ES6 - destrukturyzacja tablic w parametrach</strong>: Wyja&#x15B;nia, jak destrukturyzowa&#x107; tablice w parametrach funkcji, co u&#x142;atwia przekazywanie danych do funkcji.</li><li><strong>ES6 - destrukturyzacja obiekt&#xF3;w</strong>: Przedstawia destrukturyzacj&#x119; obiekt&#xF3;w w ES6, umo&#x17C;liwiaj&#x105;c wygodne wyci&#x105;ganie warto&#x15B;ci z obiektu do zmiennych o odpowiadaj&#x105;cych nazwach.</li><li><strong>ES6 - destrukturyzacja obiekt&#xF3;w z innymi nazwami zmiennych</strong>: Omawia technik&#x119; destrukturyzacji obiekt&#xF3;w z przypisaniem do zmiennych o innych nazwach ni&#x17C; oryginalne w&#x142;a&#x15B;ciwo&#x15B;ci.</li><li><strong>ES6 - u&#x17C;ycie default, rest i spread w funkcjach</strong>: Przedstawia zastosowanie konstrukcji default, rest i spread w funkcjach w ES6, kt&#xF3;re wprowadzaj&#x105; nowe mo&#x17C;liwo&#x15B;ci manipulacji danymi.</li><li><strong>ES6 - nowe w&#x142;a&#x15B;ciwo&#x15B;ci wbudowanych obiekt&#xF3;w</strong>: Wyja&#x15B;nia nowe w&#x142;a&#x15B;ciwo&#x15B;ci i metody dodane do wbudowanych obiekt&#xF3;w w ES6.</li><li><strong>ES7 - lista zmian</strong>: Przegl&#x105;d zmian wprowadzonych w ES7, takich jak metoda includes dla tablic.</li><li><strong>ES8 - lista zmian</strong>: Omawia zmiany wprowadzone w ES8.</li><li><strong>ES9 - lista zmian</strong>: Przedstawia zmiany wprowadzone w ES9.</li><li><strong>ES10 - lista zmian</strong>: Wyja&#x15B;nia nowo&#x15B;ci w ES10.</li><li><strong>ES11 - globalThis</strong>: Przedstawia dodanie globalThis w ES11, co umo&#x17C;liwia &#x142;atwiejszy dost&#x119;p do globalnego obiektu niezale&#x17C;nie od &#x15B;rodowiska wykonawczego.</li><li><strong>ES11 - optional chaining</strong>: Omawia operator optional chaining wprowadzony w ES11, kt&#xF3;ry u&#x142;atwia dost&#x119;p do zagnie&#x17C;d&#x17C;onych w&#x142;a&#x15B;ciwo&#x15B;ci obiekt&#xF3;w, eliminuj&#x105;c potrzeb&#x119; sprawdzania null lub undefined.</li><li><strong>ES11 - nullish coalescing</strong>: Wyja&#x15B;nia operator nullish coalescing w ES11, kt&#xF3;ry umo&#x17C;liwia wyb&#xF3;r warto&#x15B;ci domy&#x15B;lnej tylko w przypadku, gdy warto&#x15B;&#x107; jest null lub undefined.</li><li><strong>Publikacja w NPM &#x2014; przygotowanie</strong>: Przedstawia proces przygotowania paczki do publikacji w rejestrze NPM, w tym konfiguracj&#x119; pliku package.json.</li><li><strong>Publikacja w NPM</strong>: Wyja&#x15B;nia kroki niezb&#x119;dne do opublikowania pakietu w rejestrze NPM, aby inni programi&#x15B;ci mogli go instalowa&#x107; i u&#x17C;ywa&#x107;.</li><li><strong>Wersjonowanie w NPM</strong>: Omawia zasady wersjonowania w NPM, w tym semantyczn&#x105; wersj&#x119; i zarz&#x105;dzanie zale&#x17C;no&#x15B;ciami mi&#x119;dzy paczkami.</li><li><strong>&#x141;atwiejsza publikacja z NP</strong>: Pokazuje narz&#x119;dzie NP, kt&#xF3;re u&#x142;atwia proces publikacji w NPM, zapewniaj&#x105;c automatyczn&#x105; aktualizacj&#x119; wersji i wykonywanie innych rutynowych zada&#x144;.</li><li><strong>Instalacja nowych wersji paczek:</strong> Wyja&#x15B;nia, jak instalowa&#x107; nowe wersje paczek zale&#x17C;no&#x15B;ci i zarz&#x105;dza&#x107; ich aktualizacjami w projekcie.</li></ol><h3 id="-zobacz-przyk-adow-lekcj-z-tego-modu-u-kursu-">&#x1F440; Zobacz przyk&#x142;adow&#x105; lekcj&#x119; z tego modu&#x142;u kursu:</h3><figure class="kg-card kg-embed-card"><iframe width="200" height="113" src="https://www.youtube.com/embed/cBYNLsE3svE?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen title="CodeRoad,pl | Modu&#x142; 10 &#x2013; Modu&#x142;y, NPM i ES6+4. | Symulacja dzia&#x142;ania modu&#x142;u za pomoca&#x328; funkcji"></iframe></figure><h3 id="-zobacz-przyk-adowy-kod-z-tej-lekcji-"><strong>&#x1F468;&#x200D;&#x1F4BB; Zobacz przyk&#x142;adowy kod z tej lekcji:</strong></h3><figure class="kg-card kg-embed-card"><iframe width="1000" height="500" src="https://codesandbox.io/embed/github/coderoadpl/frontend--modules-npm-es6--task-2/tree/master/?fontsize=14&amp;hidenavigation=1&amp;theme=dark" style="width:1000px; height:500px; border:0; border-radius: 4px; overflow:hidden;" sandbox="allow-modals allow-forms allow-popups allow-scripts allow-same-origin"></iframe></figure><h3 id="-kup-kurs">&#x1F4B8; Kup kurs</h3><p>Kup ca&#x142;y kurs CodeRoad &#x2013; <a href="https://coderoad.pl/?ref=blog.coderoad.pl">TUTAJ</a></p><p>Kup ten modu&#x142; kursu &#x2013; <a href="https://coderoad.thinkific.com/enroll/1446010?price_id=1755201&amp;ref=blog.coderoad.pl">TUTAJ</a></p><h4 id="-odbierz-bezp-atny-kurs-">&#x1F4AA; Odbierz bezp&#x142;atny kurs!</h4><!--kg-card-begin: html--><div class="ml-embedded" data-form="VpNCE8"></div><!--kg-card-end: html-->]]></content:encoded></item><item><title><![CDATA[Moduł 09 – OOP (Object Oriented Programming)]]></title><description><![CDATA[<figure class="kg-card kg-image-card"><img src="https://s3-eu-central-1.amazonaws.com/blog-coderoad-pl/2023/06/RCKMIMhNT2b7GmDcL3na_THREE-LINER--6-.jpeg" class="kg-image" alt loading="lazy" width="380" height="213"></figure><p><br>OOP, czyli programowanie obiektowe, to spos&#xF3;b tworzenia kodu za pomoc&#x105; obiekt&#xF3;w, kt&#xF3;re &#x142;&#x105;cz&#x105; stan (dane) i akcje (operacje). W tej lekcji nauczysz si&#x119; podstaw programowania obiektowego, kt&#xF3;re jest standardem w wielu j&#x119;zykach, i cho&#x107;</p>]]></description><link>https://blog.coderoad.pl/modul-09-oop-object-oriented-programming/</link><guid isPermaLink="false">6550c92a9383a90001a7695e</guid><category><![CDATA[Kurs front-end]]></category><category><![CDATA[Program kursu]]></category><dc:creator><![CDATA[Mateusz Choma]]></dc:creator><pubDate>Fri, 02 Jun 2023 18:09:24 GMT</pubDate><media:content url="https://s3-eu-central-1.amazonaws.com/blog-coderoad-pl/2023/06/RCKMIMhNT2b7GmDcL3na_THREE-LINER--6--1.jpeg" medium="image"/><content:encoded><![CDATA[<figure class="kg-card kg-image-card"><img src="https://s3-eu-central-1.amazonaws.com/blog-coderoad-pl/2023/06/RCKMIMhNT2b7GmDcL3na_THREE-LINER--6-.jpeg" class="kg-image" alt="Modu&#x142; 09 &#x2013; OOP (Object Oriented Programming)" loading="lazy" width="380" height="213"></figure><img src="https://s3-eu-central-1.amazonaws.com/blog-coderoad-pl/2023/06/RCKMIMhNT2b7GmDcL3na_THREE-LINER--6--1.jpeg" alt="Modu&#x142; 09 &#x2013; OOP (Object Oriented Programming)"><p><br>OOP, czyli programowanie obiektowe, to spos&#xF3;b tworzenia kodu za pomoc&#x105; obiekt&#xF3;w, kt&#xF3;re &#x142;&#x105;cz&#x105; stan (dane) i akcje (operacje). W tej lekcji nauczysz si&#x119; podstaw programowania obiektowego, kt&#xF3;re jest standardem w wielu j&#x119;zykach, i cho&#x107; JavaScript nie wymusza tego stylu, cz&#x119;sto spotykamy si&#x119; z elementami programowania obiektowego w praktyce.</p><h3 id="-zawarto-modu-u">&#x1F4DA; Zawarto&#x15B;&#x107; modu&#x142;u</h3><p>Modu&#x142; &quot;OOP&quot; jest podzielony na 30 lekcji:</p><ol><li><strong>Wst&#x119;p</strong>: Wprowadzenie do programowania obiektowego i znaczenia OOP w kontek&#x15B;cie tworzenia kodu.</li><li><strong>Kr&#xF3;tkie przypomnienie w&#x142;a&#x15B;ciwo&#x15B;ci obiekt&#xF3;w</strong>: Przypomnienie podstawowych poj&#x119;&#x107; i w&#x142;a&#x15B;ciwo&#x15B;ci obiekt&#xF3;w w programowaniu.</li><li><strong>Counter &#x2014; przyk&#x142;adowa aplikacja z wieloma instancjami</strong>: Tworzenie aplikacji licznika jako przyk&#x142;adu obiektu z mo&#x17C;liwo&#x15B;ci&#x105; tworzenia wielu instancji.</li><li><strong>this - kontekst wywo&#x142;ania funkcji</strong>: Zrozumienie dzia&#x142;ania s&#x142;owa kluczowego &quot;this&quot; i jego zastosowania w funkcjach.</li><li><strong>Factory functions</strong>: Wykorzystanie fabryk funkcji do tworzenia obiekt&#xF3;w.</li><li><strong>Funkcje konstruktora</strong>: U&#x17C;ycie funkcji konstruktora do tworzenia obiekt&#xF3;w.</li><li><strong>proto i prototype</strong>: Om&#xF3;wienie prototyp&#xF3;w i ich roli w dziedziczeniu w JavaScript.</li><li><strong>Projekt 0 - licznik w drzewie DOM</strong>: Implementacja licznika w drzewie DOM jako praktycznego zastosowania OOP.</li><li><strong>Zmiana kontekstu - bind, call i apply</strong>: Zmiana kontekstu funkcji za pomoc&#x105; metod bind, call i apply.</li><li><strong>Zmiana kontekstu i argumenty</strong>: Om&#xF3;wienie zmiany kontekstu oraz przekazywania argument&#xF3;w w funkcjach.</li><li><strong>Funkcje strza&#x142;kowe &#x2014; arrow functions</strong>: Wykorzystanie funkcji strza&#x142;kowych w JavaScript.</li><li><strong>Funkcje strza&#x142;kowe &#x2014; r&#xF3;&#x17C;nice w dzia&#x142;aniu</strong>: Przedstawienie r&#xF3;&#x17C;nic w dzia&#x142;aniu funkcji strza&#x142;kowych w por&#xF3;wnaniu do tradycyjnych funkcji.</li><li><strong>Warto&#x15B;&#x107; this w funkcjach wy&#x17C;szego rz&#x119;du &#x2014; cz&#x119;&#x15B;&#x107; 1</strong>: Om&#xF3;wienie zachowania s&#x142;owa kluczowego &quot;this&quot; w funkcjach wy&#x17C;szego rz&#x119;du.</li><li><strong>Warto&#x15B;&#x107; this w funkcjach wy&#x17C;szego rz&#x119;du &#x2014; cz&#x119;&#x15B;&#x107; 2</strong>: Kontynuacja omawiania zachowania &quot;this&quot; w funkcjach wy&#x17C;szego rz&#x119;du.</li><li><strong>Warto&#x15B;&#x107; this w funkcjach wy&#x17C;szego rz&#x119;du &#x2014; cz&#x119;&#x15B;&#x107; 3</strong>: Ostatnia cz&#x119;&#x15B;&#x107; omawiania zachowania &quot;this&quot; w funkcjach wy&#x17C;szego rz&#x119;du.</li><li><strong>Projekt 0.1 - funkcja strza&#x142;kowa</strong>: Zastosowanie funkcji strza&#x142;kowej w projekcie licznika.</li><li><strong>Tworzenie nowych obiekt&#xF3;w na podstawie innych &#x2014; spread i Object.assign</strong>: Wykorzystanie operatora spread i metody Object.assign do tworzenia nowych obiekt&#xF3;w.</li><li><strong>Object.prototype</strong>: Zrozumienie roli Object.prototype w dziedziczeniu w JavaScript.</li><li><strong>Object.create</strong>: Wykorzystanie metody Object.create do tworzenia obiekt&#xF3;w na podstawie innego obiektu.</li><li><strong>Projekt 0.2</strong> - toString i valueOf: Implementacja metod toString i valueOf w projekcie licznika.</li><li><strong>Projekt 1 - dziedziczenie na przyk&#x142;adzie licznika</strong>: Przyk&#x142;ad dziedziczenia w projekcie licznika.</li><li><strong>Projekt 1.1 - reu&#x17C;ywanie obiekt&#xF3;w w projekcie</strong>: Wykorzystanie reu&#x17C;ywalno&#x15B;ci obiekt&#xF3;w w projekcie licznika.</li><li><strong>&#x141;a&#x144;cuch prototyp&#xF3;w</strong>: Om&#xF3;wienie poj&#x119;cia &#x142;a&#x144;cucha prototyp&#xF3;w w dziedziczeniu obiekt&#xF3;w.</li><li><strong>S&#x142;owo kluczowe new &#x2014; w&#x142;asna implementacja</strong>: Tworzenie w&#x142;asnej implementacji s&#x142;owa kluczowego &quot;new&quot; w JavaScript.</li><li><strong>Klasy &#x2014; s&#x142;owo kluczowe class i constructor</strong>: Wykorzystanie s&#x142;owa kluczowego &quot;class&quot; i konstruktora do tworzenia klas.</li><li><strong>Klasy &#x2014; pola klas i ciekawe w&#x142;a&#x15B;ciwo&#x15B;ci</strong>: Przedstawienie p&#xF3;l klas i innych ciekawych w&#x142;a&#x15B;ciwo&#x15B;ci klas w JavaScript.</li><li><strong>Dziedziczenie z u&#x17C;yciem klas &#x2014; extends i super</strong>: Implementacja dziedziczenia za pomoc&#x105; s&#x142;&#xF3;w kluczowych &quot;extends&quot; i &quot;super&quot;.</li><li><strong>Projekt 1.2 - u&#x17C;ycie klas</strong>: Praktyczne zastosowanie klas w projekcie licznika.</li><li><strong>Podsumowanie metod tworzenia obiekt&#xF3;w</strong>: Podsumowanie r&#xF3;&#x17C;nych metod tworzenia obiekt&#xF3;w w JavaScript.</li><li><strong>Dodatek &#x2014; Aplikacja w JavaScript</strong>: Dodatkowe informacje na temat tworzenia aplikacji w JavaScript.</li></ol><h3 id="-zobacz-przyk-adow-lekcj-z-tego-modu-u-kursu-">&#x1F440; Zobacz przyk&#x142;adow&#x105; lekcj&#x119; z tego modu&#x142;u kursu:</h3><figure class="kg-card kg-embed-card"><iframe width="200" height="113" src="https://www.youtube.com/embed/bON_VYN6FG0?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen title="CodeRoad,pl przyk&#x142;adowa lekcja | Modu&#x142; 09 &#x2013; OOP | 4. this &#x2013; kontekst wywo&#x142;ania funkcji"></iframe></figure><h3 id="-zobacz-przyk-adowy-kod-z-tej-lekcji-"><strong>&#x1F468;&#x200D;&#x1F4BB; Zobacz przyk&#x142;adowy kod z tej lekcji:</strong></h3><figure class="kg-card kg-embed-card"><iframe width="1000" height="500" src="https://codesandbox.io/embed/github/coderoadpl/frontend--oop--task-1/tree/master/?fontsize=14&amp;hidenavigation=1&amp;theme=dark" style="width:1000px; height:500px; border:0; border-radius: 4px; overflow:hidden;" sandbox="allow-modals allow-forms allow-popups allow-scripts allow-same-origin"></iframe></figure><h3 id="-kup-kurs">&#x1F4B8; Kup kurs</h3><p>Kup ca&#x142;y kurs CodeRoad &#x2013; <a href="https://coderoad.pl/?ref=blog.coderoad.pl">TUTAJ</a></p><p>Kup ten modu&#x142; kursu &#x2013; <a href="https://coderoad.thinkific.com/enroll/1445951?price_id=1755131&amp;ref=blog.coderoad.pl">TUTAJ</a></p><h4 id="-odbierz-bezp-atny-kurs-">&#x1F4AA; Odbierz bezp&#x142;atny kurs!</h4><!--kg-card-begin: html--><div class="ml-embedded" data-form="VpNCE8"></div><!--kg-card-end: html-->]]></content:encoded></item><item><title><![CDATA[Moduł 08 – Debugger]]></title><description><![CDATA[<figure class="kg-card kg-image-card"><img src="https://s3-eu-central-1.amazonaws.com/blog-coderoad-pl/2023/06/AbVYhjT8RWyShfykvZ5b_ONE-LINER--4-.jpeg" class="kg-image" alt loading="lazy" width="380" height="213"></figure><p><br>Nie da si&#x119; napisa&#x107; kodu bez b&#x142;&#x119;d&#xF3;w, wi&#x119;c musimy sobie z nimi radzi&#x107;. Do takich zada&#x144; jeste&#x15B;my &quot;uzbrojeni&quot; w narz&#x119;dzie o nazwie &quot;debugger&quot;, kt&#xF3;ry pomaga nam te b&#x142;</p>]]></description><link>https://blog.coderoad.pl/modul-08-debugger/</link><guid isPermaLink="false">6550c92a9383a90001a7695d</guid><category><![CDATA[Kurs front-end]]></category><category><![CDATA[Program kursu]]></category><dc:creator><![CDATA[Mateusz Choma]]></dc:creator><pubDate>Fri, 02 Jun 2023 17:59:47 GMT</pubDate><media:content url="https://s3-eu-central-1.amazonaws.com/blog-coderoad-pl/2023/06/AbVYhjT8RWyShfykvZ5b_ONE-LINER--4--1.jpeg" medium="image"/><content:encoded><![CDATA[<figure class="kg-card kg-image-card"><img src="https://s3-eu-central-1.amazonaws.com/blog-coderoad-pl/2023/06/AbVYhjT8RWyShfykvZ5b_ONE-LINER--4-.jpeg" class="kg-image" alt="Modu&#x142; 08 &#x2013; Debugger" loading="lazy" width="380" height="213"></figure><img src="https://s3-eu-central-1.amazonaws.com/blog-coderoad-pl/2023/06/AbVYhjT8RWyShfykvZ5b_ONE-LINER--4--1.jpeg" alt="Modu&#x142; 08 &#x2013; Debugger"><p><br>Nie da si&#x119; napisa&#x107; kodu bez b&#x142;&#x119;d&#xF3;w, wi&#x119;c musimy sobie z nimi radzi&#x107;. Do takich zada&#x144; jeste&#x15B;my &quot;uzbrojeni&quot; w narz&#x119;dzie o nazwie &quot;debugger&quot;, kt&#xF3;ry pomaga nam te b&#x142;&#x119;dy zlokalizowa&#x107;. Umys&#x142; cz&#x142;owieka jest bardzo &quot;jednow&#x105;tkowy&quot; - nie potrafi skupi&#x107; si&#x119; na wielu rzeczach naraz. Cz&#x119;sto zdarza si&#x119;, &#x17C;e pisz&#x105;c nowy kod, zepsujemy stary, albo nie mamy poj&#x119;cia, dlaczego kod, kt&#xF3;ry w jednym miejscu dzia&#x142;a&#x142;, w innym nie dzia&#x142;a. Za pomoc&#x105; wbudowanego w przegl&#x105;dark&#x119; narz&#x119;dzia debuggera, dowiemy si&#x119; jak rozwi&#x105;zywa&#x107; takie problemy! &#x1F41B;</p><h3 id="-zawarto-modu-u">&#x1F4DA; Zawarto&#x15B;&#x107; modu&#x142;u</h3><p>Modu&#x142; &quot;Debugger&quot; jest podzielony na 15 lekcji:</p><ol><li><strong>Wst&#x119;p</strong>: Wprowadzenie do debuggowania kodu i znaczenia narz&#x119;dzia debugger.</li><li><strong>Aplikacja do debuggowania</strong>: Stworzenie aplikacji z b&#x142;&#x119;dami do om&#xF3;wienia w dalszej cz&#x119;&#x15B;ci kursu.</li><li><strong>Log, info, dir, warn, error</strong>: Wykorzystanie r&#xF3;&#x17C;nych funkcji logowania i wy&#x15B;wietlania komunikat&#xF3;w diagnostycznych.</li><li><strong>Group, groupEnd, groupCollapsed</strong>: Wykorzystanie grupowania komunikat&#xF3;w diagnostycznych dla lepszej organizacji i czytelno&#x15B;ci.</li><li><strong>Time, timeEnd</strong>: Mierzenie czasu wykonywania konkretnych fragment&#xF3;w kodu w celu optymalizacji.</li><li><strong>Table, assert</strong>: Wykorzystanie tabel i asercji do prezentowania danych i sprawdzania warunk&#xF3;w w procesie debuggowania.</li><li><strong>Kolorowanie log&#xF3;w CSS-em</strong>: Wykorzystanie styl&#xF3;w CSS do kolorowania komunikat&#xF3;w diagnostycznych dla lepszej czytelno&#x15B;ci.</li><li><strong>B&#x142;&#x119;dy w JS</strong>: Om&#xF3;wienie r&#xF3;&#x17C;nych rodzaj&#xF3;w b&#x142;&#x119;d&#xF3;w w j&#x119;zyku JavaScript i sposob&#xF3;w ich obs&#x142;ugi.</li><li><strong>try .... catch ... finally</strong>: Wykorzystanie blok&#xF3;w try, catch i finally do przechwytywania i obs&#x142;ugi wyj&#x105;tk&#xF3;w w kodzie.</li><li><strong>Obs&#x142;uga b&#x142;&#x119;d&#xF3;w w aplikacji</strong>: Om&#xF3;wienie strategii obs&#x142;ugi b&#x142;&#x119;d&#xF3;w w aplikacjach, w tym logowania, wy&#x15B;wietlania komunikat&#xF3;w u&#x17C;ytkownikowi i zabezpieczania aplikacji przed awariami.</li><li><strong>Zak&#x142;adka sources, debugger, breakpoints, scope, watch</strong>: Wykorzystanie zak&#x142;adki &quot;sources&quot; w przegl&#x105;darce, debuggera, punkt&#xF3;w przerwania, zakresu zmiennych (scope) i obserwowania warto&#x15B;ci zmiennych (watch) w procesie debuggowania.</li><li><strong>&#x15A;ledzenie wykonania kodu &#x2014; call stack</strong>: Poznanie mechanizmu &#x15B;ledzenia wywo&#x142;a&#x144; funkcji w kodzie (call stack) w celu zrozumienia kolejno&#x15B;ci wykonywania instrukcji.</li><li><strong>&#x15A;ledzenie wykonania kodu &#x2014; step, step in or out of next function call</strong>: Wykorzystanie krokowego &#x15B;ledzenia wykonania kodu, wchodzenia do funkcji lub wychodzenia z funkcji w celu dok&#x142;adnego analizowania dzia&#x142;ania kodu.</li><li><strong>Modyfikacja aplikacji do debugowania</strong>: Naprawianie b&#x142;&#x119;d&#xF3;w w aplikacji stworzonej na pocz&#x105;tku modu&#x142;u.</li><li><strong>Drzewo DOM, om&#xF3;wienie tutorialu z Google</strong>: Om&#xF3;wienie tutorialu od Google na temat debuggowania i inspekcji element&#xF3;w strony poprzez drzewo DOM (Document Object Model).</li></ol><h3 id="-zobacz-przyk-adow-lekcj-z-tego-modu-u-kursu-">&#x1F440; Zobacz przyk&#x142;adow&#x105; lekcj&#x119; z tego modu&#x142;u kursu:</h3><figure class="kg-card kg-embed-card"><iframe width="200" height="113" src="https://www.youtube.com/embed/_-Y0yu1FESU?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen title="CodeRoad,pl przyk&#x142;adowa lekcja | Modu&#x142; 08 &#x2013; Debugger | 7. Kolorowanie log&#xF3;w CSS-em"></iframe></figure><h3 id="-kup-kurs">&#x1F4B8; Kup kurs</h3><p>Kup ca&#x142;y kurs CodeRoad &#x2013; <a href="https://coderoad.pl/?ref=blog.coderoad.pl">TUTAJ</a></p><p>Kup ten modu&#x142; kursu &#x2013; <a href="https://coderoad.thinkific.com/enroll/1445927?price_id=1755094&amp;ref=blog.coderoad.pl">TUTAJ</a></p><h4 id="-odbierz-bezp-atny-kurs-">&#x1F4AA; Odbierz bezp&#x142;atny kurs!</h4><!--kg-card-begin: html--><div class="ml-embedded" data-form="VpNCE8"></div><!--kg-card-end: html-->]]></content:encoded></item></channel></rss>