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

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

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

YeaHub:
https://yeahub.ru/

Связь:
@ruslan_kuyanets
Download Telegram
Поиск элементов в массиве JavaScript

Массивы и объекты являются важными элементами веб-разработки. Если объект можно рассматривать как отдельную сущность, то массив объектов представляет собой множество таких сущностей. Это логично. Например, это может быть список товаров или фильмов.

Иногда нам необходимо осуществлять поиск по массиву, чтобы найти нужный 'товар' или 'фильм', или просто убедиться в наличии определенного элемента в массиве.

Метод indexOf - если нужно узнать индекс/порядок элемента. Если элемент не найден то вернет -1


const fruits = ["apple", "banana", "cherry"];
const index = fruits.indexOf("banana"); // 1


Метод find - находим первый подходящий элемент в массиве, если не найден то вернет undefined


const numbers = [1, 3, 5, 7];
const foundNumber = numbers.find(element => element > 4); // 5


Метод filter - этот метод уже возвращает массив подходящих элементов иначе пустой массив


const numbers = [1, 2, 3, 4, 5];
const filteredNumbers = numbers.filter(number => number > 3); // [4, 5]


Метод includes - проверяем есть ли элемент в массиве, вернет true или false


const pets = ["cat", "dog", "bird"];
const hasDog = pets.includes("dog"); // true


Все эти методы внутренне используют традиционный цикл for для итерации по элементам массива и проверки условия. В зависимости от выбранного метода, результатом может быть индекс элемента, сам элемент, или булево значение (true/false).

#JavaScript #array #search
👍185👌2
Мемоизация

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

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

#JavaScript #memoize
👍14🆒21👌1
Всем привет, ночью вернулся с Домбая. Первый день были закрыты все трассы из-за непогоды, второй день только самый первый спуск открыли. Снега было много, не успевали расчищать. Перед выездом пришлось 2 часа раскапывать машины.

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

Прикладываю к посту две красивые фотографии с поездки.
👍11😍4🎉2🐳21
Многим начинающим специалистам необходима практика, и участие в проекте Reactify Teams может привлечь большое количество желающих. Наша цель — сформировать не одну, а несколько команд. Хочется сделать все качественно. Я стремлюсь не просто свести вместе начинающих, а активно участвовать в проектах.

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

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

В январе мы начнем с одной пилотной команды. Этот тестовый проект поможет мне разработать план работы и структуру взаимодействия в командах, а также методы распределения задач. По завершении проекта участники этих команд будут распределены в новые группы. Они уже будут знать, что делать, и у них будет роль Middle-Reactify разработчиков. На них также будут возложены часть организационных задач. Это просто супер опыт. Джун в роли Мидла, +100 к уверенности и мотивации.

#teams
🔥19🫡3👍2
Реклама на канале

Изначально я не планировал продавать рекламу, но понимаю, что это может стать дополнительным источником дохода для развития канала. Деньги можно вложить в аренду сервера для Reactify Academy или продвижение канала. Кроме того, в будущем каждому проекту в Reactify Teams потребуется свой хостинг или сервер.

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

Мне поступало много предложений о рекламе, но я отказывался. Единственный раз я сделал исключение для канала друга. В конечном итоге, это ваш выбор — подписываться на эти каналы или нет. Я планирую тщательно фильтровать предложения и не заспамливать вас рекламой.

Возможно, нет ничего плохого в том, чтобы иногда размещать рекламу подобных каналов. Как вы считаете?
👍24💯3😱1🤝1🫡1
Стоимость GitHub

Коллега на работе скинул ссылку на сайт, где на основе аналитики вашего профиля в GitHub дается цена вашему аккаунту.

Большинство моих репозиториев закрыты. Так как это личные проекты. Поэтому вышло не густо😅 Думаю 250-300 баксов заработал бы при открытии репозиторием.😎

Присылайте ваши результаты, посмотрим у кого дороже😄

https://github-worth.vercel.app/
🤣9😁4👌3
Множественные циклы

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

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

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


const newArray = [1, 2, 3, 4].filter(num => num > 2).map(num => num + ' класс');


Но в таком случае мы дважды проходимся по массиву. Возможно, стоит создать функцию, которая выполнит все это за один цикл.

#JavaScript #array #loop
👍12😁3👌21💯1
Трудоустройство

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

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

На данный момент вакансий в Москве на должность Frontend Разработчик - 1501. В октябре было 1860.

После Нового года у вас будут повышенные шансы найти работу. Приведите в порядок резюме, пополните список навыков, закрепите знания.

#job
🫡113🔥3💯1
Отбор в Reactify Teams

Reactify Teams создан для практики, а не для начального обучения. В рамках этой программы не будут проводиться уроки. Мы сосредоточимся на практике и получении опыта работы в команде. Участникам предстоит участвовать в code review, они получат советы и помощь, но основы объясняться не будут. Обучение в полном объеме не предусмотрено, так как мне не удастся заниматься обучением более чем 10 участников в каждой команде, а команд будет несколько.

Хотелось бы избежать обид, но важно понять, что участники должны обладать примерно одинаковым уровнем навыков. Это критично для того, чтобы никто не ожидал других и не замедлял общий процесс. Не требуется быть высококлассными разработчиками, но базовые навыки создания приложений обязательны. Если вы уже учились, ищете работу и имеете несколько проектов в портфолио, то вы подходите.

