Руслан Куянец | Reactify – Telegram
Руслан Куянец | Reactify
5.83K subscribers
704 photos
52 videos
39 files
287 links
Я IT-специалист, ментор и основатель проекта YeaHub и сообщества Reactify. Здесь рассказываю про Frontend и IT.

Менторство:
https://reactify.ru

YouTube канал:
https://youtube.com/@reactify-it

YeaHub:
https://yeahub.ru/

Связь:
@ruslan_kuyanets
Download Telegram
Бьем рекорд 😎👍
👍10🔥3🤝1
Кто хотел бы Общаться с разработчиками за 420.000₽?
🔥10😁1
Какой селектор выберет все элементы <p>, непосредственно следующие за элементами <div>?
Anonymous Quiz
19%
div ~ p
33%
div + p
30%
div p
19%
p > div
Strict режим в JS

Строгий режим в JavaScript введен с целью обеспечения более строгого подхода к написанию кода и обнаружению часто встречающихся ошибок.

Преимущества:

Предотвращение ошибок: В строгом режиме некоторые ошибки, которые в обычном режиме были бы проигнорированы, становятся явными и вызывают исключение.

Более быстрый код: Код в строгом режиме может быть оптимизирован для более быстрого выполнения. Не гарантируется, что код станет быстрее, но это возможно.

Запрет на "плохие" практики: Некоторые действия, которые JavaScript позволял делать раньше и которые могут привести к ошибкам, в строгом режиме запрещены.

Подготовка к будущим версиям ECMAScript: Строгий режим устраняет некоторые несовместимости, делая ваш код более устойчивым к будущим изменениям в языке.

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

#JavaScript #strict #обучающийПост
👍5
Эрик Барон, создатель "Stardew Valley"

Недавно прочитал историю про Эрика. Парень обучаясь на программиста решил для практики создать игру. У него не было опыта, он просто изучал разработку и работал над Пет-проектом. Он самостоятельно занимался всеми аспектами создания игры: от программирования и дизайна до музыки и искусства.

Вдохновившись классической серией игр "Harvest Moon", Эрик решил создать свою игру. Без команды, без большого бюджета, без опыта в игровой индустрии, Эрик приступил к работе. Четыре года усердной работы и его игра стала очень популярной

"Stardew Valley" была написана на языке программирования C# с использованием игрового движка MonoGame.

Как вам такой Пет-проект? 👍
9👍3🤯2
Рекорд канала💪
Кажется нашел свой формат, На следующей неделе приступлю к написанию сценария HTML видеокурса
🎉12🔥3👏2😨2
Dependency Inversion Principle

Принцип инверсии зависимостей (Dependency Inversion Principle, DIP) в контексте React означает, что компоненты верхнего уровня не должны зависеть от компонентов нижнего уровня. Оба типа компонентов должны зависеть от абстракций. Таким образом, вместо прямой зависимости от конкретных реализаций, компоненты становятся более универсальными и могут взаимодействовать с любой реализацией, которая соответствует заданной абстракции.

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

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

#обучающийПост #react #solid
👍4
Событие visibilitychange

Событие visibilitychange применяется к объекту document и позволяет отслеживать изменение видимости вкладки браузера. Событие активируется, когда пользователь переключается между вкладками, сворачивает браузер или по какой-либо другой причине окно браузера становится неактивным.

Свойство document.hidden указывает на то, видима ли вкладка в данный момент:

true: вкладка не видима;
false: вкладка видима.

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

#обучающийПост #JavaScript #event #visibilitychange
🔥4👍1
API (Application Programming Interface) — это набор определений и протоколов для создания и взаимодействия программных приложений между собой. API предоставляет готовые блоки, которые разработчики могут использовать для выполнения определенных функций вместо написания кода с нуля.

API может быть представлено в различных формах:

Веб-API: обычно это набор HTTP-запросов для выполнения операций и структуры ответов (обычно в формате JSON или XML). Например, Twitter API позволяет разработчикам взаимодействовать с большинством аспектов Twitter, включая отправку твитов, чтение списков пользовательских подписчиков и так далее.

Библиотеки и Фреймворки: например, jQuery — это библиотека JavaScript, которая предоставляет API для работы с DOM, обработки событий и выполнения AJAX-запросов.

Операционные системы: ОС, такие как Windows, iOS или Android, предоставляют API, которые разработчики используют для создания приложений для этих платформ.

Базы данных: БД предоставляют API для создания, чтения, обновления и удаления данных.

В общем, API обеспечивает контракт или интерфейс, который гарантирует, что если разработчик отправит определенный запрос или использует определенный метод, он получит заранее определенный ответ или результат.

#api #обучающийПост #programming
👍6
Разница Cookies, sessionStorage и localStorage

Мы можем хранить информацию прямо в браузере разными способами. Рассмотрим три основных: Cookies, sessionStorage и localStorage.

🍪 Cookies:

