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

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

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

YeaHub:
https://yeahub.ru/

Связь:
@ruslan_kuyanets
Download Telegram
Завтра ещё выложу видео продолжение React Новости.
Будет короткая серия с исправлениями.
Добавим слайдер для списка категорий. Будем листать категории стрелочками👌🏻
👍8
ООП (Объектно-ориентированное программирование) – это стиль программирования, в котором основное внимание уделяется объектам и классам, а не процедурам. В ООП объекты могут взаимодействовать друг с другом, имея свойства (характеристики) и методы (действия). Это помогает организовывать код более структурированно и гибко.

Принципы:

1️⃣Инкапсуляция: Это скрытие внутренних деталей объекта и предоставление ограниченного набора публичных методов для взаимодействия с этим объектом. Это помогает избегать нежелательного взаимодействия с внутренними частями объекта.

2️⃣Наследование: Это механизм, с помощью которого один класс может наследовать атрибуты и методы от другого класса. Это способствует повторному использованию кода и установлению отношений "есть" между объектами.

3️⃣Полиморфизм: Это возможность объектов с одинаковым интерфейсом иметь различное поведение. В ООП это чаще всего реализуется через переопределение методов в подклассах.

4️⃣Абстракция: Это процесс создания простых классов, которые определяют общую характеристику набора объектов. Это помогает сосредоточиться на том, что делает объект, а не как он это делает.

На сегодняшний день функциональное программирование намного популярнее ООП, как минимум в JavaScript/React и в других фреймворках.

ООП сложнее осваивать новичку, да и опытные разработчики не всегда хорошо пишут код ООП.

🌐 Зачем нам его изучать? Даже если вы не планируете полностью погружаться в мир ООП, его основные принципы можно эффективно применять и вне контекста объектно-ориентированного программирования, сделав ваш код более организованным и масштабируемым.

#JavaScript #обучающийПост #ООП
👍42
Поделюсь с вами данным YouTube каналом.
https://youtu.be/q2TyxOzBTdg?si=WBRO6e3q8XutPpbo

Это плейлист по ООП. В свое время, эти видео помогли мне понять концепции ООП. Автор объясняет это очень понятно, никто другой так не объяснил. Как минимум я не встречал таких видео.

Поэтому если вы изучаете ООП, рекомендую за приемом пищи, в дороге, на перерыве смотреть серию.

Он объясняет на нормальных примерах, а не кошечки - собачки, машина с колесами и тд. В видео объяснение на примере авторизации по ролям, примеры более приблеженные к реальным задачам чем кошечки - собачки.

Reactify рекомендует 👍

#JavaScript #advice #ООП
🔥7
🤓 Вообще я на первой работе выступал с презентацией по ООП, вдохновился этими видео. В презентации я в пример привел создание онлайн кинотеатра, где есть фильмы с разными жанрами, оценками и тд.

1️⃣ Инкапсуляция: В нашем онлайн-кинотеатре каждый фильм может представлять собой объект с частными свойствами, такими как название, жанр, рейтинг и т. д. Методы объекта могут включать функции, такие как "просмотреть", "поставить оценку" и т. д., обеспечивая безопасный доступ к данным.

2️⃣ Наследование: Мы можем создать базовый класс "Фильм", который будет содержать общие свойства и методы для всех фильмов. От этого класса можно наследовать дочерние классы, например, "Фильм ужасов", "Комедийный фильм" и т. д., каждый из которых будет иметь свои уникальные свойства и методы, дополняющие или переопределяющие те, что в базовом классе.

3️⃣ Полиморфизм: Допустим, у нас есть метод в базовом классе "Фильм", который позволяет получить краткое описание фильма. В дочерних классах мы можем переопределить этот метод, чтобы предоставить более специализированные версии описаний, подходящие для каждого жанра.

4️⃣ Абстракция: Мы можем создать абстрактный класс "Пользователь", который определяет общий интерфейс для всех типов пользователей (администратор, зарегистрированный пользователь, гость и т.д.). Этот класс определит общие методы, которые должны быть реализованы в каждом конкретном подклассе.

#JavaScript #обучающийПост #ООП
🔥7🎉21
Решил делать иногда такие обзоры, чтобы начинающие разработчики видели из чего строятся большие сервисы, приложения.

Это стек технологий компании Facebook (meta)

Чего не хватает и что добавить?
🔥11
Тут не только Frontend, с большинство технологий вы скорее всего никогда не столкнётесь.

Этим занимаются разные специалисты, в больших компаниях есть четкое разделение обязанностей.

В маленьких компаниях, один человек может быть frontend, backend, devops и тд😄
Идея пришла в голову для стартапа. Сделать Опенсорс проект, приложение по типу викторины, где пользователь угадывает компанию по технологии. И суть в том чтобы отгадать за меньшее количество подсказок.

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

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

Так же в приложении по каждой технологии был бы обучающий контент - roadmap, ссылки для изучения

Потом можно было бы добавить общение пользователей. Пользователи могли бы вступить в клан своей технологии (типо аналог чатов в ТГ, групп) и учавствовать в турнирах, кто лучше знает свою технологию.