Если вы можете создать простое ToDo-приложение на каком-либо фреймворке, то скорее всего вы подходите. Если вы специализируетесь на бэкенде и умеете создавать сервер с простыми CRUD-операциями, то вы также подходите.

В будущем мы планируем организовать практику и для новичков, которые только освоили основы и умеют создавать простые сайты с использованием HTML, CSS и JavaScript. Но это будет немного позже.

Мы проведем отбор в первую команду. Я еще продумываю этот процесс. Возможно, будет небольшое собеседование, тестовое задание, тесты или я просто изучу ваш GitHub.

#teams
👍19🔥21👌1💯1
Навигация

Посты про Reactify Teams:
#teams

Посты про Reactify Academy:
#academy
Руслан Куянец | Reactify pinned «Навигация Посты про Reactify Teams: #teams Посты про Reactify Academy: #academy»
🥴3👌2💯2👨‍💻1
Какой будет порядок консолей?
Anonymous Quiz
18%
1, 2, 3, 4
48%
1, 4, 3, 2
11%
1, 3, 4, 2
24%
1, 2, 4, 3
Обучение

Вообще я хочу сделать полный цикл развития в Reactify. Обучаться с 0 до Джуна в Reactify Academy, после этого практиковаться и получать опыт в Reactify Teams.

Еще хочу в следующем году привлекать авторов/опытных разработчиков в Reactify. Для того чтобы сделать как можно больше команд нужны опытные наставники, которые будут помогать мне. А так же вести лекции, проводить собесы, проверять знания, писать статьи и мини курсы на платформу.

Хочу большое IT сообщество. Следующий год будет насыщенным. Всего добьемся🤞

#teams #academy
🔥28👍2🫡1
Операторы в JavaScript

Операторы в программировании — это символы или набор символов, которые указывают компьютеру выполнить определённые математические, логические или операции сравнения над данными. Они являются фундаментальными элементами языков программирования, позволяя управлять данными и переменными в программе.

Арифметические Операторы:
Используются для выполнения обычных математических операций, таких как сложение (+), вычитание (-), умножение (*), деление (/), и нахождение остатка от деления (%).

Операторы Сравнения:
Позволяют сравнивать значения. Включают в себя равенство (== или === в некоторых языках), неравенство (!= или !==), больше (>), меньше (<), больше или равно (>=), меньше или равно (<=).

Логические Операторы:
Применяются для формирования логических выражений. Основные логические операторы – это И (&&), ИЛИ (||), и НЕ (!).

Операторы Присваивания:
Используются для присвоения значений переменным. Простое присваивание происходит через оператор =, а также существуют операторы комбинированного присваивания, такие как +=, -=, *= и т.д.

Унарные Операторы:
Это операторы, которые применяются к одному операнду. Примеры включают инкремент (++), декремент (--), и унарный минус, который меняет знак числа.

Тернарный Оператор:
Уникальный оператор, который принимает три операнда. Обычно используется как короткая форма для выражения if-else. Структура выглядит так: условие ? выражение1 : выражение2.

Операторы Разделения:
В некоторых языках программирования, таких как JavaScript, операторы разделения (...) позволяют расширять элементы итерируемых объектов (например, массивов) в местах, где ожидается несколько аргументов или элементов.

#JavaScript
👍15👌31🎉1💯1
Цели

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

Действительно, заниматься разработкой приложения в одиночку — это долго и неэффективно. Я хочу получить опыт в Reactify Teams. Через полгода я вернусь к своей идее, но уже с командой. Для меня это ценный навык — собирать и управлять командой, участвовать в процессах создания продукта. Поэтому участие в команде бесплатное. Все честно, и мне, и вам — опыт. Хотя многие разработчики берут за это деньги.

Сейчас кажется, что мне нужно сосредоточиться на развитии Reactify Academy и Reactify Teams, а также на ведении YouTube и Telegram каналов. Важно быть активным членом IT-сообщества, и это поможет мне достигнуть моих целей.

Моя цель не в заработке денег на обучении, курсах и т.д. Я хочу создавать IT-продукты, которыми будут пользоваться миллионы людей. Все, что я заработаю здесь, пойдет на реализацию этой цели.

#teams #academy
👍17🔥6💯21
Отличие || и ?? в JavaScript

В программировании операторы || и ?? играют разные роли, хотя оба они используются в контексте работы с значениями, которые могут быть неопределенными или иметь значение "по умолчанию".

Оператор || (Логическое ИЛИ)

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

false, 0, "", null, undefined, NaN

Оператор ?? (Оператор нулевого слияния):

Так же используется для установки значения по умолчанию, только под ложными подразумеваются:

null, undefined

Отличия операторов

Основное отличие между этими операторами заключается в их поведении при работе с различными "ложными" значениями. Оператор || реагирует на любое ложное значение, в то время как ?? реагирует только на null или undefined.

Это делает ?? более предсказуемым при работе с возможными "пустыми" значениями, так как он не считает такие значения, как 0, false, или пустую строку (""), равными null или undefined.

#JavaScript
👍14💯7🔥6🎉1