Руслан Куянец | Reactify – Telegram
Руслан Куянец | Reactify
5.84K 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
Эрик Барон, создатель "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
Где искать работу

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

На HH.ru большая концентрация кандидатов, и, если вы будете откликаться на вакансии и на менее популярных ресурсах, шансы, что HR заметит именно вас, возрастают. Я слышал случаи, когда кандидата "пропустили" на HH, но пригласили на тестовое после отклика на Хабре. Ведь ваше резюме может затеряться среди тысяч на HH, но выделяться на фоне сотен на Хабре.

Даже в нынешние "сложные" времена есть новички, которые только начали поиск и сразу нашли работу. А где-то опытный кандидат ищет уже несколько месяцев. Все индивидуально.

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

Вот немного ресурсов для поиска работы:

Сайты:
hh.ru
career.habr.com
geekjob.ru
budu.jobs
www.superjob.ru
rabota.ru
tproger.ru/jobs
vc.ru/job

Чаты:
JavaScript Jobs — вакансии и резюме
Вакансии для веб-разработчиков
Работа в IT

Работа в компаниях:
https://sber.rabota.ru/
https://news.1rj.ru/str/tinkoffjobs
https://softline.ru/about/vacancies
https://careers.kaspersky.ru/vacancy

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

Удачи в поиске! Кто ищет, тот всегда найдет.

#job #work
👍8🔥4🙏1
Блин, я не учел того, что в React Новости у нас все тип топ. У нас нет вложенности Props в компонентах. У нас все, как отдельные виджеты/модули. React Context нам не нужен для Новостей.

Но я могу сделать видео по React Context как мини видеокурс. Реализуем смену темы ночная/дневная. Чтобы не отказываться от этого. Потом нам в любом случае для авторизации нужен будет контекст
👌8💯2
Домен

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

Домен — это просто имя вашего сайта в интернете. Вместо того чтобы говорить друзьям набирать 123.45.67.89, вы просто говорите им "заходите на ruslan.com".

Когда вы регистрируете домен, это имя становится вашим указателем на сервер, где хранится ваш сайт. Все очень просто: вводите "ruslan.com" — и вуаля, открывается ваш сайт.

Домены обычно состоят из двух основных частей:

SLD (Second-Level Domain) - это уникальное имя, которое вы выбираете, например, "ruslan" в "ruslan.com".
TLD (Top-Level Domain) - это домен верхнего уровня, такой как ".com", ".org", ".net" и страновые коды типа ".ru", ".us", ".uk".

Иногда в домене может быть и третий уровень — субдомен, например, "blog.ruslan.com", где "blog" является субдоменом. Так мы можем разделять различные части нашего приложения, сервиса (market.yandex.ru / taxi.yandex.ru / bank.yandex.ru и тд)

#обучающийПост #domain
👍7🔥4