🧔📈 Повышение до тимлида: дорожная карта
Опыт и знания, которые вам нужно приобрести, чтобы стать тимлидом во фронтенде. Делимся списком из хард- и софтскиллов.
https://proglib.io/sh/nQHKU2AdCm
Опыт и знания, которые вам нужно приобрести, чтобы стать тимлидом во фронтенде. Делимся списком из хард- и софтскиллов.
https://proglib.io/sh/nQHKU2AdCm
Запуск анимации при скролле
Откладывание старта анимации до момента, когда пользователь до нее доскроллит, - распространенный и эффектный прием. В статье разбирается его реализация с использованием IntersectionObserver API (и фоллбэком для старых браузеров).
https://proglib.io/w/2bbaf368
#interface #animation
Откладывание старта анимации до момента, когда пользователь до нее доскроллит, - распространенный и эффектный прием. В статье разбирается его реализация с использованием IntersectionObserver API (и фоллбэком для старых браузеров).
https://proglib.io/w/2bbaf368
#interface #animation
Советы по улучшению условий в JavaScript
7 простых техник, которые помогут сделать ваши условия понятнее и проще: https://proglib.io/w/8fbc7ba8
#bestpractices
7 простых техник, которые помогут сделать ваши условия понятнее и проще: https://proglib.io/w/8fbc7ba8
#bestpractices
Pavel Nakonechnyy
Советы по улучшению условий в JavaScript
Перевод статьи Milos Protic Если вы любите видеть чистый код, как и я, то вы точно будете пытаться максимально уменьшить свои условия для if'ов. В целом, ООП позволяет нам избегать условий и...
🧩 5 интересных головоломок и задач, чтобы отвлечься от рутины и немного пошевелить извилинами (выпуск 15)
В нашей еженедельной подборке мы подготовили 5 новых интересных алгоритмических, логических и математических задачек для отдыха и прокачки мозгов.
https://proglib.io/sh/ak1X027h5f
В нашей еженедельной подборке мы подготовили 5 новых интересных алгоритмических, логических и математических задачек для отдыха и прокачки мозгов.
https://proglib.io/sh/ak1X027h5f
Библиотека программиста
🧩 5 интересных головоломок и задач, чтобы отвлечься от рутины и немного пошевелить извилинами (выпуск 15)
В нашей еженедельной подборке мы подготовили 5 новых интересных алгоритмических, логических и математических задачек для отдыха и прокачки мозгов.
Почему получаются плохие абстракции и как этого избежать?
🚀3 февраля, в этот четверг, в 19.00 МСК Евгений Тюменцев, профессионально занимающийся разработкой многопоточных кросс-платформенных приложений на С++, научит вас строить абстракции – один из ключевых навыков для программиста.
За один час вы узнаете:
– Что такое абстракция?
– Причины правок кода
– Как выделять абстракции
– Свойства абстракций, полезные при разработке
Познакомьтесь с новым решением построения архитектуры приложений и инструментами для планирования ее будущей системы.
Регистрация и подробности по ссылке.
🚀3 февраля, в этот четверг, в 19.00 МСК Евгений Тюменцев, профессионально занимающийся разработкой многопоточных кросс-платформенных приложений на С++, научит вас строить абстракции – один из ключевых навыков для программиста.
За один час вы узнаете:
– Что такое абстракция?
– Причины правок кода
– Как выделять абстракции
– Свойства абстракций, полезные при разработке
Познакомьтесь с новым решением построения архитектуры приложений и инструментами для планирования ее будущей системы.
Регистрация и подробности по ссылке.
☕️ 10 вопросов с собеседований по JavaScript
В этой статье мы рассмотрим 10 вопросов с собеседований по JavaScript и примеры ответов на них, которые помогут вам подготовиться к интервью.
https://proglib.io/sh/RwOMqzJSHh
#interview
В этой статье мы рассмотрим 10 вопросов с собеседований по JavaScript и примеры ответов на них, которые помогут вам подготовиться к интервью.
https://proglib.io/sh/RwOMqzJSHh
#interview
Библиотека программиста
☕ 10 вопросов с собеседований по JavaScript
В этой статье мы рассмотрим 10 вопросов с собеседований по JavaScript и примеры ответов на них, которые помогут вам подготовиться к интервью.
😃 Взять отпуск или уволиться: как вернуть мотивацию к работе
Праздники, зимний авитаминоз и хандра, дедлайны и отвлекающие факторы на удаленке – все это негативно влияет на нашу мотивацию. В этой статье мы поговорим о том, как вернуть рабочий настрой.
https://proglib.io/sh/YWweDCztL4
Праздники, зимний авитаминоз и хандра, дедлайны и отвлекающие факторы на удаленке – все это негативно влияет на нашу мотивацию. В этой статье мы поговорим о том, как вернуть рабочий настрой.
https://proglib.io/sh/YWweDCztL4
Как ваш браузер обрабатывает прикосновения к экрану телефона (js touch events)
https://proglib.io/w/993fd72a
https://proglib.io/w/993fd72a
Как мы ускоряли комментарии Хабра
Опыт Хабра по оптимизации большого количества комментариев в рамках SPA-приложения: https://proglib.io/w/66f639ab
#optimisation
Опыт Хабра по оптимизации большого количества комментариев в рамках SPA-приложения: https://proglib.io/w/66f639ab
#optimisation
Правильный способ заставить Vue перендерить компонент
Иногда бывает так, что реактивности Vue не хватает, и вам нужно перерендерить компонент. Или вам нужно сбросить DOM и начать сначала. Как сделать это правильно?
https://proglib.io/w/a2d4bac0
#vue
Иногда бывает так, что реактивности Vue не хватает, и вам нужно перерендерить компонент. Или вам нужно сбросить DOM и начать сначала. Как сделать это правильно?
https://proglib.io/w/a2d4bac0
#vue
Введение в CSS Cascade Layers
Управление каскадом стилей- задача не из легких. Скоро в CSS появятся каскадные слои - смогут ли они решить эту проблему?
https://proglib.io/w/9f43b951
#css
Управление каскадом стилей- задача не из легких. Скоро в CSS появятся каскадные слои - смогут ли они решить эту проблему?
https://proglib.io/w/9f43b951
#css
Оптимизация видео по размеру и качеству
Добавление видео в приложение может повысить вовлеченность и удовлетворенность клиентов. Но при проблемах с воспроизведением обычно происходит прямо противоположное. Разбираемся, как этого избежать: https://proglib.io/w/877f475b
#performance
Добавление видео в приложение может повысить вовлеченность и удовлетворенность клиентов. Но при проблемах с воспроизведением обычно происходит прямо противоположное. Разбираемся, как этого избежать: https://proglib.io/w/877f475b
#performance
Forwarded from React Junior
3 паттерна для создания React-компонентов
Статья (англ.): https://blog.openreplay.com/3-react-component-design-patterns-you-should-know-about
Несмотря на то, что React не навязывает разработчикам определенную структуру проекта или методику создания компонентов, есть некоторые популярные паттерны, которые используются во многих проектах. Вероятно, они действительно хороши, и их стоит, как минимум, рассмотреть. Статья описывает три таких паттерна.
Презентационные компоненты и компоненты-контейнеры
Презентационные компоненты отвечают только за внешний вид. Они получают данные через пропсы, выводят их и никак не зависят от других компонентов. Очень часто презентационные компоненты не имеют состояния, но также могут отслеживать какое-то состояние, связанное с интерфейсом (например, текст в поле ввода). Примеры презентационных компонентов: список элементов, поле ввода.
Компоненты-контейнеры обеспечивают логику приложения. У них есть состояние, они используют различные методы жизненного цикла и содержат в себе презентационные компоненты для вывода данных. Именно в контейнерных компонентах происходит запрос и обработка данных.
Этот паттерн позволяет отделить логику от представления и повысить реюзабельность компонентов, например, в одном и том же контейнере можно использовать разные презентационные компоненты.
Провайдер
Паттерн Провайдер решает проблему многоуровневого проброса пропсов по цепочке компонентов. Вместо того, чтобы передавать данные вниз, через незаинтересованные компоненты, мы можем создать единое хранилище данных и связываться с ним только там, где это действительно необходимо.
Пример Провайдера в React - это контекст. Мы создаем объект контекста с нужными данными (например, цветовой темой приложения), оборачиваем все приложение в провайдер этого контекста и в нужных местах связываемся с ним с помощью хука useContext, или свойства contextType, или Context.Consumer.
Этот паттерн здорово облегчает передачу данных, но при этом затрудняет переиспользование компонентов, так как они зависят от данных провайдера.
Составные компоненты
Компоненты в React могут работать в симбиозе, разделяя общее состояние. Например, компонент списка (
Но у
Реализовав этот паттерн мы сможем удобно оформлять список, выделяя каждый элемент в
#паттерны #ссылки
Статья (англ.): https://blog.openreplay.com/3-react-component-design-patterns-you-should-know-about
Несмотря на то, что React не навязывает разработчикам определенную структуру проекта или методику создания компонентов, есть некоторые популярные паттерны, которые используются во многих проектах. Вероятно, они действительно хороши, и их стоит, как минимум, рассмотреть. Статья описывает три таких паттерна.
Презентационные компоненты и компоненты-контейнеры
Презентационные компоненты отвечают только за внешний вид. Они получают данные через пропсы, выводят их и никак не зависят от других компонентов. Очень часто презентационные компоненты не имеют состояния, но также могут отслеживать какое-то состояние, связанное с интерфейсом (например, текст в поле ввода). Примеры презентационных компонентов: список элементов, поле ввода.
Компоненты-контейнеры обеспечивают логику приложения. У них есть состояние, они используют различные методы жизненного цикла и содержат в себе презентационные компоненты для вывода данных. Именно в контейнерных компонентах происходит запрос и обработка данных.
Этот паттерн позволяет отделить логику от представления и повысить реюзабельность компонентов, например, в одном и том же контейнере можно использовать разные презентационные компоненты.
Провайдер
Паттерн Провайдер решает проблему многоуровневого проброса пропсов по цепочке компонентов. Вместо того, чтобы передавать данные вниз, через незаинтересованные компоненты, мы можем создать единое хранилище данных и связываться с ним только там, где это действительно необходимо.
Пример Провайдера в React - это контекст. Мы создаем объект контекста с нужными данными (например, цветовой темой приложения), оборачиваем все приложение в провайдер этого контекста и в нужных местах связываемся с ним с помощью хука useContext, или свойства contextType, или Context.Consumer.
Этот паттерн здорово облегчает передачу данных, но при этом затрудняет переиспользование компонентов, так как они зависят от данных провайдера.
Составные компоненты
Компоненты в React могут работать в симбиозе, разделяя общее состояние. Например, компонент списка (
Menu
) и компоненты отдельных элементов списка (MenuItem
). Вынесение элементов в отдельные компоненты может быть удобно с точки зрения передачи пропсов и структуризации кода. Но у
Menu
и MenuItem
есть общее состояние - активный элемент, оно должно храниться в компоненте Menu
, значит, его нужно передать во все вложенные компоненты MenuItem
. Об этом должен позаботиться сам компонент списка (например, с помощью React Context), тогда мы получим составной компонент (compound component). Реализовав этот паттерн мы сможем удобно оформлять список, выделяя каждый элемент в
MenuItem
, но при этом не придется заботиться о передаче состояния элементам, так как это происходит под капотом.#паттерны #ссылки
Openreplay
3 React Component Design Patterns You Should Know About
Top 3 design patterns used to create React.JS components that you should know about
Система координат на HTML и CSS
Строим графики с помощью CSS переменных: https://proglib.io/w/e9fcae0c
Строим графики с помощью CSS переменных: https://proglib.io/w/e9fcae0c
🧩 Задача для тех, кто хочет отвлечься от рутины и немного пошевелить извилинами (выпуск 16, задача 1)
Августин, Евдоким и Теодор планируют отправиться в гости к таинственной Урсуле, проживающей на противоположном берегу реки. Чтобы не идти с пустыми руками, мужчины прихватили с собой по коробке невероятно вкусных шоколадных пирожных с клубничным кремом... Как мужчинам перебраться на другой берег и не слопать пирожные?
Подробности: https://proglib.io/sh/KGh35uimy0
Августин, Евдоким и Теодор планируют отправиться в гости к таинственной Урсуле, проживающей на противоположном берегу реки. Чтобы не идти с пустыми руками, мужчины прихватили с собой по коробке невероятно вкусных шоколадных пирожных с клубничным кремом... Как мужчинам перебраться на другой берег и не слопать пирожные?
Подробности: https://proglib.io/sh/KGh35uimy0
Библиотека программиста
🧩 Задача для тех, кто хочет отвлечься от рутины и немного пошевелить извилинами (выпуск 16, задача 1)
Августин, Евдоким и Теодор планируют отправиться в гости к таинственной Урсуле, проживающей на противоположном берегу реки. Чтобы не идти с пустыми руками, мужчины прихватили с собой по коробке невероятно вкусных шоколадных пирожных с клубничным кремом...…