{"id":10129,"date":"2021-06-03T10:26:45","date_gmt":"2021-06-03T08:26:45","guid":{"rendered":"https:\/\/vived.io\/frontend-thursdaty-vol-40\/"},"modified":"2022-09-19T13:16:42","modified_gmt":"2022-09-19T11:16:42","slug":"frontend-thursdaty-vol-40","status":"publish","type":"post","link":"https:\/\/vived.io\/pl\/frontend-thursdaty-vol-40\/","title":{"rendered":"Frontend Thursdaty vol. 40"},"content":{"rendered":"<h1 id=\"1-sparkplug\">1. Sparkplug<\/h1>\n<p>Usprawnienieniom w V8 zazwyczaj towarzysz\u0105 szczeg\u00f3\u0142owo opisuj\u0105ce je blogposty, kt\u00f3re dla stereotypowego frontend developera s\u0105 niema\u0142\u0105 przepraw\u0105. Wyrwanie z wysokopoziomowego \u015bwiata JavaScriptu do niskopoziomowego \u015bwiata kompilator\u00f3w i interpreter\u00f3w potrafi by\u0107 bolesne i zmusza do od\u015bwie\u017cenia od dawna zakurzonej wiedzy ze studi\u00f3w. Nie inaczej jest i tym razem. Wraz z Chrome 91 Google postanowi\u0142 wzbogaci\u0107 sw\u00f3j silnik sk\u0142adaj\u0105cy si\u0119 z zap\u0142onu (Ignition) i turbiny (TurboFan) o jeszcze jedn\u0105 cz\u0119\u015b\u0107: \u015bwiece (Sparkplug). \u00a0Nowa cz\u0119\u015b\u0107 znajduje miejsce po\u015brodku znanych ju\u017c z poprzednich wersji element\u00f3w i b\u0119dzie odpowiedzialna za nie zoptymalizowan\u0105 kompilacj\u0119 JavaScriptu.<\/p>\n<p>Nie odwa\u017c\u0119 si\u0119 podj\u0105\u0107 pr\u00f3by wyja\u015bnienia Wam w przejrzysty i zwi\u0119z\u0142y spos\u00f3b, dlaczego wprowadzenie dodatkowego kroku do pipeline&#8217;u jest dobrym pomys\u0142em. Je\u015bli macie ochot\u0119 zagotowa\u0107 troch\u0119 Wasze szare kom\u00f3rki, to mo\u017cecie spr\u00f3bowa\u0107 doj\u015b\u0107 do tego sami, czytaj\u0105c podlinkowany poni\u017cej blogpost (kt\u00f3rego autorem jest osoba o wyj\u0105tkowo Polskim nazwisku!). Je\u015bli natomiast z racji d\u0142ugiego weekendu wolicie troch\u0119 odpocz\u0105\u0107 to zostawi\u0119 Was z TLDR, kt\u00f3re powinno w zupe\u0142no\u015bci Wam wystarczy\u0107: V8 w nowej wersji przy\u015bpieszy\u0142 o kolejne +\/- 10%.<\/p>\n<figure class=\"kg-card kg-image-card kg-card-hascaption\"><img decoding=\"async\" class=\"kg-image aligncenter\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d098334f80.gif\" alt=\"\" \/><figcaption>Autor Frontendowego Czwartku czytaj\u0105c o internalach V8<\/figcaption><\/figure>\n<h3 id=\"%C5%BAr%C3%B3d%C5%82a\">\u0179r\u00f3d\u0142a:<\/h3>\n<p><a href=\"https:\/\/v8.dev\/blog\/sparkplug\">https:\/\/v8.dev\/blog\/sparkplug<\/a><\/p>\n<h1 id=\"2-jest-27\">2. Jest 27<\/h1>\n<p>Jest zdaje si\u0119 powoli stawa\u0107 standardem je\u015bli chodzi o biblioteki do frontendowych test\u00f3w, dlatego nie spos\u00f3b przej\u015b\u0107 oboj\u0119tnie obok pierwszego od roku du\u017cego wydania tej biblioteki. Stety (albo niestety) w nowej wersji nie znajdziemy ekscytuj\u0105cych nowo\u015bci, a raczej powolne zmiany w dobrym kierunku. Mamy tu przede wszystkim ulepszenia w domy\u015blnej konfiguracji, kt\u00f3re w Jest 28 doprowadzi\u0107 maj\u0105 do podzia\u0142u biblioteki na wi\u0119cej mniejszych podpakiet\u00f3w. Znajdziemy tu wi\u0119c podmian\u0119 podstawowego test runnera z jest-jasmine2 na jest-circus (kt\u00f3ry od dawna by\u0142 ju\u017c tym domy\u015blnym w aplikacjach generowanych przez create-react-app) oraz zmian\u0119 domy\u015blnego \u015brodowiska uruchomieniowego z jsdom na node (co w przypadku test\u00f3w nie potrzebuj\u0105cych emulacji DOMu ma znacz\u0105co poprawi\u0107 wydajno\u015b\u0107). Jest te\u017c oczywi\u015bcie kilka mniejszych nowo\u015bci, np. interaktywny tryb ma umo\u017cliwia\u0107 przechodzenie przez spadaj\u0105ce testy. Je\u015bli nie dotyczy Was kr\u00f3tka lista breaking changes, to migracja powinna by\u0107 stosunkowo szybka i raczej mo\u017cecie bez obaw wrzuci\u0107 j\u0105 na wasz backlog.<\/p>\n<figure class=\"kg-card kg-image-card\"><img decoding=\"async\" class=\"kg-image aligncenter\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0983eb7d8.png\" alt=\"\" \/><\/figure>\n<h3 id=\"%C5%BAr%C3%B3d%C5%82a-1\">\u0179r\u00f3d\u0142a:<\/h3>\n<p><a href=\"https:\/\/jestjs.io\/blog\/2021\/05\/25\/jest-27\">https:\/\/jestjs.io\/blog\/2021\/05\/25\/jest-27<\/a><\/p>\n<h1 id=\"3-nowe-sposoby-minimalizacji-negatywnych-efekt%C3%B3w-do%C5%82adowywania-czcionek\">3. Nowe sposoby minimalizacji negatywnych efekt\u00f3w do\u0142adowywania czcionek<\/h1>\n<p>Layout Shift od dawna prze\u015bladuje wszystkich, kt\u00f3rzy agresywnie optymalizuj\u0105 swoje strony i aplikacje. Migotanie, wywo\u0142ane zmian\u0105 czcionki, dla jednych jest z\u0142em koniecznym, aby dostarczy\u0107 odwiedzaj\u0105cymu\u017cytkownikom tre\u015b\u0107 tak szybko jak to mo\u017cliwe, a dla drugich jest niedopuszczalnym uszczerbkiem w do\u015bwiadczeniu u\u017cytkownika, kt\u00f3ry tak naprawd\u0119 wola\u0142by poczeka\u0107 odrobin\u0119 d\u0142u\u017cej i unikn\u0105\u0107 niechcianych \u201cskok\u00f3w\u201d. Na szcz\u0119\u015bcie istniej\u0105 spore szanse, \u017ce sp\u00f3r pomi\u0119dzy tymi dwoma stronami wreszcie ujrzy sw\u00f3j koniec.o przegl\u0105darek ju\u017c wkr\u00f3tce ma trafi\u0107 bowiem zestaw nowych parametr\u00f3w css: ascent-override, descent-override, line-gap-override i size-adjust. Za ich pomoc\u0105 mo\u017cliwe b\u0119dzie zmodyfikowanie zast\u0119pczych czcionek w taki spos\u00f3b, \u017ce skoki wywo\u0142ane zmian\u0105 czcionek b\u0119d\u0105 prawie niewidoczne. Wygl\u0105da to naprawd\u0119 ciekawie i je\u015bli chcecie spr\u00f3bowa\u0107 nowo\u015bci w akcji to wszystkie opr\u00f3cz size-adjust znajdziecie w Chrome (a brakuj\u0105ce size-adjust w Chrome w wersji Canary).<\/p>\n<figure class=\"kg-card kg-embed-card\">\n<blockquote class=\"twitter-tweet\">\n<p dir=\"ltr\" lang=\"en\">Excited for the CSS &#8222;size-adjust&#8221; descriptor for fonts: reduce layout shifts by matching up a fallback font and primary web font through a scale factor for glyphs (percentage).<\/p>\n<p>See <a href=\"https:\/\/t.co\/mdRW2BMg6A\">https:\/\/t.co\/mdRW2BMg6A<\/a> by <a href=\"https:\/\/twitter.com\/cramforce?ref_src=twsrc%5Etfw\">@cramforce<\/a> for a demo (Chrome Canary\/FF Nightly with flags) <a href=\"https:\/\/t.co\/hEg1HfUJlT\">pic.twitter.com\/hEg1HfUJlT<\/a><\/p>\n<p>\u2014 Addy Osmani (@addyosmani) <a href=\"https:\/\/twitter.com\/addyosmani\/status\/1395997862065053696?ref_src=twsrc%5Etfw\">May 22, 2021<\/a><\/p><\/blockquote>\n<p><script async=\"\" src=\"https:\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script><\/figure>\n<pre><code class=\"language-css\">@font-face {\n\tfont-family: &#039;Lato&#039;;\n\tsrc: url(&#039;\/static\/fonts\/Lato.woff2&#039;) format(&#039;woff2&#039;);\n\tfont-weight: 400;\n}\n@font-face {\n\tfont-family: &quot;Lato-fallback&quot;;\n\tsize-adjust: 97.38%;\n\tascent-override: 99%;\n\tsrc: local(&quot;Arial&quot;);\n}\nh1 {\n\tfont-family: Lato, Lato-fallback, sans-serif;\n}<\/code><\/pre>\n<h3 id=\"%C5%BAr%C3%B3d%C5%82a-2\">\u0179r\u00f3d\u0142a:<\/h3>\n<p><a href=\"https:\/\/www.smashingmagazine.com\/2021\/05\/reduce-font-loading-impact-css-descriptors\/\">https:\/\/www.smashingmagazine.com\/2021\/05\/reduce-font-loading-impact-css-descriptors\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>W tym tygodniu mamy dla Was Sparkplug, czyli nowy kompilator w V8, Jest 27 i zmierzaj\u0105ce do standardu css zmiany, kt\u00f3re pomog\u0105 rozwi\u0105za\u0107 problem z do\u0142adowuj\u0105cymi si\u0119 czcionkami.  <\/p>\n","protected":false},"author":12,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[273],"tags":[],"class_list":["post-10129","post","type-post","status-publish","format-standard","hentry","category-frontend-pl"],"acf":{"weekly_summary":true,"estimated_reading_time":"3"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Frontend Thursdaty vol. 40 - Vived<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/vived.io\/pl\/frontend-thursdaty-vol-40\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Frontend Thursdaty vol. 40 - Vived\" \/>\n<meta property=\"og:description\" content=\"W tym tygodniu mamy dla Was Sparkplug, czyli nowy kompilator w V8, Jest 27 i zmierzaj\u0105ce do standardu css zmiany, kt\u00f3re pomog\u0105 rozwi\u0105za\u0107 problem z do\u0142adowuj\u0105cymi si\u0119 czcionkami.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vived.io\/pl\/frontend-thursdaty-vol-40\/\" \/>\n<meta property=\"og:site_name\" content=\"Vived\" \/>\n<meta property=\"article:published_time\" content=\"2021-06-03T08:26:45+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-09-19T11:16:42+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d098334f80.gif\" \/>\n<meta name=\"author\" content=\"Tomasz Borowicz\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/vived.io\/pl\/frontend-thursdaty-vol-40\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/vived.io\/pl\/frontend-thursdaty-vol-40\/\"},\"author\":{\"name\":\"Tomasz Borowicz\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/person\/9d2a72fe7d0dfbb4092675afbab742bb\"},\"headline\":\"Frontend Thursdaty vol. 40\",\"datePublished\":\"2021-06-03T08:26:45+00:00\",\"dateModified\":\"2022-09-19T11:16:42+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/vived.io\/pl\/frontend-thursdaty-vol-40\/\"},\"wordCount\":633,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/vived.io\/pl\/#organization\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/frontend-thursdaty-vol-40\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d098334f80.gif\",\"articleSection\":[\"Frontend\"],\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/vived.io\/pl\/frontend-thursdaty-vol-40\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/vived.io\/pl\/frontend-thursdaty-vol-40\/\",\"url\":\"https:\/\/vived.io\/pl\/frontend-thursdaty-vol-40\/\",\"name\":\"Frontend Thursdaty vol. 40 - Vived\",\"isPartOf\":{\"@id\":\"https:\/\/vived.io\/pl\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/vived.io\/pl\/frontend-thursdaty-vol-40\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/frontend-thursdaty-vol-40\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d098334f80.gif\",\"datePublished\":\"2021-06-03T08:26:45+00:00\",\"dateModified\":\"2022-09-19T11:16:42+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/vived.io\/pl\/frontend-thursdaty-vol-40\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/vived.io\/pl\/frontend-thursdaty-vol-40\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/vived.io\/pl\/frontend-thursdaty-vol-40\/#primaryimage\",\"url\":\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d098334f80.gif\",\"contentUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d098334f80.gif\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/vived.io\/pl\/frontend-thursdaty-vol-40\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Strona g\u0142\u00f3wna\",\"item\":\"https:\/\/vived.io\/pl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Frontend Thursdaty vol. 40\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/vived.io\/pl\/#website\",\"url\":\"https:\/\/vived.io\/pl\/\",\"name\":\"Vived\",\"description\":\"platform empowering IT people and technology companies to synergic growth\",\"publisher\":{\"@id\":\"https:\/\/vived.io\/pl\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/vived.io\/pl\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pl-PL\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/vived.io\/pl\/#organization\",\"name\":\"Vived\",\"url\":\"https:\/\/vived.io\/pl\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/vived.io\/wp-content\/uploads\/2020\/03\/logo_vived_color.png\",\"contentUrl\":\"https:\/\/vived.io\/wp-content\/uploads\/2020\/03\/logo_vived_color.png\",\"width\":136,\"height\":45,\"caption\":\"Vived\"},\"image\":{\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/person\/9d2a72fe7d0dfbb4092675afbab742bb\",\"name\":\"Tomasz Borowicz\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/vived.io\/pl\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/804536d2672538508d43f60ad2108e5aaea76c192653eaf95d4c3934b7d1dbb6?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/804536d2672538508d43f60ad2108e5aaea76c192653eaf95d4c3934b7d1dbb6?s=96&d=mm&r=g\",\"caption\":\"Tomasz Borowicz\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Frontend Thursdaty vol. 40 - Vived","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/vived.io\/pl\/frontend-thursdaty-vol-40\/","og_locale":"pl_PL","og_type":"article","og_title":"Frontend Thursdaty vol. 40 - Vived","og_description":"W tym tygodniu mamy dla Was Sparkplug, czyli nowy kompilator w V8, Jest 27 i zmierzaj\u0105ce do standardu css zmiany, kt\u00f3re pomog\u0105 rozwi\u0105za\u0107 problem z do\u0142adowuj\u0105cymi si\u0119 czcionkami.","og_url":"https:\/\/vived.io\/pl\/frontend-thursdaty-vol-40\/","og_site_name":"Vived","article_published_time":"2021-06-03T08:26:45+00:00","article_modified_time":"2022-09-19T11:16:42+00:00","og_image":[{"url":"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d098334f80.gif","type":"","width":"","height":""}],"author":"Tomasz Borowicz","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/vived.io\/pl\/frontend-thursdaty-vol-40\/#article","isPartOf":{"@id":"https:\/\/vived.io\/pl\/frontend-thursdaty-vol-40\/"},"author":{"name":"Tomasz Borowicz","@id":"https:\/\/vived.io\/pl\/#\/schema\/person\/9d2a72fe7d0dfbb4092675afbab742bb"},"headline":"Frontend Thursdaty vol. 40","datePublished":"2021-06-03T08:26:45+00:00","dateModified":"2022-09-19T11:16:42+00:00","mainEntityOfPage":{"@id":"https:\/\/vived.io\/pl\/frontend-thursdaty-vol-40\/"},"wordCount":633,"commentCount":0,"publisher":{"@id":"https:\/\/vived.io\/pl\/#organization"},"image":{"@id":"https:\/\/vived.io\/pl\/frontend-thursdaty-vol-40\/#primaryimage"},"thumbnailUrl":"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d098334f80.gif","articleSection":["Frontend"],"inLanguage":"pl-PL","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/vived.io\/pl\/frontend-thursdaty-vol-40\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/vived.io\/pl\/frontend-thursdaty-vol-40\/","url":"https:\/\/vived.io\/pl\/frontend-thursdaty-vol-40\/","name":"Frontend Thursdaty vol. 40 - Vived","isPartOf":{"@id":"https:\/\/vived.io\/pl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vived.io\/pl\/frontend-thursdaty-vol-40\/#primaryimage"},"image":{"@id":"https:\/\/vived.io\/pl\/frontend-thursdaty-vol-40\/#primaryimage"},"thumbnailUrl":"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d098334f80.gif","datePublished":"2021-06-03T08:26:45+00:00","dateModified":"2022-09-19T11:16:42+00:00","breadcrumb":{"@id":"https:\/\/vived.io\/pl\/frontend-thursdaty-vol-40\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vived.io\/pl\/frontend-thursdaty-vol-40\/"]}]},{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/vived.io\/pl\/frontend-thursdaty-vol-40\/#primaryimage","url":"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d098334f80.gif","contentUrl":"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d098334f80.gif"},{"@type":"BreadcrumbList","@id":"https:\/\/vived.io\/pl\/frontend-thursdaty-vol-40\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Strona g\u0142\u00f3wna","item":"https:\/\/vived.io\/pl\/"},{"@type":"ListItem","position":2,"name":"Frontend Thursdaty vol. 40"}]},{"@type":"WebSite","@id":"https:\/\/vived.io\/pl\/#website","url":"https:\/\/vived.io\/pl\/","name":"Vived","description":"platform empowering IT people and technology companies to synergic growth","publisher":{"@id":"https:\/\/vived.io\/pl\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/vived.io\/pl\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pl-PL"},{"@type":"Organization","@id":"https:\/\/vived.io\/pl\/#organization","name":"Vived","url":"https:\/\/vived.io\/pl\/","logo":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/vived.io\/pl\/#\/schema\/logo\/image\/","url":"https:\/\/vived.io\/wp-content\/uploads\/2020\/03\/logo_vived_color.png","contentUrl":"https:\/\/vived.io\/wp-content\/uploads\/2020\/03\/logo_vived_color.png","width":136,"height":45,"caption":"Vived"},"image":{"@id":"https:\/\/vived.io\/pl\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/vived.io\/pl\/#\/schema\/person\/9d2a72fe7d0dfbb4092675afbab742bb","name":"Tomasz Borowicz","image":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/vived.io\/pl\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/804536d2672538508d43f60ad2108e5aaea76c192653eaf95d4c3934b7d1dbb6?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/804536d2672538508d43f60ad2108e5aaea76c192653eaf95d4c3934b7d1dbb6?s=96&d=mm&r=g","caption":"Tomasz Borowicz"}}]}},"blocks_vived":[{"blockName":null,"attrs":[],"innerBlocks":[],"innerHTML":"<h1 id=\"1-sparkplug\">1. Sparkplug<\/h1>\nUsprawnienieniom w V8 zazwyczaj towarzysz\u0105 szczeg\u00f3\u0142owo opisuj\u0105ce je blogposty, kt\u00f3re dla stereotypowego frontend developera s\u0105 niema\u0142\u0105 przepraw\u0105. Wyrwanie z wysokopoziomowego \u015bwiata JavaScriptu do niskopoziomowego \u015bwiata kompilator\u00f3w i interpreter\u00f3w potrafi by\u0107 bolesne i zmusza do od\u015bwie\u017cenia od dawna zakurzonej wiedzy ze studi\u00f3w. Nie inaczej jest i tym razem. Wraz z Chrome 91 Google postanowi\u0142 wzbogaci\u0107 sw\u00f3j silnik sk\u0142adaj\u0105cy si\u0119 z zap\u0142onu (Ignition) i turbiny (TurboFan) o jeszcze jedn\u0105 cz\u0119\u015b\u0107: \u015bwiece (Sparkplug). \u00a0Nowa cz\u0119\u015b\u0107 znajduje miejsce po\u015brodku znanych ju\u017c z poprzednich wersji element\u00f3w i b\u0119dzie odpowiedzialna za nie zoptymalizowan\u0105 kompilacj\u0119 JavaScriptu.\n\nNie odwa\u017c\u0119 si\u0119 podj\u0105\u0107 pr\u00f3by wyja\u015bnienia Wam w przejrzysty i zwi\u0119z\u0142y spos\u00f3b, dlaczego wprowadzenie dodatkowego kroku do pipeline'u jest dobrym pomys\u0142em. Je\u015bli macie ochot\u0119 zagotowa\u0107 troch\u0119 Wasze szare kom\u00f3rki, to mo\u017cecie spr\u00f3bowa\u0107 doj\u015b\u0107 do tego sami, czytaj\u0105c podlinkowany poni\u017cej blogpost (kt\u00f3rego autorem jest osoba o wyj\u0105tkowo Polskim nazwisku!). Je\u015bli natomiast z racji d\u0142ugiego weekendu wolicie troch\u0119 odpocz\u0105\u0107 to zostawi\u0119 Was z TLDR, kt\u00f3re powinno w zupe\u0142no\u015bci Wam wystarczy\u0107: V8 w nowej wersji przy\u015bpieszy\u0142 o kolejne +\/- 10%.\n<figure class=\"kg-card kg-image-card kg-card-hascaption\"><img class=\"kg-image aligncenter\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d098334f80.gif\" alt=\"\" \/>\n<figcaption>Autor Frontendowego Czwartku czytaj\u0105c o internalach V8<\/figcaption><\/figure>\n<h3 id=\"%C5%BAr%C3%B3d%C5%82a\">\u0179r\u00f3d\u0142a:<\/h3>\n<a href=\"https:\/\/v8.dev\/blog\/sparkplug\">https:\/\/v8.dev\/blog\/sparkplug<\/a>\n<h1 id=\"2-jest-27\">2. Jest 27<\/h1>\nJest zdaje si\u0119 powoli stawa\u0107 standardem je\u015bli chodzi o biblioteki do frontendowych test\u00f3w, dlatego nie spos\u00f3b przej\u015b\u0107 oboj\u0119tnie obok pierwszego od roku du\u017cego wydania tej biblioteki. Stety (albo niestety) w nowej wersji nie znajdziemy ekscytuj\u0105cych nowo\u015bci, a raczej powolne zmiany w dobrym kierunku. Mamy tu przede wszystkim ulepszenia w domy\u015blnej konfiguracji, kt\u00f3re w Jest 28 doprowadzi\u0107 maj\u0105 do podzia\u0142u biblioteki na wi\u0119cej mniejszych podpakiet\u00f3w. Znajdziemy tu wi\u0119c podmian\u0119 podstawowego test runnera z jest-jasmine2 na jest-circus (kt\u00f3ry od dawna by\u0142 ju\u017c tym domy\u015blnym w aplikacjach generowanych przez create-react-app) oraz zmian\u0119 domy\u015blnego \u015brodowiska uruchomieniowego z jsdom na node (co w przypadku test\u00f3w nie potrzebuj\u0105cych emulacji DOMu ma znacz\u0105co poprawi\u0107 wydajno\u015b\u0107). Jest te\u017c oczywi\u015bcie kilka mniejszych nowo\u015bci, np. interaktywny tryb ma umo\u017cliwia\u0107 przechodzenie przez spadaj\u0105ce testy. Je\u015bli nie dotyczy Was kr\u00f3tka lista breaking changes, to migracja powinna by\u0107 stosunkowo szybka i raczej mo\u017cecie bez obaw wrzuci\u0107 j\u0105 na wasz backlog.\n<figure class=\"kg-card kg-image-card\"><img class=\"kg-image aligncenter\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0983eb7d8.png\" alt=\"\" \/><\/figure>\n<h3 id=\"%C5%BAr%C3%B3d%C5%82a-1\">\u0179r\u00f3d\u0142a:<\/h3>\n<a href=\"https:\/\/jestjs.io\/blog\/2021\/05\/25\/jest-27\">https:\/\/jestjs.io\/blog\/2021\/05\/25\/jest-27<\/a>\n<h1 id=\"3-nowe-sposoby-minimalizacji-negatywnych-efekt%C3%B3w-do%C5%82adowywania-czcionek\">3. Nowe sposoby minimalizacji negatywnych efekt\u00f3w do\u0142adowywania czcionek<\/h1>\nLayout Shift od dawna prze\u015bladuje wszystkich, kt\u00f3rzy agresywnie optymalizuj\u0105 swoje strony i aplikacje. Migotanie, wywo\u0142ane zmian\u0105 czcionki, dla jednych jest z\u0142em koniecznym, aby dostarczy\u0107 odwiedzaj\u0105cymu\u017cytkownikom tre\u015b\u0107 tak szybko jak to mo\u017cliwe, a dla drugich jest niedopuszczalnym uszczerbkiem w do\u015bwiadczeniu u\u017cytkownika, kt\u00f3ry tak naprawd\u0119 wola\u0142by poczeka\u0107 odrobin\u0119 d\u0142u\u017cej i unikn\u0105\u0107 niechcianych \u201cskok\u00f3w\u201d. Na szcz\u0119\u015bcie istniej\u0105 spore szanse, \u017ce sp\u00f3r pomi\u0119dzy tymi dwoma stronami wreszcie ujrzy sw\u00f3j koniec.o przegl\u0105darek ju\u017c wkr\u00f3tce ma trafi\u0107 bowiem zestaw nowych parametr\u00f3w css: ascent-override, descent-override, line-gap-override i size-adjust. Za ich pomoc\u0105 mo\u017cliwe b\u0119dzie zmodyfikowanie zast\u0119pczych czcionek w taki spos\u00f3b, \u017ce skoki wywo\u0142ane zmian\u0105 czcionek b\u0119d\u0105 prawie niewidoczne. Wygl\u0105da to naprawd\u0119 ciekawie i je\u015bli chcecie spr\u00f3bowa\u0107 nowo\u015bci w akcji to wszystkie opr\u00f3cz size-adjust znajdziecie w Chrome (a brakuj\u0105ce size-adjust w Chrome w wersji Canary).\n<figure class=\"kg-card kg-embed-card\">\n<blockquote class=\"twitter-tweet\">\n<p dir=\"ltr\" lang=\"en\">Excited for the CSS \"size-adjust\" descriptor for fonts: reduce layout shifts by matching up a fallback font and primary web font through a scale factor for glyphs (percentage).<\/p>\nSee <a href=\"https:\/\/t.co\/mdRW2BMg6A\">https:\/\/t.co\/mdRW2BMg6A<\/a> by <a href=\"https:\/\/twitter.com\/cramforce?ref_src=twsrc%5Etfw\">@cramforce<\/a> for a demo (Chrome Canary\/FF Nightly with flags) <a href=\"https:\/\/t.co\/hEg1HfUJlT\">pic.twitter.com\/hEg1HfUJlT<\/a>\n\n\u2014 Addy Osmani (@addyosmani) <a href=\"https:\/\/twitter.com\/addyosmani\/status\/1395997862065053696?ref_src=twsrc%5Etfw\">May 22, 2021<\/a><\/blockquote>\n<script async=\"\" src=\"https:\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script><\/figure>\n<pre><code class=\"language-css\">@font-face {\n\tfont-family: 'Lato';\n\tsrc: url('\/static\/fonts\/Lato.woff2') format('woff2');\n\tfont-weight: 400;\n}\n@font-face {\n\tfont-family: \"Lato-fallback\";\n\tsize-adjust: 97.38%;\n\tascent-override: 99%;\n\tsrc: local(\"Arial\");\n}\nh1 {\n\tfont-family: Lato, Lato-fallback, sans-serif;\n}<\/code><\/pre>\n<h3 id=\"%C5%BAr%C3%B3d%C5%82a-2\">\u0179r\u00f3d\u0142a:<\/h3>\n<a href=\"https:\/\/www.smashingmagazine.com\/2021\/05\/reduce-font-loading-impact-css-descriptors\/\">https:\/\/www.smashingmagazine.com\/2021\/05\/reduce-font-loading-impact-css-descriptors\/<\/a>","innerContent":["<h1 id=\"1-sparkplug\">1. Sparkplug<\/h1>\nUsprawnienieniom w V8 zazwyczaj towarzysz\u0105 szczeg\u00f3\u0142owo opisuj\u0105ce je blogposty, kt\u00f3re dla stereotypowego frontend developera s\u0105 niema\u0142\u0105 przepraw\u0105. Wyrwanie z wysokopoziomowego \u015bwiata JavaScriptu do niskopoziomowego \u015bwiata kompilator\u00f3w i interpreter\u00f3w potrafi by\u0107 bolesne i zmusza do od\u015bwie\u017cenia od dawna zakurzonej wiedzy ze studi\u00f3w. Nie inaczej jest i tym razem. Wraz z Chrome 91 Google postanowi\u0142 wzbogaci\u0107 sw\u00f3j silnik sk\u0142adaj\u0105cy si\u0119 z zap\u0142onu (Ignition) i turbiny (TurboFan) o jeszcze jedn\u0105 cz\u0119\u015b\u0107: \u015bwiece (Sparkplug). \u00a0Nowa cz\u0119\u015b\u0107 znajduje miejsce po\u015brodku znanych ju\u017c z poprzednich wersji element\u00f3w i b\u0119dzie odpowiedzialna za nie zoptymalizowan\u0105 kompilacj\u0119 JavaScriptu.\n\nNie odwa\u017c\u0119 si\u0119 podj\u0105\u0107 pr\u00f3by wyja\u015bnienia Wam w przejrzysty i zwi\u0119z\u0142y spos\u00f3b, dlaczego wprowadzenie dodatkowego kroku do pipeline'u jest dobrym pomys\u0142em. Je\u015bli macie ochot\u0119 zagotowa\u0107 troch\u0119 Wasze szare kom\u00f3rki, to mo\u017cecie spr\u00f3bowa\u0107 doj\u015b\u0107 do tego sami, czytaj\u0105c podlinkowany poni\u017cej blogpost (kt\u00f3rego autorem jest osoba o wyj\u0105tkowo Polskim nazwisku!). Je\u015bli natomiast z racji d\u0142ugiego weekendu wolicie troch\u0119 odpocz\u0105\u0107 to zostawi\u0119 Was z TLDR, kt\u00f3re powinno w zupe\u0142no\u015bci Wam wystarczy\u0107: V8 w nowej wersji przy\u015bpieszy\u0142 o kolejne +\/- 10%.\n<figure class=\"kg-card kg-image-card kg-card-hascaption\"><img class=\"kg-image aligncenter\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d098334f80.gif\" alt=\"\" \/>\n<figcaption>Autor Frontendowego Czwartku czytaj\u0105c o internalach V8<\/figcaption><\/figure>\n<h3 id=\"%C5%BAr%C3%B3d%C5%82a\">\u0179r\u00f3d\u0142a:<\/h3>\n<a href=\"https:\/\/v8.dev\/blog\/sparkplug\">https:\/\/v8.dev\/blog\/sparkplug<\/a>\n<h1 id=\"2-jest-27\">2. Jest 27<\/h1>\nJest zdaje si\u0119 powoli stawa\u0107 standardem je\u015bli chodzi o biblioteki do frontendowych test\u00f3w, dlatego nie spos\u00f3b przej\u015b\u0107 oboj\u0119tnie obok pierwszego od roku du\u017cego wydania tej biblioteki. Stety (albo niestety) w nowej wersji nie znajdziemy ekscytuj\u0105cych nowo\u015bci, a raczej powolne zmiany w dobrym kierunku. Mamy tu przede wszystkim ulepszenia w domy\u015blnej konfiguracji, kt\u00f3re w Jest 28 doprowadzi\u0107 maj\u0105 do podzia\u0142u biblioteki na wi\u0119cej mniejszych podpakiet\u00f3w. Znajdziemy tu wi\u0119c podmian\u0119 podstawowego test runnera z jest-jasmine2 na jest-circus (kt\u00f3ry od dawna by\u0142 ju\u017c tym domy\u015blnym w aplikacjach generowanych przez create-react-app) oraz zmian\u0119 domy\u015blnego \u015brodowiska uruchomieniowego z jsdom na node (co w przypadku test\u00f3w nie potrzebuj\u0105cych emulacji DOMu ma znacz\u0105co poprawi\u0107 wydajno\u015b\u0107). Jest te\u017c oczywi\u015bcie kilka mniejszych nowo\u015bci, np. interaktywny tryb ma umo\u017cliwia\u0107 przechodzenie przez spadaj\u0105ce testy. Je\u015bli nie dotyczy Was kr\u00f3tka lista breaking changes, to migracja powinna by\u0107 stosunkowo szybka i raczej mo\u017cecie bez obaw wrzuci\u0107 j\u0105 na wasz backlog.\n<figure class=\"kg-card kg-image-card\"><img class=\"kg-image aligncenter\" src=\"https:\/\/vived.io\/wp-content\/uploads\/2021\/08\/img_610d0983eb7d8.png\" alt=\"\" \/><\/figure>\n<h3 id=\"%C5%BAr%C3%B3d%C5%82a-1\">\u0179r\u00f3d\u0142a:<\/h3>\n<a href=\"https:\/\/jestjs.io\/blog\/2021\/05\/25\/jest-27\">https:\/\/jestjs.io\/blog\/2021\/05\/25\/jest-27<\/a>\n<h1 id=\"3-nowe-sposoby-minimalizacji-negatywnych-efekt%C3%B3w-do%C5%82adowywania-czcionek\">3. Nowe sposoby minimalizacji negatywnych efekt\u00f3w do\u0142adowywania czcionek<\/h1>\nLayout Shift od dawna prze\u015bladuje wszystkich, kt\u00f3rzy agresywnie optymalizuj\u0105 swoje strony i aplikacje. Migotanie, wywo\u0142ane zmian\u0105 czcionki, dla jednych jest z\u0142em koniecznym, aby dostarczy\u0107 odwiedzaj\u0105cymu\u017cytkownikom tre\u015b\u0107 tak szybko jak to mo\u017cliwe, a dla drugich jest niedopuszczalnym uszczerbkiem w do\u015bwiadczeniu u\u017cytkownika, kt\u00f3ry tak naprawd\u0119 wola\u0142by poczeka\u0107 odrobin\u0119 d\u0142u\u017cej i unikn\u0105\u0107 niechcianych \u201cskok\u00f3w\u201d. Na szcz\u0119\u015bcie istniej\u0105 spore szanse, \u017ce sp\u00f3r pomi\u0119dzy tymi dwoma stronami wreszcie ujrzy sw\u00f3j koniec.o przegl\u0105darek ju\u017c wkr\u00f3tce ma trafi\u0107 bowiem zestaw nowych parametr\u00f3w css: ascent-override, descent-override, line-gap-override i size-adjust. Za ich pomoc\u0105 mo\u017cliwe b\u0119dzie zmodyfikowanie zast\u0119pczych czcionek w taki spos\u00f3b, \u017ce skoki wywo\u0142ane zmian\u0105 czcionek b\u0119d\u0105 prawie niewidoczne. Wygl\u0105da to naprawd\u0119 ciekawie i je\u015bli chcecie spr\u00f3bowa\u0107 nowo\u015bci w akcji to wszystkie opr\u00f3cz size-adjust znajdziecie w Chrome (a brakuj\u0105ce size-adjust w Chrome w wersji Canary).\n<figure class=\"kg-card kg-embed-card\">\n<blockquote class=\"twitter-tweet\">\n<p dir=\"ltr\" lang=\"en\">Excited for the CSS \"size-adjust\" descriptor for fonts: reduce layout shifts by matching up a fallback font and primary web font through a scale factor for glyphs (percentage).<\/p>\nSee <a href=\"https:\/\/t.co\/mdRW2BMg6A\">https:\/\/t.co\/mdRW2BMg6A<\/a> by <a href=\"https:\/\/twitter.com\/cramforce?ref_src=twsrc%5Etfw\">@cramforce<\/a> for a demo (Chrome Canary\/FF Nightly with flags) <a href=\"https:\/\/t.co\/hEg1HfUJlT\">pic.twitter.com\/hEg1HfUJlT<\/a>\n\n\u2014 Addy Osmani (@addyosmani) <a href=\"https:\/\/twitter.com\/addyosmani\/status\/1395997862065053696?ref_src=twsrc%5Etfw\">May 22, 2021<\/a><\/blockquote>\n<script async=\"\" src=\"https:\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script><\/figure>\n<pre><code class=\"language-css\">@font-face {\n\tfont-family: 'Lato';\n\tsrc: url('\/static\/fonts\/Lato.woff2') format('woff2');\n\tfont-weight: 400;\n}\n@font-face {\n\tfont-family: \"Lato-fallback\";\n\tsize-adjust: 97.38%;\n\tascent-override: 99%;\n\tsrc: local(\"Arial\");\n}\nh1 {\n\tfont-family: Lato, Lato-fallback, sans-serif;\n}<\/code><\/pre>\n<h3 id=\"%C5%BAr%C3%B3d%C5%82a-2\">\u0179r\u00f3d\u0142a:<\/h3>\n<a href=\"https:\/\/www.smashingmagazine.com\/2021\/05\/reduce-font-loading-impact-css-descriptors\/\">https:\/\/www.smashingmagazine.com\/2021\/05\/reduce-font-loading-impact-css-descriptors\/<\/a>"]}],"_links":{"self":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/10129","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/users\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/comments?post=10129"}],"version-history":[{"count":1,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/10129\/revisions"}],"predecessor-version":[{"id":10637,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/posts\/10129\/revisions\/10637"}],"wp:attachment":[{"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/media?parent=10129"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/categories?post=10129"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vived.io\/pl\/wp-json\/wp\/v2\/tags?post=10129"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}