{"id":304976,"date":"2020-06-07T21:00:21","date_gmt":"2020-06-07T21:00:21","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=304976"},"modified":"-0001-11-30T00:00:00","modified_gmt":"2020-06-07T21:00:21","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=304976","title":{"rendered":"\u0414\u0430\u0439\u0434\u0436\u0435\u0441\u0442 \u0441\u0432\u0435\u0436\u0438\u0445 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u0432 \u0438\u0437 \u043c\u0438\u0440\u0430 \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0430 \u0437\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044e\u044e \u043d\u0435\u0434\u0435\u043b\u044e \u2116418 (1 \u2014 7 \u0438\u044e\u043d\u044f 2020)"},"content":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/post\/505746\/\">\u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c \u0432\u0430\u0448\u0435\u043c\u0443 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044e \u043f\u043e\u0434\u0431\u043e\u0440\u043a\u0443 \u0441 \u0441\u0441\u044b\u043b\u043a\u0430\u043c\u0438 \u043d\u0430 \u043d\u043e\u0432\u044b\u0435 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b \u0438\u0437 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0430 \u0438 \u043e\u043a\u043e\u043b\u043e \u043d\u0435\u0433\u043e.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/yl\/yq\/gd\/ylyqgdzlgrcxcbj9kg75qtmij7m.png\"><\/p>\n<p><a name=\"habracut\"><\/a>  <\/p>\n<p><a href=\"#media\"><b>\u041c\u0435\u0434\u0438\u0430<\/b><\/a>&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"#development\"><b>\u0412\u0435\u0431-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430<\/b><\/a>&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"#css\"><b>CSS<\/b><\/a>&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"#js\"><b>JavaScript<\/b><\/a>&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"#browser\"><b>\u0411\u0440\u0430\u0443\u0437\u0435\u0440\u044b<\/b><\/a>&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;<\/p>\n<p>  <\/p>\n<h3><font color=\"#349A48\"><a name=\"media\"><\/a>\u041c\u0435\u0434\u0438\u0430<\/font><\/h3>\n<p>  \u2022 <img decoding=\"async\" alt=\"podcast\" src=\"https:\/\/habrastorage.org\/web\/259\/2f4\/069\/2592f40697cc49dc939e9fc3983fc737.png\"> <a href=\"https:\/\/medium.com\/web-standards\/episode-232-a06cb67e2c70\" rel=\"nofollow\">\u041f\u043e\u0434\u043a\u0430\u0441\u0442 \u00ab\u0412\u0435\u0431-\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u044b\u00bb \u2116232: Edge DevTools, \u0432\u0435\u0431 Vitals \u0438 AMP, 10 \u043b\u0435\u0442 RWD, \u0432\u0435\u0431-\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430, JS-\u044d\u043a\u043e\u0441\u0438\u0441\u0442\u0435\u043c\u0430, \u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0438\u0442\u043c<\/a><br \/>  \u2022 <img decoding=\"async\" alt=\"podcast\" src=\"https:\/\/habrastorage.org\/web\/259\/2f4\/069\/2592f40697cc49dc939e9fc3983fc737.png\"> <a href=\"https:\/\/soundcloud.com\/csssr\/windows-10-update-relizy-freymvorkov-render-react-vue-3-i-angular-10-web-platform-contribution\" rel=\"nofollow\">\u041f\u043e\u0434\u043a\u0430\u0441\u0442 CSSSR: Windows 10 Update, \u0440\u0435\u043b\u0438\u0437\u044b \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u043e\u0432, \u0440\u0435\u043d\u0434\u0435\u0440 React, Vue 3 \u0438 Angular 10, Web Platform Contribution<\/a><\/p>\n<p>  <\/p>\n<h3><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/b70\/f9f\/eae\/b70f9feaeee78b42a0c78c3731555e73.gif\"> <font color=\"#349A48\"><a name=\"development\"><\/a>\u0412\u0435\u0431-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430<\/font><\/h3>\n<p>  \u2022 <img decoding=\"async\" alt=\"habr\" src=\"https:\/\/habrastorage.org\/storage2\/c57\/b92\/af4\/c57b92af4ee0d37f787c211a068b1b95.png\"> <a href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/505622\/\">\u0421\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0434\u0435\u043b \u0432 \u0441\u0444\u0435\u0440\u0435 \u043c\u0438\u043a\u0440\u043e\u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u043e\u0432<\/a><br \/>  \u2022 <img decoding=\"async\" alt=\"habr\" src=\"https:\/\/habrastorage.org\/storage2\/c57\/b92\/af4\/c57b92af4ee0d37f787c211a068b1b95.png\"> <a href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/505480\/\">\u041a\u0430\u043a \u043f\u0440\u043e\u0439\u0442\u0438 \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u0432 GitLab, \u043f\u043e\u043f\u0430\u0441\u0442\u044c \u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u0443 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 Vue \u0438 \u0441\u0442\u0430\u0442\u044c Staff-engineer<\/a><br \/>  \u2022 <a href=\"https:\/\/tproger.ru\/news\/google-changes-ranking-algorithm\/\" rel=\"nofollow\">\u041e\u0446\u0435\u043d\u043a\u0430 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f: Google \u0438\u0437\u043c\u0435\u043d\u0438\u0442 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0440\u0430\u043d\u0436\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u0430\u0439\u0442\u043e\u0432<\/a><br \/>  \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/w3c.studio24.net\/docs\/choosing-front-end-framework\/\" rel=\"nofollow\">\u0420\u0435\u0434\u0438\u0437\u0430\u0439\u043d \u0441\u0430\u0439\u0442\u0430 W3C: \u0432\u044b\u0431\u043e\u0440 \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430<\/a><br \/>  \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/indepth.dev\/setting-up-efficient-workflows-with-eslint-prettier-and-typescript\/\" rel=\"nofollow\">\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e ESLint, Prettier \u0438 TypeScript <\/a><br \/>  \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/htmlcssjavascript.com\/web\/html5-boilerplate-8-0-0-released\/\" rel=\"nofollow\">\u0420\u0435\u043b\u0438\u0437 HTML5 Boilerplate 8.0.0 <\/a><br \/>  \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/medium.com\/paypal-engineering\/reusing-ui-components-at-enterprise-level-a7df1ea1f8dd\" rel=\"nofollow\">PayPal Engineering: \u0421\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 UI \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u043d\u0430 \u0435\u043d\u0442\u0435\u0440\u043f\u0440\u0430\u0439\u0437 \u0443\u0440\u043e\u0432\u043d\u0435 <\/a><br \/>  \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/www.darice.org\/2020\/05\/07\/accessibility-or-morals\/\" rel=\"nofollow\">\u0414\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u044c \u0438\u043b\u0438 \u043c\u043e\u0440\u0430\u043b\u044c?<\/a><\/p>\n<ul>\n<li><strong>\u041f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c<\/strong><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/css-tricks.com\/how-i-used-brotli-to-get-even-smaller-css-and-javascript-files-at-cdn-scale\/\" rel=\"nofollow\">\u041a\u0430\u043a \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b Brotli \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0435\u0449\u0435 \u043c\u0435\u043d\u044c\u0448\u0438\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 CSS \u0438 JavaScript \u043d\u0430 CDN <\/a><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/www.machmetrics.com\/speed-blog\/mobile-page-speed-testing\/\" rel=\"nofollow\">\u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u0441\u0442\u0440\u0430\u043d\u0438\u0446 <\/a><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/blog.logrocket.com\/improve-site-performance-inlining-css\/\" rel=\"nofollow\">\u041f\u043e\u0432\u044b\u0441\u044c\u0442\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0441\u0430\u0439\u0442\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0438\u043d\u043b\u0430\u0439\u043d\u0438\u043d\u0433\u0430 CSS <\/a>  <\/li>\n<\/ul>\n<p>  <\/p>\n<ul>\n<li><strong>\u042d\u0444\u0444\u0435\u043a\u0442\u044b<\/strong><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/tympanus.net\/codrops\/2020\/06\/01\/ui-interactions-animations-roundup-7\/\" rel=\"nofollow\">\u041f\u043e\u0434\u0431\u043e\u0440\u043a\u0430 \u043a\u0440\u0435\u0430\u0442\u0438\u0432\u043d\u044b\u0445 \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f\u043e\u0432 \u00abUI Interactions &amp; Animations Roundup #7\u00bb <\/a><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/tympanus.net\/codrops\/2020\/06\/02\/kinetic-typography-with-three-js\/?ref=heydesigner\" rel=\"nofollow\">\u041a\u0438\u043d\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0442\u0438\u043f\u043e\u0433\u0440\u0430\u0444\u0438\u043a\u0430 \u0441 Three.js <\/a><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/greensock.com\/scrolltrigger\" rel=\"nofollow\">ScrollTrigger \u2014 \u043f\u0435\u0440\u0435\u0438\u0437\u043e\u0431\u0440\u0435\u0442\u0435\u043d\u0438\u0435 \u0441\u043a\u0440\u043e\u043b\u043b-\u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438 \u043e\u0442 GreenSock<\/a>  <\/li>\n<\/ul>\n<h3><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/36c\/2c6\/966\/36c2c69660dd21085a2dcb71d7246ae6.gif\"> <font color=\"#349A48\"><a name=\"css\"><\/a>CSS<\/font><\/h3>\n<p>  \u2022 <a href=\"https:\/\/medium.com\/front-end-in-regions-grodno\/%D0%BA%D0%BE%D0%BD%D1%84%D0%B8%D0%B3%D1%83%D1%80%D0%B8%D1%80%D1%83%D0%B5%D0%BC-%D1%86%D0%B2%D0%B5%D1%82%D0%BE%D0%B2%D1%83%D1%8E-%D1%81%D1%85%D0%B5%D0%BC%D1%83-%D0%B2%D0%B5%D0%B1-%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F-1b514653068c\" rel=\"nofollow\">\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u0443\u0435\u043c \u0446\u0432\u0435\u0442\u043e\u0432\u0443\u044e \u0441\u0445\u0435\u043c\u0443 \u0432\u0435\u0431-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f<\/a><br \/>  \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/codepen.io\/oliviale\/full\/BaoXOOP\" rel=\"nofollow\">CSS Grid: \u0412\u043e\u0441\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0433\u0430\u0437\u0435\u0442\u043d\u043e\u0439 \u0432\u0435\u0440\u0441\u0442\u043a\u0438<\/a><br \/>  \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/www.sarasoueidan.com\/blog\/style-settings-with-css-variables\/\" rel=\"nofollow\">\u0413\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u044b\u0435 \u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043d\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0441\u0442\u0438\u043b\u0435\u0439 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e CSS \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 <\/a><br \/>  \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/css-tricks.com\/a-first-look-at-aspect-ratio\/\" rel=\"nofollow\">\u041f\u0435\u0440\u0432\u044b\u0439 \u0432\u0437\u0433\u043b\u044f\u0434 \u043d\u0430 aspect-ratio<\/a><br \/>  \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/uxdesign.cc\/the-menu-210bec7ad80c\" rel=\"nofollow\">The menu. \u041f\u043e\u0448\u0430\u0433\u043e\u0432\u043e\u0435 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u043f\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e \u0433\u0430\u043c\u0431\u0443\u0440\u0433\u0435\u0440-\u043c\u0435\u043d\u044e \u043d\u0430 SVG \u0438 CSS <\/a><br \/>  \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/medium.com\/better-programming\/how-to-create-dynamic-backgrounds-with-the-css-paint-api-ebd733254014\" rel=\"nofollow\">\u041a\u0430\u043a \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0444\u043e\u043d\u044b \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e CSS Paint API <\/a><br \/>  \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/lea.verou.me\/2020\/06\/hybrid-positioning-with-css-variables-and-max\/\" rel=\"nofollow\">\u0413\u0438\u0431\u0440\u0438\u0434\u043d\u043e\u0435 \u043f\u043e\u0437\u0438\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441 CSS \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c\u0438 \u0438 max() <\/a><br \/>  \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/ishadeed.com\/article\/css-color\/\" rel=\"nofollow\">\u0426\u0432\u0435\u0442\u0430 \u0432 CSS<\/a><br \/>  \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/blog.jim-nielsen.com\/2020\/sass-color-functions-in-css\/\" rel=\"nofollow\">\u0426\u0432\u0435\u0442\u043e\u0432\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 Sass \u0432 CSS <\/a><br \/>  \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/css-tricks.com\/a-new-way-to-delay-keyframes-animations\/\" rel=\"nofollow\">\u041d\u043e\u0432\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0438\u043c\u043f\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 Delay \u0432 Keyframes&nbsp;Animations <\/a><br \/>  \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/css-tricks.com\/rotated-table-column-headers-now-with-fewer-magic-numbers\/\" rel=\"nofollow\">\u041f\u043e\u0432\u0435\u0440\u043d\u0443\u0442\u044b\u0435 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0438 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u044b\u2026 \u0442\u0435\u043f\u0435\u0440\u044c \u0441 \u043c\u0435\u043d\u044c\u0448\u0438\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u043c\u0430\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0447\u0438\u0441\u0435\u043b! <\/a><\/p>\n<h3><font color=\"#349A48\"><a name=\"js\"><\/a>JavaScript<\/font><\/h3>\n<p>  \u2022 <a href=\"https:\/\/medium.com\/@lucyhackwrench\/%D1%87%D1%82%D0%BE-%D1%81%D0%B5%D0%B3%D0%BE%D0%B4%D0%BD%D1%8F-%D1%83%D0%BC%D0%B5%D0%B5%D1%82-javascript-7bc85338c56e\" rel=\"nofollow\">\u0427\u0442\u043e \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u0443\u043c\u0435\u0435\u0442 JavaScript<\/a><br \/>  \u2022 <a href=\"https:\/\/vtvz.me\/blog\/reliable-emojification\/?utm=habr\" rel=\"nofollow\">\u0410\u043a\u043a\u0443\u0440\u0430\u0442\u043d\u043e \u0432\u043d\u0435\u0434\u0440\u044f\u0435\u043c Emoji, \u043d\u0435 \u043b\u043e\u043c\u0430\u044f \u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0435<\/a><br \/>  \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/medium.com\/better-programming\/track-your-smartphone-in-2d-with-javascript-1ba44603c0df\" rel=\"nofollow\">\u041e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0439\u0442\u0435 \u0441\u0432\u043e\u0439 \u0441\u043c\u0430\u0440\u0442\u0444\u043e\u043d \u0432 2D \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e JavaScript <\/a><br \/>  \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/medium.com\/javascript-in-plain-english\/you-dont-know-javascript-until-you-can-beat-this-game-aa7fd58befb\" rel=\"nofollow\">\u0412\u044b \u043d\u0435 \u0437\u043d\u0430\u0435\u0442\u0435 JavaScript, \u043f\u043e\u043a\u0430 \u043d\u0435 \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0431\u0435\u0434\u0438\u0442\u044c \u0432 \u044d\u0442\u043e\u0439 \u0438\u0433\u0440\u0435 <\/a><br \/>  \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/dev.to\/dimansny\/js-community-reacts-to-george-floyd-s-death-2nbj\" rel=\"nofollow\">\u0420\u0435\u0430\u043a\u0446\u0438\u044f JS \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430 \u043d\u0430 \u0441\u043c\u0435\u0440\u0442\u044c \u0414\u0436\u043e\u0440\u0434\u0436\u0430 \u0424\u043b\u043e\u0439\u0434\u0430 <\/a><br \/>  \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/indepth.dev\/exploring-the-state-of-reactivity-patterns-in-2020\/\" rel=\"nofollow\">\u0418\u0437\u0443\u0447\u0435\u043d\u0438\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u0440\u0435\u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438 \u0432 2020 \u0433\u043e\u0434\u0443 <\/a><br \/>  \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/blog.logrocket.com\/static-analysis-in-javascript-11-tools-to-help-you-catch-errors-before-users-do\/\" rel=\"nofollow\">\u0421\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0430\u043d\u0430\u043b\u0438\u0437 \u0432 JavaScript: 11 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043c\u043e\u0433\u0443\u0442 \u0432\u0430\u043c \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0438 \u0440\u0430\u043d\u044c\u0448\u0435, \u0447\u0435\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 <\/a><\/p>\n<ul>\n<li><strong>\u0422\u0435\u043e\u0440\u0438\u044f<\/strong><br \/>   \u2022 <a href=\"https:\/\/htmlacademy.ru\/blog\/boost\/frontend\/collections-js\" rel=\"nofollow\">\u0416\u0438\u0432\u044b\u0435 \u0438&nbsp;\u043d\u0435\u0436\u0438\u0432\u044b\u0435 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0432&nbsp;JavaScript<\/a><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/medium.com\/swlh\/javascript-antipatterns-prototypes-switch-and-more-e8bce5122383\" rel=\"nofollow\">\u0410\u043d\u0442\u0438\u043f\u0430\u0442\u0442\u0435\u0440\u043d\u044b JavaScript \u2014 \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f\u044b, Switch \u0438 \u043c\u043d\u043e\u0433\u043e\u0435 \u0434\u0440\u0443\u0433\u043e\u0435 <\/a><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/medium.com\/javascript-in-plain-english\/top-19-frequently-asked-typescript-interview-questions-dac4ff30c017\" rel=\"nofollow\">\u0422\u043e\u043f-19 \u0447\u0430\u0441\u0442\u043e \u0437\u0430\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0445 \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u0432 \u043e TypeScript \u043d\u0430 \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f\u0445 <\/a><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/livecodestream.dev\/post\/2020-06-03-stranger-things-javascript-edition\/\" rel=\"nofollow\">Stranger Things, JavaScript Edition<\/a>  <\/li>\n<\/ul>\n<p>  <\/p>\n<ul>\n<li><strong>React<\/strong><br \/>   \u2022 <img decoding=\"async\" alt=\"habr\" src=\"https:\/\/habrastorage.org\/storage2\/c57\/b92\/af4\/c57b92af4ee0d37f787c211a068b1b95.png\"> <a href=\"https:\/\/habr.com\/ru\/company\/tinkoff\/blog\/505488\/\">12 \u0441\u043e\u0432\u0435\u0442\u043e\u0432 \u043f\u043e \u0432\u043d\u0435\u0434\u0440\u0435\u043d\u0438\u044e TypeScript \u0432 React-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445<\/a><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/medium.com\/frontend-digest\/useswr-my-new-favorite-react-library-cd87a914a5b1\" rel=\"nofollow\">useSWR \u2014 \u041c\u043e\u044f \u043d\u043e\u0432\u0430\u044f \u043b\u044e\u0431\u0438\u043c\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0432 React <\/a><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/www.smashingmagazine.com\/2020\/06\/rest-api-react-fetch-axios\/\" rel=\"nofollow\">\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 REST API \u0432 React \u0441 Fetch \u0438 Axios <\/a><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/felixgerschau.com\/how-to-make-your-react-app-a-progressive-web-app-pwa\/\" rel=\"nofollow\">\u041a\u0430\u043a \u0441\u0434\u0435\u043b\u0430\u0442\u044c React-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0433\u0440\u0435\u0441\u0441\u0438\u0432\u043d\u044b\u043c \u0432\u0435\u0431-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c (PWA) <\/a><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/www.freecodecamp.org\/news\/how-to-build-a-markdown-previewer-with-react-js\/\" rel=\"nofollow\">\u041a\u0430\u043a \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430 Markdown \u043d\u0430 React.js <\/a><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/medium.com\/javascript-scene\/one-cool-trick-to-simplify-reducer-functions-bbbffe488bb6\" rel=\"nofollow\">\u041e\u0434\u0438\u043d \u043a\u043b\u0435\u0432\u044b\u0439 \u0442\u0440\u044e\u043a \u0434\u043b\u044f \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0440\u0435\u0434\u0443\u043a\u0442\u043e\u0440\u0430 <\/a>  <\/li>\n<\/ul>\n<p>  <\/p>\n<ul>\n<li><strong>Vue<\/strong><br \/>   \u2022 <img decoding=\"async\" alt=\"habr\" src=\"https:\/\/habrastorage.org\/storage2\/c57\/b92\/af4\/c57b92af4ee0d37f787c211a068b1b95.png\"> <a href=\"https:\/\/habr.com\/ru\/post\/505608\/\">Vuex \u2013 \u0440\u0435\u0448\u0430\u0435\u043c \u0441\u0442\u0430\u0440\u044b\u0439 \u0441\u043f\u043e\u0440 \u043d\u043e\u0432\u044b\u043c\u0438 \u043c\u0435\u0442\u043e\u0434\u0430\u043c\u0438<\/a><br \/>   \u2022 <img decoding=\"async\" alt=\"habr\" src=\"https:\/\/habrastorage.org\/storage2\/c57\/b92\/af4\/c57b92af4ee0d37f787c211a068b1b95.png\"> <a href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/505362\/\">Vite \u2013 \u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0431\u0435\u0437 \u0431\u0430\u043d\u0434\u043b\u043e\u0432 \u043d\u0430 Vue<\/a><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/medium.com\/swlh\/vue-best-practices-most-important-changes-b4ced988d659\" rel=\"nofollow\">Vue Best Practices \u2014 \u041d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0432\u0430\u0436\u043d\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f <\/a><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/medium.com\/js-dojo\/clean-scalable-forms-with-vue-composition-api-6db03cccabde\" rel=\"nofollow\">\u0427\u0438\u0441\u0442\u044b\u0435, \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u043c\u044b\u0435 \u0444\u043e\u0440\u043c\u044b \u0441 Vue Composition API <\/a><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/dev.to\/chrisdixon161\/quick-easy-vue-js-search-facility-517a\" rel=\"nofollow\">\u0411\u044b\u0441\u0442\u0440\u044b\u0439 \u0438 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u043e\u0438\u0441\u043a\u0430 \u0432\u043e Vue<\/a><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/dev.to\/scrimba\/learn-vuex-in-5-minutes-29ja\" rel=\"nofollow\">\u0418\u0437\u0443\u0447\u0438\u0442\u0435 Vuex \u0437\u0430 5 \u043c\u0438\u043d\u0443\u0442. <\/a><br \/>   \u2022 <img decoding=\"async\" alt=\"podcast\" src=\"https:\/\/habrastorage.org\/web\/259\/2f4\/069\/2592f40697cc49dc939e9fc3983fc737.png\"> <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/devchat.tv\/views-on-vue\/vov-108-inside-vue-3-with-gregg-pollack\/\" rel=\"nofollow\">\u041f\u043e\u0434\u043a\u0430\u0441\u0442 \u00abViews on Vue\u00bb \u2116108: Inside Vue 3 with Gregg Pollack<\/a>  <\/li>\n<\/ul>\n<p>  <\/p>\n<ul>\n<li><strong>Angular<\/strong><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/medium.com\/javascript-in-plain-english\/how-to-use-json-ld-for-advanced-seo-in-angular-63528c98bb91\" rel=\"nofollow\">\u041a\u0430\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c JSON-LD \u0434\u043b\u044f \u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u043e\u0433\u043e SEO \u0432 Angular <\/a><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/itnext.io\/custom-decorators-in-angular-c54da873b3b3\" rel=\"nofollow\">\u041a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u0435 \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u043e\u0440\u044b \u0432 Angular<\/a><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/dev.to\/zasuh_\/in-defense-of-the-angular-framework-25fg\" rel=\"nofollow\">\u0412 \u0437\u0430\u0449\u0438\u0442\u0443 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430 Angular <\/a><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/indepth.dev\/a-deep-dive-into-injectable-and-providedin-in-ivy\/\" rel=\"nofollow\">\u0413\u043b\u0443\u0431\u043e\u043a\u043e\u0435 \u043f\u043e\u0433\u0440\u0443\u0436\u0435\u043d\u0438\u0435 \u0432 @Injectable \u0438 providedIn \u0432 Ivy <\/a><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/indepth.dev\/testing-routed-angular-components-with-the-routertestingmodule\/\" rel=\"nofollow\">\u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0438\u0440\u0443\u0435\u043c\u044b\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 Angular \u0441 RouterTestingModule <\/a>  <\/li>\n<\/ul>\n<p>  <\/p>\n<ul>\n<li><strong>Ember<\/strong><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/dev.to\/embertimes\/the-ember-times-issue-no-151-2ba8\" rel=\"nofollow\">The Ember Times \u2014 Issue No. 151<\/a>  <\/li>\n<\/ul>\n<p>  <\/p>\n<ul>\n<li><strong>Svelte<\/strong><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/dev.to\/codechips\/svelte-bind-directive-explained-in-depth-339j\" rel=\"nofollow\">\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0435 \u043e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0435 \u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0432\u044b bind \u0432 Svelte <\/a><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/medium.com\/@felice.geracitano\/zero-to-demo-streaming-application-frontend-ec6cb95ee7d2\" rel=\"nofollow\">C \u043d\u0443\u043b\u044f \u0434\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0441 \u043f\u043e\u0442\u043e\u043a\u043e\u0432\u043e\u0439 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0435\u0439 <\/a><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/medium.com\/@firthous.dev\/how-to-add-customizable-svg-icons-in-svelte-js-app-488648d302c8\" rel=\"nofollow\">\u041a\u0430\u043a \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c\u044b\u0435 SVG \u0438\u043a\u043e\u043d\u043a\u0438 \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0430 Svelte JS <\/a>  <\/li>\n<\/ul>\n<p>  <\/p>\n<ul>\n<li><strong>Libs &amp; Plugins<\/strong><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/defaced.dev\/tools\/consoleimg\/\" rel=\"nofollow\">consoleimg \u2014 \u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430<\/a><br \/>   \u2022 <img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"> <a href=\"https:\/\/gridjs.io\/\" rel=\"nofollow\">Grid.js \u2014 \u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u044b\u0439 \u043f\u043b\u0430\u0433\u0438\u043d \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u043c\u0438, \u0440\u0435\u043b\u0438\u0437 \u043d\u043e\u0432\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438<\/a>  <\/li>\n<\/ul>\n<h3><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/c59\/524\/8ce\/c595248cea9cbeab42ab6633d54d3782.gif\"> <font color=\"#349A48\"><a name=\"browser\"><\/a>\u0411\u0440\u0430\u0443\u0437\u0435\u0440\u044b<\/font><\/h3>\n<p>  \u2022 <a href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=53072\" rel=\"nofollow\">\u0420\u0435\u043b\u0438\u0437 Firefox 77<\/a><br \/>  \u2022 <a href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=53096\" rel=\"nofollow\">\u0412 Firefox \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0430 \u0441\u043e\u0445\u0440\u0430\u043d\u0451\u043d\u043d\u044b\u0445 \u043f\u0430\u0440\u043e\u043b\u0435\u0439 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 CSV<\/a><br \/>  \u2022 <a href=\"https:\/\/microsoftportal.net\/windows-9\/12579-microsoft-razvertyvaet-novyj-microsoft-edge-dlja-vseh-polzovatelej-windows-10.html\" rel=\"nofollow\">Microsoft \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u0435\u0442 \u043d\u043e\u0432\u044b\u0439 Microsoft Edge \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 Windows 10<\/a><br \/>  \u2022 <a href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=53112\" rel=\"nofollow\">\u0412 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435 Brave \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u0430 \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0440\u0435\u0444\u0435\u0440\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u043f\u0440\u0438 \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u0438 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u0430\u0439\u0442\u043e\u0432<\/a><\/p>\n<p>\u041f\u0440\u043e\u0441\u0438\u043c \u043f\u0440\u043e\u0449\u0435\u043d\u0438\u044f \u0437\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0438 \u0438\u043b\u0438 \u043d\u0435\u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0435\/\u0434\u0443\u0431\u043b\u0438\u0440\u0443\u044e\u0449\u0438\u0435\u0441\u044f \u0441\u0441\u044b\u043b\u043a\u0438. \u0415\u0441\u043b\u0438 \u0432\u044b \u0437\u0430\u043c\u0435\u0442\u0438\u043b\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u2014 \u043d\u0430\u043f\u0438\u0448\u0438\u0442\u0435 \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u0432 \u043b\u0438\u0447\u043a\u0443, \u043c\u044b \u0441\u0442\u0430\u0440\u0430\u0435\u043c\u0441\u044f \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e \u0438\u0445 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c. <\/p>\n<p>  <a href=\"https:\/\/habr.com\/ru\/post\/504718\/\">\u0414\u0430\u0439\u0434\u0436\u0435\u0441\u0442 \u0437\u0430 \u043f\u0440\u043e\u0448\u043b\u0443\u044e \u043d\u0435\u0434\u0435\u043b\u044e<\/a>.<br \/>  \u041c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u043b\u0438 <a href=\"http:\/\/habrahabr.ru\/users\/dersmoll\/\" rel=\"nofollow\">dersmoll<\/a> \u0438 <a href=\"http:\/\/habrahabr.ru\/users\/alekskorovin\/\" rel=\"nofollow\">alekskorovin<\/a>.<\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/post\/505746\/\"> https:\/\/habr.com\/ru\/post\/505746\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/post\/505746\/\">\u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c \u0432\u0430\u0448\u0435\u043c\u0443 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044e \u043f\u043e\u0434\u0431\u043e\u0440\u043a\u0443 \u0441 \u0441\u0441\u044b\u043b\u043a\u0430\u043c\u0438 \u043d\u0430 \u043d\u043e\u0432\u044b\u0435 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b \u0438\u0437 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0430 \u0438 \u043e\u043a\u043e\u043b\u043e \u043d\u0435\u0433\u043e.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/yl\/yq\/gd\/ylyqgdzlgrcxcbj9kg75qtmij7m.png\"><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-304976","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/304976","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=304976"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/304976\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=304976"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=304976"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=304976"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}