Что это:
- Маленькие фрагменты данных, которые сайт может установить на компьютер пользователя.
Особенности:
- Имеют срок действия.
- Отправляются на сервер при каждом запросе, что может замедлить скорость загрузки страницы, если в куки много данных.
- Ограничены размером (обычно до 4КБ).

💼 SessionStorage:

Что это:
- Хранилище для временных данных в рамках одной сессии вкладки/окна.
Особенности:
- Данные хранятся только до закрытия вкладки или окна.
- Не отправляются на сервер.
- Обычно больше объем хранения по сравнению с cookies (около 5-10 МБ в зависимости от браузера).

📦 LocalStorage:

Что это:
- Хранилище для данных без срока действия.
Особенности:
- Данные сохраняются даже после закрытия вкладки или окна и перезапуска браузера.
- Не отправляются на сервер.
- Объем хранения аналогичен sessionStorage.

#обучающийПост #JavaScript #storage
👍6
Forwarded from IT Stack | Technologies
Next.js 14

В свежем релизе Next.js 14 разработчики представили ряд привлекательных обновлений, направленных на ускорение и упрощение процесса разработки веб-приложений.

Turbopack:

- Локальный сервер теперь запускается на 53% быстрее.
- С Fast Refresh код обновляется на 94% быстрее.

Server Actions (Стабильный):

- Прогрессивно улучшенные мутации делают обработку данных на сервере более гибкой.
- Интеграция с системами кэширования и перепроверки данных обеспечивает актуальность информации.

Partial Prerendering (Превью):

- Быстрый статический ответ и последующая динамическая загрузка контента улучшают производительность и пользовательский опыт.

Next.js Learn (Новое):

- Бесплатный курс обучения, включающий темы по App Router, аутентификации, работе с базами данных и многому другому, помогает разработчикам быстро освоиться с Next.js 14​.

#news #next #react #framework #update
По моим наблюдениям, каждый год к концу года количество вакансий по фронтенду/бэкенду на HeadHunter сокращается.

Это, вероятно, связано с сезонными колебаниями: многие компании подводят итоги, планируют бюджет на следующий год и могут временно заморозить найм новых сотрудников.

Так что если вы ищете работу, не унывайте! Это временное явление, и после Нового года активность на рынке, как правило, возрастает.
😱6👍2😢2
Закончил съемку серии по миграции проекта с JS на TS.

TypeScript - всё!

Дальше у нас на очереди React Context
🔥11
Автору книги «You don’t know JS” после технического собеседования и базового кодинга на JS отказали по причине того, что он недостаточно хорошо с ним справился

Коротко о душных собесах)

У моего друга профильное образование и опыт в больших компаниях 8 лет. На одном из интервью его собесили два мидла с опытом 3-4 года. Собес он не прошел) зато прошел 4 других, в более крупные компании)
👍6
Задача по JavaScript
Какое число первым появится в консоли? А какое последним?
Anonymous Quiz
21%
1, 10
57%
0, 9
6%
1, 9
16%
9, 9
Было бы прикольно реализовать такой проект в рамках практики по JavaScript. Загружаем картинку, добавляем фильтры, редактируем, и скачиваем. Далее выкладываем в инсту😄

Думаю сделать это, в формате таком же, как React Новости, только чистый JS, HTML, CSS

После выхода видеокурсов по этим технологиям разумеется

Что думаете?
🔥10👍3
Задача по JavaScript
Какое число первым появится в консоли? А какое последним?
Anonymous Quiz
51%
0, 9
11%
1, 10
25%
10, 10
13%
9, 9
😱4👨‍💻2🤪1
Новое видео на канале. Добили ТС в нашем приложении React Новости и задеплоили 👩‍💻 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥3
Разбор задач

С использованием let:

1. Цикл for запускает 10 таймаутов.
2. Каждый setTimeout "запоминает" свое значение i, потому что let создает новую переменную на каждой итерации.
3. После завершения цикла таймауты начинают выполняться, выводя значения от 0 до 9.

for (let i = 0; i < 10; i++) {
setTimeout(function() {
console.log(i);
}, 100);
}


С использованием var:

1. Цикл for также запускает 10 таймаутов.
2. Все setTimeout ссылаются на одну и ту же переменную i, так как var создает одну область видимости для всего цикла.
3. К моменту начала выполнения таймаутов, значение i стало 10 (цикл уже завершил свою работу). Поэтому все таймауты выводят 10.

for (var i = 0; i < 10; i++) {
setTimeout(function() {
console.log(i);
}, 100);
}


С let каждый таймаут "запоминает" свое уникальное значение i, в то время как с var все таймауты ссылаются на одну и ту же переменную, значение которой становится 10 к моменту выполнения таймаутов.

Необходимо помнить, что setTimeout является асинхронной функцией. При её вызове задача ставится в очередь задач, которая будет обработана event loop. Это означает, что все итерации цикла завершатся раньше, чем начнёт выполняться любой из setTimeout. Сначала выполнится весь синхронный код, и только после этого event loop начнёт выполнять задачи из очереди, включая наши setTimeout.

#JavaScript #обучающийПост #loop #var #let
👍8🔥2