Как вам идея? Создаем Опенсорс команду?😅
👍3
Привет всем! Сегодня поговорим про два очень часто используемых метода массивов в JavaScript: forEach и map. Почему бы их не сравнить, чтобы вы точно знали, когда какой использовать? 🤔

forEach
Этот метод просто проходится по всем элементам массива и делает с ними что-то полезное. Но сам массив при этом не изменяет. Он просто как турист: прошёл, посмотрел, но ничего не тронул.

const numbers = [1, 2, 3];
numbers.forEach(num => {
console.log(num * 2);
});


map
Этот метод похож на forEach, но с одним важным отличием: он создаёт новый массив на основе старого. Как будто клонирует массив, но при этом может что-то изменить в клонах.

const numbers = [1, 2, 3];
const doubled = numbers.map(num => num * 2);


Когда что использовать?

Используйте forEach, когда: вам нужно просто что-то сделать с каждым элементом массива, но не нужен новый массив.

Используйте map, когда: вы хотите получить новый массив на основе старого, например, удвоить каждый элемент.

#JavaScript #обучающийПост #Array #methods
👍6🔥1
Применение

Различие заключается в том, что map возвращает новый преобразованный массив, а forEach позволяет просто итерироваться по массиву и добавлять свою логику.

В примере мы решили одну и ту же задачу разными методами.

В данном случае map является предпочтительным.

#JavaScript #обучающийПост #Array #methods
👍7🔥3👌1
Каждую неделю я просматриваю hh.
Смотрю вакансии, что предлагают, что хотят.

Из наблюдений:
1. Стало больше вакансий на Vue js
2. Количество вакансий в Москве увеличилось с ~1650 до 1813 (месяц назад было 1650)
3. Стало появляться больше вакансий для джунов
4
Кстати первая вакансия висит уже месяца 3, если не больше. И все это время в топе.

Смею предположить, что не могут найти специалиста. Стек там самый обычный, популярный TS, Redux, React. Проект тоже типичный, что-то типо админ панели для клиентов.

Наверное не могут выбрать из множества специалистов🤔
Кстати, что для вас вообще является избытком? Если людей не берут на работу, только потому что они "учились", это считается, что специалисты не нужны?

Я просто помню давно хотел продавцом устроиться в МТС, меня не взяли, так как я не работал продавцом никогда, это считается, что продавцов много, избыток?
Именно сегодня, когда мне нужен был доступ в тинькоф, госуслуги, налог.ру, не работал мтс🤦

Стало ребята страшно, у меня не было доступа ни к чему. Мне просто не приходили смс подтверждения. Не мог войти никуда.

Вот она цифровизация.😬 Считайте, неугодному отключили доступ.
😱5
Мой бесплатный видеокурс в YouTube✌️
Forwarded from ТВОЙ ДОХОД💲
☁️[Reactify] Курс React с нуля! Стань React Frontend разработчиком (2023)

#программирование #react

Смотреть: https://youtu.be/am_UiIvha5M

🍂Осенняя акция! Более 100.000 курсов уже доступны на: https://slifki.info
2👍2
Мутирующие и не мутирующие методы массивов.

В JavaScript есть методы, которые изменяют исходный массив, и такие, что оставляют его в покое, создавая новый. Разберемся, в чем разница.

Мутирующие Методы

push - добавляет элементы в конец массива.
pop - удаляет последний элемент массива.
splice - удаляет, заменяет или добавляет элементы.

Не Мутирующие Методы

slice - возвращает новый массив, "нарезая" старый.
map - создает новый массив, преобразуя каждый элемент старого.
filter - создает новый массив с элементами, которые прошли проверку.

В чем разница?

Мутирующие методы изменяют исходный массив, а не мутирующие - не изменяют.

Хороший пример: slice и splice. Оба вырезают кусок массива, но splice изменит исходный массив, а slice оставит его нетронутым.

#обучающийПост #JavaScript #Array #methods
🔥6👍2
YouTube😎
🔥122
Forwarded from О Бизнесе
👨‍💻 Греф оценил дефицит IT-специалистов в России более чем в 1 млн человек
1
Когда массив приходит в функцию, лучше его не трогать. Вместо этого, создайте новый массив и вносите в него нужные изменения.

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

И вот это именно то, что называют иммутабельностью. Это не просто модное словечко, это хорошая практика. Функции, которые не меняют входные данные, называют чистыми. Они проще в отладке и тестировании.

Есть мутирующие методы sort(), reverse(), splice(), недавно были добавленны новые методы toSorted(), toReversed(), toSpliced(). Они как раз не мутируют массив, а создают новый.

Раньше нам приходилось с помощью ... (spread operator) создавать новый массив.
Каждый раз, когда этот код выполняется, создаётся новый массив, что потребляет дополнительную память. К тому же, метод .sort() сам по себе тоже требует ресурсов для выполнения сортировки.

const numbers = [3, 1, 4];
const sortedNumbers = [...numbers].sort();


Теперь мы можем использовать toSorted():

const numbers = [3, 1, 4];
const sortedNumbers = numbers.toSorted();


#обучающийПост #JavaScript #Array #methods
🔥4👍2
Сегодня загруженный день был, не смог выложить видео. Я думаю, что завтра в обед оно будет в YouTube. 🚀

Так же завтра приступаю к съемке серий по TS. Надеюсь легко пойдёт)
🫡6