Forwarded from авось прорвемся (Аня)
Лицемерие в айти
предыдущий пост был направлен на опытных ребят и их текущую проблему с вынужденной накруткой и помощью с резюме и самопрезой, чтобы пройти все этапы собесов, а этот пост посвящен новичкам, которым и я когда-то была!
дорогой читатель, если ты хочешь попасть в айти честным путем, то поздравляю!
с большой вероятностью у тебя есть шанс попасть в аутстафф, где ✨ опыт за тебя накрутит твой новый работодатель!✨
— ой, а что, ты не хотел врать при поиске работы?
теперь ты будешь врать на работе за деньги и проходить собеседования в продуктовые компании с накруткой опыта и стека, чтобы аутстафф побольше смог заработать на перепродаже тебя
УРА!
однажды и я попала на работу в такую компанию, ибо тогда я ещё совсем не разбиралась в работодателях, а просто искала работу в айти компании!
но компания компании — рознь, когда речь идет о том, как они на тебе зарабатывают. я не просто так писала статью про три типа работодателей, ознакомься, если пропустил:
• Какой работодатель тебя купит?
в этом же посте я хочу наглядно показать, как работает аутстафф изнутри, чтобы предостеречь честных ребят и выиграть им время на подумать еще раз))
1. накрутка опыта от работодателя:
пару лет назад я искала работу с 1 годом опыта в резюме и нашла её за неделю! тогда рынок хоть и трясло, но такой жесткой инфляции опыта ещё не было.
после пары недель работы мне прилетела заявка на то, что нужно пройти одно собеседование на проект!
я была рада, так как хотелось поскорее начать писать код в команде, а не в одиночку. и тут меня попросили немного дополнить резюме…когда я его впервые открыла, там было уже 3 года опыта.
собес я прошла успешно на своих знаниях как могла тогда, но синдром самозванца терзал мою голову еще полгода точно, так как перформить в команде как трехлетний мидл или даже сеньор я не могла и жестко перерабатывала по 12-14 часов и на выходных
❗️при найме в компанию ни я, ни мои будущие коллеги на такое не подписывалась и нас об этом не предупреждали заранее
— а знала ли продуктовая компания, что им продали джуна по цене сеньора? наверняка да, глупо думать, что компании не в курсе, что происходит на рынке. просто процесс найма в штат выходит дороже, чем временные переплаты за таких вот мидлов/сеньоров
спустя время меня отправляли на собесы с 4, 5 и о боже, самое крутое, с 6 годами опыта при реальных 2
2. запись собеседований:
не сосчитать количество сообщений у меня в личке с просьбой записать собеседование с продуктовой компанией, не предупреждая никого из присутствующих)))
все записи хранились в базе знаний, доступа к которой у простых работников не было, НО если на один и тот же собес идет несколько человек из компании подряд, то всегда можно заранее послушать запись и подготовиться по ней
у меня также есть пара ребят с менторства, кто попадал в аутстафф компании на работу и ахеревали от того, что им нужно готовиться к собесам по записям других людей и проходить их при помощи чата с коллегами онлайн, так как им накрутили опыт и ребятам нужно было успешно пройти такие собесы, иначе компания же не заработает на них!
вам это ничего не напоминает? 🚂
3. вранье на собеседовании:
я провела десятки собесов в компанию, но как же мало правды в них было))
они не рассказывали про накрутку опыта и стека в резюме, про проекты с большим тех долгом и легаси, про огромную текучку кадров из-за этого, ну короче, обо всем невзрачном принято было молчать, а кандидаты вопросы же задавать не привыкли, так что прокатывало))
и после такого несовпадения ожиданий с реальность в компании, очень многие разочаровывались и увольнялись, находя на рынке предложения получше
меня правда удивляет реакция рынка на то, что теперь некоторые кандидаты используют такие же инструменты, что и аутстафф компании, которые их же и научили этому, показав, как работает найм в айти изнутри
предыдущий пост был направлен на опытных ребят и их текущую проблему с вынужденной накруткой и помощью с резюме и самопрезой, чтобы пройти все этапы собесов, а этот пост посвящен новичкам, которым и я когда-то была!
дорогой читатель, если ты хочешь попасть в айти честным путем, то поздравляю!
с большой вероятностью у тебя есть шанс попасть в аутстафф, где ✨ опыт за тебя накрутит твой новый работодатель!✨
— ой, а что, ты не хотел врать при поиске работы?
теперь ты будешь врать на работе за деньги и проходить собеседования в продуктовые компании с накруткой опыта и стека, чтобы аутстафф побольше смог заработать на перепродаже тебя
УРА!
однажды и я попала на работу в такую компанию, ибо тогда я ещё совсем не разбиралась в работодателях, а просто искала работу в айти компании!
но компания компании — рознь, когда речь идет о том, как они на тебе зарабатывают. я не просто так писала статью про три типа работодателей, ознакомься, если пропустил:
• Какой работодатель тебя купит?
в этом же посте я хочу наглядно показать, как работает аутстафф изнутри, чтобы предостеречь честных ребят и выиграть им время на подумать еще раз))
1. накрутка опыта от работодателя:
пару лет назад я искала работу с 1 годом опыта в резюме и нашла её за неделю! тогда рынок хоть и трясло, но такой жесткой инфляции опыта ещё не было.
после пары недель работы мне прилетела заявка на то, что нужно пройти одно собеседование на проект!
я была рада, так как хотелось поскорее начать писать код в команде, а не в одиночку. и тут меня попросили немного дополнить резюме…когда я его впервые открыла, там было уже 3 года опыта.
собес я прошла успешно на своих знаниях как могла тогда, но синдром самозванца терзал мою голову еще полгода точно, так как перформить в команде как трехлетний мидл или даже сеньор я не могла и жестко перерабатывала по 12-14 часов и на выходных
❗️при найме в компанию ни я, ни мои будущие коллеги на такое не подписывалась и нас об этом не предупреждали заранее
— а знала ли продуктовая компания, что им продали джуна по цене сеньора? наверняка да, глупо думать, что компании не в курсе, что происходит на рынке. просто процесс найма в штат выходит дороже, чем временные переплаты за таких вот мидлов/сеньоров
спустя время меня отправляли на собесы с 4, 5 и о боже, самое крутое, с 6 годами опыта при реальных 2
получается, если не захочешь крутить сам — за тебя это сделают другие? хм
2. запись собеседований:
не сосчитать количество сообщений у меня в личке с просьбой записать собеседование с продуктовой компанией, не предупреждая никого из присутствующих)))
все записи хранились в базе знаний, доступа к которой у простых работников не было, НО если на один и тот же собес идет несколько человек из компании подряд, то всегда можно заранее послушать запись и подготовиться по ней
у меня также есть пара ребят с менторства, кто попадал в аутстафф компании на работу и ахеревали от того, что им нужно готовиться к собесам по записям других людей и проходить их при помощи чата с коллегами онлайн, так как им накрутили опыт и ребятам нужно было успешно пройти такие собесы, иначе компания же не заработает на них!
получается, им можно записывать, хранить и шерить записи собесов, а тебе — нет? хм
3. вранье на собеседовании:
я провела десятки собесов в компанию, но как же мало правды в них было))
они не рассказывали про накрутку опыта и стека в резюме, про проекты с большим тех долгом и легаси, про огромную текучку кадров из-за этого, ну короче, обо всем невзрачном принято было молчать, а кандидаты вопросы же задавать не привыкли, так что прокатывало))
и после такого несовпадения ожиданий с реальность в компании, очень многие разочаровывались и увольнялись, находя на рынке предложения получше
получается, компаниям можно врать, приукрашивать и утаивать некрасивые подробности работы, а тебе — нет? хм
меня правда удивляет реакция рынка на то, что теперь некоторые кандидаты используют такие же инструменты, что и аутстафф компании, которые их же и научили этому, показав, как работает найм в айти изнутри
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥4💯4❤1
👍5❤2🔥2
Руслан Куянец | Reactify pinned «Задайте вопрос на стриме 🤝 https://www.youtube.com/watch?v=KJ6RD9_znf4»
This media is not supported in your browser
VIEW IN TELEGRAM
Вчера провели стрим на 4.5 часа. Тяжко было😅 Старался отвечать на все вопросы😎
Кто-нибудь смотрел стрим?
Кто-нибудь смотрел стрим?
🔥20👍8🤝2😁1
В планах на этой неделе выпустить 2-3 видео в YouTube
📌 Все концепции в React
📌 Все хуки в React
📌 Все виды оптимизаций в React
Какое больше всего хотели бы увидеть?
Какое больше всего хотели бы увидеть?
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥6💯2❤1
Frontend Гладиаторы: Стань королем Web арены
Наш турнир – это возможность прокачать свои знания в игровой форме, подготовиться к собеседованиям и получить признание среди единомышленников.
Зачем это нужно?
✔️ Подготовка к собеседованиям: Учитесь отвечать на вопросы грамотно и уверенно.
✔️ Прокачка навыков: Получите новые знания и улучшите существующие в игровой форме.
✔️ Борьба со стеснением: Практикуйте формулирование мыслей и уверенное общение.
✔️ Мотивация: Соревнование с другими участниками создаст дополнительный стимул для развития.
✔️ Обучение у других: Смотрите, как отвечают другие участники, и учитесь на их примере.
Видео уже на канале!
Я не оставляю ссылку, так как видео лучше продвигается, если заходить на него напрямую с YouTube. Это помогает улучшить его рейтинг и увеличить шансы на органическое продвижение.
#frontend #react #web
Наш турнир – это возможность прокачать свои знания в игровой форме, подготовиться к собеседованиям и получить признание среди единомышленников.
Зачем это нужно?
Видео уже на канале!
Я не оставляю ссылку, так как видео лучше продвигается, если заходить на него напрямую с YouTube. Это помогает улучшить его рейтинг и увеличить шансы на органическое продвижение.
#frontend #react #web
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤3🔥2
Лонг пуллинг и шорт пуллинг
Лонг пуллинг и шорт пуллинг — это методы клиент-серверного взаимодействия для получения данных.
📌 Лонг пуллинг (Long Polling)
Клиент отправляет запрос на сервер и ожидает ответа, пока сервер не предоставит новые данные. После получения данных клиент сразу же отправляет новый запрос.
📌 Шорт пуллинг (Short Polling)
Клиент периодически отправляет запросы на сервер с фиксированными интервалами для проверки наличия новых данных. Сервер отвечает немедленно, и процесс повторяется.
#frontend #basic
Лонг пуллинг и шорт пуллинг — это методы клиент-серверного взаимодействия для получения данных.
Клиент отправляет запрос на сервер и ожидает ответа, пока сервер не предоставит новые данные. После получения данных клиент сразу же отправляет новый запрос.
✔️ Преимущества: Быстрое получение данных в реальном времени.❌ Недостатки: Нагрузка на сервер при большом числе подключений, возможны тайм-ауты.
Клиент периодически отправляет запросы на сервер с фиксированными интервалами для проверки наличия новых данных. Сервер отвечает немедленно, и процесс повторяется.
✔️ Преимущества: Простота реализации, отсутствие необходимости удерживать соединения.❌ Недостатки: Задержка между проверками, увеличение нагрузки на сервер из-за частых запросов.
#frontend #basic
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥4🤝1
Forwarded from Руслан Куянец | IT
Моя первая работа была в аутсорс-аутстафф компании, где я был джуном и получал 25 тысяч рублей в месяц, а работал аутстаффом за 350 тысяч рублей в иностранной компании. Представьте, сколько компания заработала на мне. При этом я справлялся с 80% задач. Если возникали сложности, мой наставник помогал мне, и я как будто сам сдавал задачу. Достаточно отлаженный механизм: один наставник и пять джунов, которые пишут задачи на других проектах, а ты за ними следишь и иногда помогаешь. Джуны получают 25 тысяч, а компания – по 200-300 тысяч за аренду. Все всё понимают и всех всё устраивает, ведь задачи закрываются. Накрутка – это частая практика в компаниях.
#interview #work
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍3❤2
Чтобы не перегружать основной канал размышлениями, я создал новый канал, где мы сможем обсуждать различные темы, болтать о рынке и IT, говорить о трудоустройстве, собеседованиях и YeaHub.
В основном канале постараюсь сфокусироваться на фронтенде. Также планирую запустить YouTube-канал, ведь есть много интересных тем для обсуждения.
https://news.1rj.ru/str/ruslan_kuyanets_it
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
Руслан Куянец | IT
Ментор:
https://reactify.ru
Frontend сообщество:
https://news.1rj.ru/str/reactify_IT
YouTube канал:
https://youtube.com/@reactify-it
Связь:
@ruslan_kuyanets
https://reactify.ru
Frontend сообщество:
https://news.1rj.ru/str/reactify_IT
YouTube канал:
https://youtube.com/@reactify-it
Связь:
@ruslan_kuyanets
👍4❤2🔥2
Вопрос на собеседовании по CSS: Что такое схлопывание отступов? | CSS | Собеседование
В этом видео рассмотрим важную концепцию CSS — схлопывание отступов. Если вы готовитесь к собеседованию на позицию разработчика, понимание этой темы может оказаться ключевым. Я постараюсь на примере объяснить, что такое схлопывание отступов и как его избежать.
https://www.youtube.com/watch?v=s4YTfgj4vOY
#frontend #css
В этом видео рассмотрим важную концепцию CSS — схлопывание отступов. Если вы готовитесь к собеседованию на позицию разработчика, понимание этой темы может оказаться ключевым. Я постараюсь на примере объяснить, что такое схлопывание отступов и как его избежать.
https://www.youtube.com/watch?v=s4YTfgj4vOY
#frontend #css
YouTube
Вопрос на собеседовании по CSS: Что такое схлопывание отступов? | CSS | Собеседование
В этом видео рассмотрим важную концепцию CSS — схлопывание отступов. Если вы готовитесь к собеседованию на позицию разработчика, понимание этой темы может оказаться ключевым. Я постараюсь на примере объяснить, что такое схлопывание отступов и как его избежать.
👍7🔥2💯1
JavaScript — это высокоуровневый, интерпретируемый, компилируемый во время выполнения, динамически типизированный, однопоточный, с возможностью асинхронного выполнения, мультипарадигмальный язык программирования, широко используемый для разработки веб-приложений.
Основные характеристики JavaScript:
1. Высокоуровневый: JavaScript обеспечивает абстракцию от аппаратных деталей, предоставляя удобный синтаксис и встроенные функции для работы с данными, манипуляций с DOM и сетевыми запросами.
2. Интерпретируемый: Исторически JavaScript выполнялся интерпретатором, который считывает, анализирует и выполняет код непосредственно во время его выполнения. Однако современные движки JavaScript, такие как V8 от Google, используют Just-In-Time (JIT) компиляцию, что позволяет ускорить выполнение кода.
3. Компилируемый во время выполнения (JIT): Современные JavaScript-движки компилируют код в машинный язык непосредственно перед его выполнением, что позволяет добиться высокой производительности при сохранении гибкости интерпретируемого языка.
4. Динамически типизированный: В JavaScript типы переменных определяются во время выполнения. Переменная может изменять свой тип в процессе работы программы, что обеспечивает гибкость, но может приводить к ошибкам времени выполнения.
5. Однопоточный: JavaScript выполняется в одном потоке, что означает выполнение одной операции в каждый момент времени. Это упрощает модель конкурентного выполнения, но требует использования асинхронных механизмов для обработки долгих операций, чтобы не блокировать основной поток.
6. Асинхронное выполнение: JavaScript поддерживает асинхронное программирование через механизмы колбэков, промисов и async/await, что позволяет эффективно обрабатывать операции ввода-вывода без блокировки основного потока.
7. Мультипарадигмальный: JavaScript поддерживает несколько парадигм программирования, включая императивное, объектно-ориентированное и функциональное программирование.
8. Событийно-ориентированный: JavaScript часто используется для создания событийно-ориентированных программ, где выполнение кода инициируется событиями, такими как клики мыши или сетевые запросы.
9. Встроенный в браузеры: JavaScript является неотъемлемой частью веб-браузеров, обеспечивая динамическое взаимодействие с веб-страницами. Все современные браузеры включают JavaScript-движки для выполнения кода.
#javanoscript #frontend
Основные характеристики JavaScript:
1. Высокоуровневый: JavaScript обеспечивает абстракцию от аппаратных деталей, предоставляя удобный синтаксис и встроенные функции для работы с данными, манипуляций с DOM и сетевыми запросами.
2. Интерпретируемый: Исторически JavaScript выполнялся интерпретатором, который считывает, анализирует и выполняет код непосредственно во время его выполнения. Однако современные движки JavaScript, такие как V8 от Google, используют Just-In-Time (JIT) компиляцию, что позволяет ускорить выполнение кода.
3. Компилируемый во время выполнения (JIT): Современные JavaScript-движки компилируют код в машинный язык непосредственно перед его выполнением, что позволяет добиться высокой производительности при сохранении гибкости интерпретируемого языка.
4. Динамически типизированный: В JavaScript типы переменных определяются во время выполнения. Переменная может изменять свой тип в процессе работы программы, что обеспечивает гибкость, но может приводить к ошибкам времени выполнения.
5. Однопоточный: JavaScript выполняется в одном потоке, что означает выполнение одной операции в каждый момент времени. Это упрощает модель конкурентного выполнения, но требует использования асинхронных механизмов для обработки долгих операций, чтобы не блокировать основной поток.
6. Асинхронное выполнение: JavaScript поддерживает асинхронное программирование через механизмы колбэков, промисов и async/await, что позволяет эффективно обрабатывать операции ввода-вывода без блокировки основного потока.
7. Мультипарадигмальный: JavaScript поддерживает несколько парадигм программирования, включая императивное, объектно-ориентированное и функциональное программирование.
8. Событийно-ориентированный: JavaScript часто используется для создания событийно-ориентированных программ, где выполнение кода инициируется событиями, такими как клики мыши или сетевые запросы.
9. Встроенный в браузеры: JavaScript является неотъемлемой частью веб-браузеров, обеспечивая динамическое взаимодействие с веб-страницами. Все современные браузеры включают JavaScript-движки для выполнения кода.
#javanoscript #frontend
👍15🔥6😁1
REBASE
Чтобы избежать трудоемкого слияния в будущем, многие разработчики периодически делают ребейзинг своей ветки.
Представим, что вы работали над фичей 3 недели. За это время другие разработчики 10 раз сделали слияние. Ваш код отличается на 10 коммитов. В таком случае слияние может стать довольно сложной задачей.
Периодически делайте ребейзинг своей ветки. Это позволит:
- Сохранить актуальную историю коммитов.
- Избежать конфликтов при слиянии.
Как сделать ребейзинг:
1. Перейдите на ветку develop.
2. Обновите ее
3. Перейдите на свою ветку
4. Сделайте ребейс
Ребейзинг может изменить историю коммитов.
Перед ребейзингом рекомендуется сделать резервную копию своей ветки.
Вывод:
Ребейзинг – это простой и эффективный способ избежать проблем при слиянии. Используйте его, чтобы ваша работа с Git была более продуктивной.
#git #rebase
Чтобы избежать трудоемкого слияния в будущем, многие разработчики периодически делают ребейзинг своей ветки.
Представим, что вы работали над фичей 3 недели. За это время другие разработчики 10 раз сделали слияние. Ваш код отличается на 10 коммитов. В таком случае слияние может стать довольно сложной задачей.
Периодически делайте ребейзинг своей ветки. Это позволит:
- Сохранить актуальную историю коммитов.
- Избежать конфликтов при слиянии.
Как сделать ребейзинг:
1. Перейдите на ветку develop.
git checkout develop
2. Обновите ее
git pull
3. Перейдите на свою ветку
git checkout my-branch
4. Сделайте ребейс
git rebase develop
Ребейзинг может изменить историю коммитов.
Перед ребейзингом рекомендуется сделать резервную копию своей ветки.
Вывод:
Ребейзинг – это простой и эффективный способ избежать проблем при слиянии. Используйте его, чтобы ваша работа с Git была более продуктивной.
#git #rebase
👍17🔥3💯1🫡1
Отзыв ученика. На обучении 2 месяца, начали искать работу, откликаться🤝
До этого общался с множеством менторов, остановился на мне👍
Что нового на обучении:
1. Каждую неделю групповое собеседование
2. Каждую неделю групповой лайвкодинг
3. Каждую неделю 1-2 митапа на технические темы
4. Каждую неделю общий созвон
5. Интеграция с YeaHub. Мы набираем обороты, уже 8 учеников практикуются в YeaHub, работают в командах, читают чужой код.
6. Куча гайдов и примеров для поиска работы, написания резюме и подготовки к собеседованиям
7. Большая база знаний: Тех Вопросы, Задачи, Софт Вопросы
✔️ Такого нет ни у кого. Я за качество.
#mentor #frontend
До этого общался с множеством менторов, остановился на мне👍
От тебя задач прилетает много, и это круто – не успеваешь всё выполнять, а уже понимаешь, что растёшь! С тобой можно по-настоящему апнуть харды и подтянуть софты, а если ещё и все мероприятия посещать, то вообще сказка. Общался с другими менторами, у них ответ один: лучше Тимура (ULBI) не научим – готовим только к собесам. Если хочешь подтянуть харды, смотри его курс😁
Что нового на обучении:
1. Каждую неделю групповое собеседование
2. Каждую неделю групповой лайвкодинг
3. Каждую неделю 1-2 митапа на технические темы
4. Каждую неделю общий созвон
5. Интеграция с YeaHub. Мы набираем обороты, уже 8 учеников практикуются в YeaHub, работают в командах, читают чужой код.
6. Куча гайдов и примеров для поиска работы, написания резюме и подготовки к собеседованиям
7. Большая база знаний: Тех Вопросы, Задачи, Софт Вопросы
#mentor #frontend
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥19👍3❤1
Как браузер читает JSX?
Браузер не может напрямую прочитать и понять JSX, так как JSX - это расширение языка JavaScript, которое используется во фреймворке React для создания пользовательского интерфейса. JSX выглядит как комбинация JavaScript и HTML.
Чтобы браузер мог понять JSX, необходимо преобразовать его в обычный JavaScript. Этот процесс называется транспиляцией. Для этого обычно используются специальные инструменты или сборщики (например, Babel), которые преобразуют JSX в эквивалентный JavaScript код.
В примере выше JSX трансформируется в вызов
После транспиляции JSX в JavaScript, браузер может вычитать и исполнять этот JavaScript код для отображения веб-страницы пользователю.
#frontend #react #jsx
Браузер не может напрямую прочитать и понять JSX, так как JSX - это расширение языка JavaScript, которое используется во фреймворке React для создания пользовательского интерфейса. JSX выглядит как комбинация JavaScript и HTML.
Чтобы браузер мог понять JSX, необходимо преобразовать его в обычный JavaScript. Этот процесс называется транспиляцией. Для этого обычно используются специальные инструменты или сборщики (например, Babel), которые преобразуют JSX в эквивалентный JavaScript код.
const element = <h1>Hello, World!</h1>;
const element = React.createElement('h1', null, 'Hello, World!');
В примере выше JSX трансформируется в вызов
React.createElement, который создает элемент с тегом h1 и содержанием "Hello, World!".После транспиляции JSX в JavaScript, браузер может вычитать и исполнять этот JavaScript код для отображения веб-страницы пользователю.
#frontend #react #jsx
👍17🔥1🤝1
Геттеры и сеттеры
Геттеры и сеттеры в JavaScript — это методы, которые позволяют вам контролировать доступ к свойствам объекта. Они используются для получения (геттеры) и установки (сеттеры) значений свойств объекта. Геттеры и сеттеры предоставляют возможность добавлять дополнительную логику при доступе к свойствам, например, для валидации данных или преобразования значений.
📌 Геттеры (Getters)
Геттер — это метод, который вызывается при обращении к свойству объекта. Он позволяет вам вычислить и вернуть значение свойства вместо того, чтобы просто его хранить.
📌 Сеттеры (Setters)
Сеттер — это метод, который вызывается при попытке установить значение свойства. Он позволяет вам контролировать, какие значения могут быть присвоены свойству, и выполнять дополнительные действия при присвоении.
📌 Применение
Геттеры и сеттеры часто используются, когда необходимо:
✔️ Добавить логику в момент чтения или записи свойства.
✔️ Контролировать доступ к приватным данным.
✔️ Создать свойства, значение которых вычисляется на основе других данных.
✔️ Обеспечить валидацию данных при установке значений.
#frontend #javanoscript
Геттеры и сеттеры в JavaScript — это методы, которые позволяют вам контролировать доступ к свойствам объекта. Они используются для получения (геттеры) и установки (сеттеры) значений свойств объекта. Геттеры и сеттеры предоставляют возможность добавлять дополнительную логику при доступе к свойствам, например, для валидации данных или преобразования значений.
Геттер — это метод, который вызывается при обращении к свойству объекта. Он позволяет вам вычислить и вернуть значение свойства вместо того, чтобы просто его хранить.
const person = {
firstName: 'John',
get fullName() {
return `${this.firstName}`;
}
};
console.log(person.fullName); // "John"
Сеттер — это метод, который вызывается при попытке установить значение свойства. Он позволяет вам контролировать, какие значения могут быть присвоены свойству, и выполнять дополнительные действия при присвоении.
const person = {
firstName: 'John',
lastName: 'Doe',
set fullName(name) {
const [first, last] = name.split(' ');
this.firstName = first;
this.lastName = last;
}
};
person.fullName = 'Jane Smith';
console.log(person.firstName); // "Jane"
console.log(person.lastName); // "Smith"
Геттеры и сеттеры часто используются, когда необходимо:
#frontend #javanoscript
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥2💯1
Скоро появится YeaHub — это будет настоящая "пушка". Мы создаем экосистему для роста и развития, и у нас большие планы. YeaHub стремительно набирает обороты, особенно с тех пор, как я начал брать учеников на практику. За месяц их навыки выросли в 10 раз. Осень — время офферов для наших учеников, и мы готовы выходить на рынок. Такой подготовки нет даже у многих опытных специалистов.
Только YouTube немного расстраивает — пока что без контента 🙃🥲. Но на следующей неделе у нас митап на тему "Как работает браузер". Запись, как всегда, будет доступна в сообществе, вместе с другими 40+ видео по собеседованиям, техническим темам и т.д.
Посмотрите на новые лендинги. Красота 😍
Сайт сообщества
https://community.reactify.ru
Сайт менторства
https://reactify.ru
Reactify & YeaHub Production🔝
Только YouTube немного расстраивает — пока что без контента 🙃🥲. Но на следующей неделе у нас митап на тему "Как работает браузер". Запись, как всегда, будет доступна в сообществе, вместе с другими 40+ видео по собеседованиям, техническим темам и т.д.
Посмотрите на новые лендинги. Красота 😍
Сайт сообщества
https://community.reactify.ru
Сайт менторства
https://reactify.ru
Reactify & YeaHub Production
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14👍1💯1
Type Guards - это выражения, проверяющие тип в runtime. Они позволяют сузить тип переменной в блоке кода.
typeof проверяет тип значения во время выполнения. Если val - строка, выполняется первый блок, где доступны строковые методы. Иначе val считается числом, и доступны числовые методы.
function processValue(val: string | number) {
if (typeof val === "string") {
console.log(val.toUpperCase()); // val имеет тип string
} else {
console.log(val.toFixed(2)); // val имеет тип number
}
}
instanceof проверяет, является ли объект экземпляром определённого класса. Если animal - экземпляр Dog, вызывается bark(). В противном случае считается, что это Cat, и вызывается meow().
class Dog {
bark() {}
}
class Cat {
meow() {}
}
function makeSound(animal: Dog | Cat) {
if (animal instanceof Dog) {
animal.bark(); // animal имеет тип Dog
} else {
animal.meow(); // animal имеет тип Cat
}
}
isFish - это пользовательская функция-проверка типа. Она проверяет наличие метода swim. Если метод есть, функция возвращает true, и TypeScript считает pet объектом типа Fish. Иначе pet считается Bird.
interface Fish { swim: () => void; }
interface Bird { fly: () => void; }
function isFish(pet: Fish | Bird): pet is Fish {
return (pet as Fish).swim !== undefined;
}
function move(pet: Fish | Bird) {
if (isFish(pet)) {
pet.swim(); // pet имеет тип Fish
} else {
pet.fly(); // pet имеет тип Bird
}
}
#frontend #react #typenoscript
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15❤2🔥2
Как правильно учить React. Вся экосистема.
В этом видео я расскажу о том, как стать React разработчиком в 2024 году. Мы разберем, какие технологии и инструменты стоит изучать, чтобы быть востребованным специалистом. Я поделюсь пошаговым планом, начиная с основ и переходя к более сложным темам.
👩💻 YouTube видео
🗺 Roadmap React
#roadmap
В этом видео я расскажу о том, как стать React разработчиком в 2024 году. Мы разберем, какие технологии и инструменты стоит изучать, чтобы быть востребованным специалистом. Я поделюсь пошаговым планом, начиная с основ и переходя к более сложным темам.
#roadmap
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
React Разработчик Roadmap 2024. План + Ресурсы для бесплатного изучения.
В этом видео я расскажу о том, как стать React разработчиком в 2024 году. Мы разберем, какие технологии и инструменты стоит изучать, чтобы быть востребованным специалистом. Я поделюсь пошаговым планом, начиная с основ и переходя к более сложным темам.
Митапы…
Митапы…
👍22🔥6❤4
Проблема изменения вложенных объектов при использовании map
При использовании метода map для создания нового массива объектов, возникает проблема, если объекты содержат вложенные объекты. Хотя map возвращает новый массив, вложенные объекты внутри элементов массива остаются ссылками на те же объекты, что и в оригинальном массиве.
⚠️ Что происходит:
- В исходном массиве persons есть объект с вложенным объектом address.
- Метод map создает новый массив newPersons, в котором каждый элемент копируется с использованием оператора расширения {...person}.
- Однако, несмотря на создание нового объекта верхнего уровня, вложенный объект address в обоих массивах (persons и newPersons) ссылается на один и тот же объект.
📌 Результат
Изменения, внесенные в newPersons, также повлияют на оригинальный массив persons, так как вложенные объекты не были скопированы глубоко.
✔️ Решение
Чтобы избежать этого, нужно использовать глубокое копирование вложенных объектов, например, с использованием JSON.parse(JSON.stringify(person)) или библиотек, которые поддерживают глубокое копирование.
В реальных проектах стараются избегать необходимости глубокого клонирования на каждом шаге. Вместо этого можем частично склонировать
#frontend #javanoscript
При использовании метода map для создания нового массива объектов, возникает проблема, если объекты содержат вложенные объекты. Хотя map возвращает новый массив, вложенные объекты внутри элементов массива остаются ссылками на те же объекты, что и в оригинальном массиве.
const persons = [{
name: 'Ivan',
address: {
ul: 1
}
}]
const newPersons = persons.map(person => {
person.address.ul = 2
return {...person}
})
console.log(persons)
console.log(newPersons)
- В исходном массиве persons есть объект с вложенным объектом address.
- Метод map создает новый массив newPersons, в котором каждый элемент копируется с использованием оператора расширения {...person}.
- Однако, несмотря на создание нового объекта верхнего уровня, вложенный объект address в обоих массивах (persons и newPersons) ссылается на один и тот же объект.
Изменения, внесенные в newPersons, также повлияют на оригинальный массив persons, так как вложенные объекты не были скопированы глубоко.
Чтобы избежать этого, нужно использовать глубокое копирование вложенных объектов, например, с использованием JSON.parse(JSON.stringify(person)) или библиотек, которые поддерживают глубокое копирование.
В реальных проектах стараются избегать необходимости глубокого клонирования на каждом шаге. Вместо этого можем частично склонировать
const newPersons = persons.map(person => {
return {
...person,
address: { ...person.address, ul: 2 }
}
})
#frontend #javanoscript
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥3💯1
Разница между Context API и Redux
Context API и Redux решают схожие задачи, но применяются в разных ситуациях. Обе технологии используются для управления состоянием в React-приложениях, но подход к их применению и масштаб использования различен.
📌 Context API хорош для передачи статичных данных или тех, что редко изменяются. Однако он не рассчитан на сложное управление состоянием, особенно если его много, и если нужно отслеживать изменения.
📌 Redux нужен там, где важно чётко отслеживать все изменения состояния, легко тестировать и логировать эти изменения, а также предсказуемо управлять ими. Он даёт больше возможностей и контроля, но требует больше кода и сложнее в настройке по сравнению с Context API.
#redux #frontend #react #context
Context API и Redux решают схожие задачи, но применяются в разных ситуациях. Обе технологии используются для управления состоянием в React-приложениях, но подход к их применению и масштаб использования различен.
Context API в React удобен, когда нужно передать данные на несколько уровней глубже по иерархии компонентов, минуя промежуточные. Например, у вас есть тема оформления (светлая/тёмная), которая должна быть доступна на любом уровне приложения. Использовать props для передачи таких данных на каждом уровне неэффективно и приводит к "props drilling". Context API позволяет создать глобальный контекст для темы, к которому любой компонент может обратиться напрямую, не завися от промежуточных компонентов.
Redux стоит использовать, когда приложение сложное и нужно централизованное управление состоянием. Представьте крупное приложение с корзиной покупок, аутентификацией, и несколькими взаимодействующими страницами. Каждая часть приложения может нуждаться в доступе к общим данным и реагировать на их изменения. В Redux есть одно глобальное хранилище, где хранится все состояние приложения. Компоненты могут получать данные из этого хранилища и отправлять туда изменения через экшены.
#redux #frontend #react #context
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥3💯2