Библиотека фронтендера | Frontend, JS, JavaScript, React.js, Angular.js, Vue.js
23.2K subscribers
2.2K photos
120 videos
38 files
4.61K links
Все самое полезное для фронтенда в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/77178ed4

Наши каналы: https://yangx.top/proglibrary/9197

РКН: https://gosuslugi.ru/snet/67a5b6884689c2151c820bb4
加入频道
Полезный текст на Хабре от специалиста, который больше пяти лет занимается администрированием кластеров Kubernetes и построением сложных микросервисных архитектур. В статье рассказывается, что представляет собой этот самый Kubernetes и чем интеграция с вендором отличается от open source.

Материал можно почитать по ссылке https://habr.com/ru/company/ru_mts/blog/500728/
📸 Как сделать галерею в стиле Instagram

Галереи картинок с горизонтальной прокруткой выглядят современно и узнаваемо. Рассказываем, как с помощью CSS и JS перенести знакомую пользователям механику в ваши веб-приложения.

Читать: https://proglib.io/p/kak-sdelat-galereyu-v-stile-instagram-2020-05-11

#interface
Алгоритмы и структуры данных на JavaScript

Огромный список реализаций с подробными объяснениями и ссылками. Добавляйте в закладки 👍

Ссылка: https://github.com/trekhleb/javascript-algorithms

#javascript #algorithms #datastructures #bestpractices #digest
Не усложняйте масштабируемый CSS

Хороший лонгрид на пятничный вечер о том, как стоит и как не стоит работать с CSS. Если кратко:

👉 не паникуйте
👉 общайтесь
👉 соблюдайте согласованность
👉 упрощайте

Полностью смотрите здесь: https://medium.com/@ABatickaya/keep-it-simple-71436866e727

#css #bestpractices
Ozon научит Go бесплатно! Важная новость для всех, кто связывает своё будущее с написанием кода: самый быстрорастущий российский e-commerce запускает бесплатную школу Go. Это возможность за два месяца стать middle-специалистом с опытом решения реальных задач и проектом в портфолио — а лучшие выпускники получат предложение о работе в Ozon. Что нужно, чтобы поступить? Опыт в написании кода, сделанное тестовое задание и, конечно, заявка. Подробности тут: http://ozon.dev/goschool
​​«Цифровой прорыв» 2020 открывает прием заявок на масштабный IT-марафон с призовым фондом 5.000.000 руб.! ⚡️

В режиме онлайн ты сможешь реализовать свою идею, создать действительно классный продукт, который будет менять жизни людей. 🚀

💥 Регистрируйся по ссылке: https://proglib.io/w/dba68b8c

Тебя ждут два онлайн-хакатона, которые пройдут 5-7 июня и 19-21 июня. 👨🏻‍💻👩🏼‍💻

- 36 часов кодинга/400 команд;
- Крутые кейсовые задания от Росатома, Сбербанка, Глобального русскоговорящего технологического сообщества Rutech;
- Образовательная программа;
- Трекеры и эксперты , которые будут помогать тебе на каждом этапе.

🌏 25 июня - 25 июля состоится онлайн-чемпионат на технологической платформе Mail.ru:

- Индивидуальное участие;
- Задачи по Machine Learning и Data Science;
- Возможность попасть на финал Цифрового Прорыва!

🎯 Проверь свои силы и разработай крутой проект для решения реальных бизнес-задач, регистрируйся по ссылке: https://proglib.io/w/dba68b8c
Кто такой Deno и заменит ли он Node.js?

Несколько дней назад произошел долгожданный релиз Deno.

Разбираемся, чем Райану Дал недоволен в Node и какие перспективы у нового проекта.

Читать: https://blog.bitsrc.io/what-is-deno-and-will-it-replace-nodejs-a13aa1734a74

#node #deno
Логические операции с CSS-переменными

Статья Аны Тюдор рассказывает, как использовать всю мощь булевой логики в CSS, а главное - зачем это может понадобиться.

Читать: https://css-tricks.com/logical-operations-with-css-variables/

#css #advanced
Разыскивается Node.js разработчик
От 2200 до 2900 USD, Полная занятость, Санкт-Петербург

CS.MONEY - площадка, которая позволяет быстро и безопасно обменять, купить или продать свои игровые предметы. Проект существует больше 3-х лет и занимает лидирующую позицию в своей сфере. Сейчас нас более 50 человек, и мы продолжаем расти.

📌 Что тебя ждет:
- Разработка сервисов для core-функционала продукта
- Развитие и поддержка архитектуры микросервисов
- Возможность опробовать новые технологии

👨‍🎓 Обязательные знания:
- Понимание асинхронности в Node.js
- Знание HTTP-сервера Koa
- Redis и MongoDB
- ES6 и соблюдение кодстайла (eslint)
- Docker

➡️ Подробности - https://proglib.io/vacancies/node-js-razrabotchik-cs-money-2020-05-16
Сокращаем в два раза время генерации билда Nuxt.js с помощью context.payload

Подробнее: https://markus.oberlehner.net/blog/cut-your-nuxt-generate-build-time-in-half-with-context-payload/

#tools
Декораторы в JavaScript

Декораторы — это объекты, которые используются для динамического добавления дополнительной функциональности к другому объекту без изменения реализации этого объекта.

Подробнее: https://nuancesprog.ru/p/7110/

#javascript #bestpractices
26 мая HTML Academy запускает онлайн-курс «JavaScript. Профессиональная разработка веб-интерфейсов». Специально для тех, кто хочет сменить профессию и стать высокооплачиваемым фронтендером. Будет супер:

💡 Живые лекции: вт и пт, с 19:00 до 21:00 (запись лекции доступна на следующий день).
👨‍💻 Практика: домашние задания и собственный проект.
👓 Ревью кода: опытный наставник проверит качество работы и расскажет, как можно сделать лучше.

Для успешного прохождения нужны базовые знания HTML, CSS и JS, а также 15−20 свободных часов в неделю. Да, потребуются усилия, но после завершения курса вы сможете начать карьеру фронтенд-разработчика. Полная программа, отзывы компаний и выпускников здесь: https://proglib.io/w/b0f75d7d
Создание full stack serverless приложения на React + Amplify

Облачные технологии позволяют быстро создавать полноценные масштабируемые веб-приложения. Разбираемся в ключевых понятиях и настройке AWS Amplify и создаем собственное приложение на React.

Подробнее: https://blog.soshace.com/how-to-build-a-full-stack-serverless-application-with-react-and-amplify/

#react #cloud
Практическое руководство по TypeScript

Создайте собственный покедекс на HTML, CSS и TypeScript!

Подробнее: https://www.freecodecamp.org/news/a-practical-guide-to-typescript-how-to-build-a-pokedex-app-using-html-css-and-typescript/

#typescript #beginners
Лучшие практики управления кэшем

Кэширование данных на сайте позволяет уменьшить время его загрузки и снизить количество запросов к серверу. Но его еще нужно правильно настроить.

В статье подробно разбираются самые важные HTTP-заголовки, определяющие, как браузер будет работать с данными.

Etag (Entity tag)

Сервер вычисляет хеш-сумму для каждого файла, которая сохраняется в браузере. Если при следующем запросе сумма не изменилась, файл не отправляется целиком, а берется из кэша.

Last Modified

Очень похожая политика, только вместо хеш-суммы используется время последнего изменения файла. Кроме того, браузеры применяют различные эвристики, чтобы решить, следует ли обновлять файл.

Cache-Control max-age

Указывает браузеру, как долго нужно хранить файл в кеше после загрузки. При этом совсем нет запросов к серверу, но есть риск использования устаревшей версии файла. Чтобы решить эту проблему используются хеши в именах файлах.

Cache-Control no-cache

Если использовать директиву max-age к HTML-файлам, браузер просто не получит ссылки на обновленные скрипты и файлы стилей. Поэтому для них следует использовать политику no-cache, которая отлично сочетается с Etag.

Подробнее: https://medium.com/pixelpoint/best-practices-for-cache-control-settings-for-your-website-ff262b38c5a2

#cache #browser #performance
Чейнинг стилей а-ля jQuery с помощью Proxy

Библиотека jQuery предоставляет очень удобную возможность чейнинга методов для одного элемента:

$(selector)
.css('color', '#fff')
.data('mode', 'light')
.fadeIn()

Ванильный DOM API по сравнению с этим выглядит очень громоздко, но мы можем прокачать его с помощью JavaScript Proxy.

Статья рассказывает, как работает Proxy - перехватывает обращения к методам и свойствам объекта - и как, используя эту функциональность, оптимизировать работу со стилями элемента.

style(selector)
.color('#fff')
.backgroundColor('#000')
.opacity(1)

Вкратце

Проксируем доступ к объекту element.style, перехватываем все обращения к css-свойствам, делаем нужные операции со стилями и возвращаем новый Proxy.

Подробнее: https://tobiasahlin.com/blog/chaining-styles-with-proxy/

#javascript #proxy #advanced
‼️ Уточнение к условию задачи:
Блоки вложены друг в друга. Red2 вложен в Red1, Blue3 в Blue2, Blue2 в Blue1, Green2 - в Green1.
Какой блок в верстке окажется выше других по оси z (ближе к пользователю)?
Anonymous Quiz
18%
red2
6%
blue2
39%
blue3
14%
green1
23%
green2
Ближе всего к пользователю окажется блок green2

Свойство z-index применяется только к элементам с позиционированием, отличным от static, поэтому green1 сразу выбывает из гонки - это обычный блок в потоке.

Z-index работает в текущем контексте наложения. red1, blue1 и green2 находятся в одном контексте - корневом, так что green2 с индексом 2 оказывается выше всех.

Блок red2 находится в контексте блока red1, а блок blue2 - в контексте блока blue1, которые по z-оси ниже, чем green2.

Подробнее о свойстве z-index: https://www.cat-in-web.ru/z-index-v-css-sozdanie-sloev-i-osobennosti-raboty/

#css
Методы консоли, о которых вы опять забыли

Метод console.log() - краеугольный камень JS-разработки, это неоспоримо. Но мы прекрасно знаем, что консоль способна на большее. Давайте в очередной раз вспомним, на что именно.

console.error()

Выделенное красным фоном сообщение об ошибке со стеком вызовов, который к ней привел.

⚠️ console.warn()

Выделенное желтым фоном предупреждение со стеком вызовов.

console.assert()

Проверка значения на истинность/ложность. В случае неверного утверждения возвращает Assertion failed и выводит сообщение об ошибке.

💯 console.count(), console.countReset()

Установка, увеличение и очистка счетчика с определенным именем.

📂 console.group(), console.groupEnd()

Группировка сообщений в блоки с заголовками, которые можно свернуть/развернуть.

🗒 console.table()

Красивое и понятное представление объектов и массивов.

console.time(), console.timeEnd()

Простой способ измерить время выполнения кода.

Источник: https://webdevblog.ru/vyhod-za-predely-console-log-8-console-metodov-kotorye-sleduet-ispolzovat-pri-otladke-javascript-i-node/

#api #javascript #console