Почему получаются плохие абстракции и как этого избежать?
🚀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)
Августин, Евдоким и Теодор планируют отправиться в гости к таинственной Урсуле, проживающей на противоположном берегу реки. Чтобы не идти с пустыми руками, мужчины прихватили с собой по коробке невероятно вкусных шоколадных пирожных с клубничным кремом...…
«Библиотека программиста» находится в поиске автора оригинальных статей.
Обязанности:
– Написание оригинальных статей.
Количество статей:
– 2-5 статей в месяц.
Языки:
– Python, JavaScript.
Пишите на [email protected]
Обязанности:
– Написание оригинальных статей.
Количество статей:
– 2-5 статей в месяц.
Языки:
– Python, JavaScript.
Пишите на [email protected]
Как строить архитектуры приложений, которые позволяют не снижать скорость разработки по мере развития проекта?
💻Освойте основные паттерны проектирования и прокачайте свои навыки архитектора программного обеспечения в режиме живых занятий с опытным разработчиком-практиком.
Старт интенсива «Архитектуры и шаблоны проектирования» уже 15 февраля.
🚀После интенсива вы будете:
– Знать границы применения SOLID принципов и уметь их использовать не только в объектно-ориентированных языках.
– Писать модульные тесты на Mock-объектах.
– Уметь применять IoC контейнеры и CI.
Вы познакомитесь с типовыми задачами и приемами их решений построения архитектуры приложений, а также поработаете в команде, повысите свою эффективность и поймёте, как развиваться в профессии.
Осталось 3 места до закрытия набора группы, успейте присоединиться!
Записаться сейчас со скидкой 50% можно здесь.
Промокод: SOLID50 (скидка -50%).
💻Освойте основные паттерны проектирования и прокачайте свои навыки архитектора программного обеспечения в режиме живых занятий с опытным разработчиком-практиком.
Старт интенсива «Архитектуры и шаблоны проектирования» уже 15 февраля.
🚀После интенсива вы будете:
– Знать границы применения SOLID принципов и уметь их использовать не только в объектно-ориентированных языках.
– Писать модульные тесты на Mock-объектах.
– Уметь применять IoC контейнеры и CI.
Вы познакомитесь с типовыми задачами и приемами их решений построения архитектуры приложений, а также поработаете в команде, повысите свою эффективность и поймёте, как развиваться в профессии.
Осталось 3 места до закрытия набора группы, успейте присоединиться!
Записаться сейчас со скидкой 50% можно здесь.
Промокод: SOLID50 (скидка -50%).
Распространённые заблуждения о наследовании в JavaScript
Если ты не разбираешься в прототипах, ты не понимаешь JavaScript: https://proglib.io/w/79120607
#javascript
Если ты не разбираешься в прототипах, ты не понимаешь JavaScript: https://proglib.io/w/79120607
#javascript
Medium
Распространённые заблуждения о наследовании в JavaScript
Перевод статьи [Eric Elliott](https://twitter.com/_ericelliott): [Common Misconceptions About Inheritance in…
🚄 Сравнение 6 алгоритмов сортировки: пузырьком, выбором, кучей, вставками, слиянием и быстрая
В этой статье мы начнем изучение алгоритмов сортировки, разберем 6 методов сортировки и ознакомимся с оценкой их эффективности.
https://proglib.io/sh/MleBkGR4VW
В этой статье мы начнем изучение алгоритмов сортировки, разберем 6 методов сортировки и ознакомимся с оценкой их эффективности.
https://proglib.io/sh/MleBkGR4VW