#any #полезно
Расширения для vscode, которые мне посоветовал техлид highload проекта на микросервисах🔥
Change Case: Позволяет быстро изменять регистр текста в редакторе (например, преобразование в верхний регистр, нижний регистр, заголовочный стиль и т.д.). Это удобно для работы с текстом и именами переменных.
Code Runner: Это расширение позволяет запускать код в различных языках программирования прямо из редактора VS Code. Это удобно для быстрого тестирования и выполнения сценариев.
ESLint: Интегрирует инструмент ESLint в VS Code, который помогает обнаруживать и исправлять проблемы с кодом JavaScript (и JSX/TypeScript), обеспечивая соблюдение заданных стандартов кодирования и стилистики кода.
Git Graph: Отображает визуальное представление ветвления и истории репозитория Git, что упрощает навигацию по коммитам, веткам и тегам.
GitLens: Расширяет встроенные возможности Git в VS Code, предоставляя дополнительные сведения о коммитах, авторах изменений и другую информацию прямо в редакторе кода.
Copilot: Расширение от GitHub, которое предоставляет функции автоматического дополнения кода, используя искусственный интеллект для предложения кода и функций в реальном времени.
Indent Rainbow: Это визуальное расширение делает отступы в коде более заметными, используя разноцветные полосы. Это улучшает читаемость кода, особенно в случаях с большим количеством вложенности.
Prettier: Автоматически форматирует код согласно заданным стандартам. Это помогает поддерживать единообразие стиля кода на всем протяжении проекта.
Stylelint: Аналогично ESLint, но для стилей CSS и препроцессоров (например, SCSS, Less). Помогает обнаруживать и исправлять ошибки стиля и поддерживать консистентность кода.
Version Lens: Показывает последние доступные версии библиотек или пакетов в файле package.json вашего проекта на JavaScript/TypeScript, что упрощает процесс обновления зависимостей.
YAML: Улучшает поддержку языка разметки YAML в VS Code, предлагая функции, такие как выделение синтаксиса, форматирование кода и автодополнение.
Lebab (ES5 -> ES6): Помогает преобразовывать JavaScript-код из старых стандартов (ES5) в более новые (ES6 и выше), автоматизируя процесс рефакторинга.
VSCode Google Translate: Позволяет переводить текст непосредственно в редакторе VS Code, используя Google Translate. Это полезно при работе с многоязычными проектами или документацией.
Присоединяйтесь к нашему общему чату и Discord серверу :)
Расширения для vscode, которые мне посоветовал техлид highload проекта на микросервисах🔥
Change Case: Позволяет быстро изменять регистр текста в редакторе (например, преобразование в верхний регистр, нижний регистр, заголовочный стиль и т.д.). Это удобно для работы с текстом и именами переменных.
Code Runner: Это расширение позволяет запускать код в различных языках программирования прямо из редактора VS Code. Это удобно для быстрого тестирования и выполнения сценариев.
ESLint: Интегрирует инструмент ESLint в VS Code, который помогает обнаруживать и исправлять проблемы с кодом JavaScript (и JSX/TypeScript), обеспечивая соблюдение заданных стандартов кодирования и стилистики кода.
Git Graph: Отображает визуальное представление ветвления и истории репозитория Git, что упрощает навигацию по коммитам, веткам и тегам.
GitLens: Расширяет встроенные возможности Git в VS Code, предоставляя дополнительные сведения о коммитах, авторах изменений и другую информацию прямо в редакторе кода.
Copilot: Расширение от GitHub, которое предоставляет функции автоматического дополнения кода, используя искусственный интеллект для предложения кода и функций в реальном времени.
Indent Rainbow: Это визуальное расширение делает отступы в коде более заметными, используя разноцветные полосы. Это улучшает читаемость кода, особенно в случаях с большим количеством вложенности.
Prettier: Автоматически форматирует код согласно заданным стандартам. Это помогает поддерживать единообразие стиля кода на всем протяжении проекта.
Stylelint: Аналогично ESLint, но для стилей CSS и препроцессоров (например, SCSS, Less). Помогает обнаруживать и исправлять ошибки стиля и поддерживать консистентность кода.
Version Lens: Показывает последние доступные версии библиотек или пакетов в файле package.json вашего проекта на JavaScript/TypeScript, что упрощает процесс обновления зависимостей.
YAML: Улучшает поддержку языка разметки YAML в VS Code, предлагая функции, такие как выделение синтаксиса, форматирование кода и автодополнение.
Lebab (ES5 -> ES6): Помогает преобразовывать JavaScript-код из старых стандартов (ES5) в более новые (ES6 и выше), автоматизируя процесс рефакторинга.
VSCode Google Translate: Позволяет переводить текст непосредственно в редакторе VS Code, используя Google Translate. Это полезно при работе с многоязычными проектами или документацией.
Присоединяйтесь к нашему общему чату и Discord серверу :)
🔥7👍3
#any #полезно
2 / 2 Как вычислить компанию с "семейной атмосферой"?
Первая часть
Есть 2 варианта:
1) Проанализировать вакансию на предмет кринжа (пример с реальной вакансии, если видите один из пунктов ниже, можете смело пометить для себя - делать в этой компании нечего):
- Находить не тривиальные решения.
Проблема - наоборот, нужно находить тривиальные и популярные решения, которые будут понятны всем участникам разработки.
- Вы знаете что такое теория автоматов, дискретная оптимизация, математический анализ, теория графов.
Проблема - круто, если кандидат хотя бы слышал про такие вещи, но это не самое необходимое для работы простым прикладным разработчиком и выносить это в отдельные требования - так себе.
- Вы хотите работать на удаленке (удаляйтесь без нас).
Проблема - без комментариев. В IT после коронавируса остался и укрепился тренд на удаленку. Это лучший формат работы для тех, кто имеет хотя бы минимальный уровень дисциплины и не отвлекается дома на все подряд.
- Очень дружный коллектив.
Проблема - обычно такой пункт в описании вакансии отсутствует в компаниях с действительно хорошими процессами.
- Вилка - от 60к до 100к на руки и 1-3 года опыта.
Проблема - джуновская зарплата за 3 года опыта. Ок, чай поставьте. ☕
2) Поспрашивать о процессах в компании у HR на интервью.
Примеры вопросов:
- Можно упомянуть свои жизненные обязательства (например, нужно ездить в больницу каждый день) и спросите, беспокоит ли их это.
- Спросите про присутствие гибкого графика. Например, вы предпочитаете работать рано утром / вечером или просто выполнять таски в течение дня, потому что, вам так комфортнее.
- Есть ли у них переработки?
Переработки есть -> оплачиваются ли или предоставляются отгулы? если переработки есть и как либо не компенсируются - красный флаг 🚩
Переработок нет -> нормально.
- Есть ли тайм-трекер? (ПО, отслеживающее ваши действия во время рабочего дня, которое в обязательном порядке необходимо установить на рабочий комп. Например, делающее скрины рабочего стола или считывающее клики мышью, есть - красный флаг 🚩).
Присоединяйтесь к нашему общему чату и Discord серверу :)
2 / 2 Как вычислить компанию с "семейной атмосферой"?
Первая часть
Есть 2 варианта:
1) Проанализировать вакансию на предмет кринжа (пример с реальной вакансии, если видите один из пунктов ниже, можете смело пометить для себя - делать в этой компании нечего):
- Находить не тривиальные решения.
Проблема - наоборот, нужно находить тривиальные и популярные решения, которые будут понятны всем участникам разработки.
- Вы знаете что такое теория автоматов, дискретная оптимизация, математический анализ, теория графов.
Проблема - круто, если кандидат хотя бы слышал про такие вещи, но это не самое необходимое для работы простым прикладным разработчиком и выносить это в отдельные требования - так себе.
- Вы хотите работать на удаленке (удаляйтесь без нас).
Проблема - без комментариев. В IT после коронавируса остался и укрепился тренд на удаленку. Это лучший формат работы для тех, кто имеет хотя бы минимальный уровень дисциплины и не отвлекается дома на все подряд.
- Очень дружный коллектив.
Проблема - обычно такой пункт в описании вакансии отсутствует в компаниях с действительно хорошими процессами.
- Вилка - от 60к до 100к на руки и 1-3 года опыта.
Проблема - джуновская зарплата за 3 года опыта. Ок, чай поставьте. ☕
2) Поспрашивать о процессах в компании у HR на интервью.
Примеры вопросов:
- Можно упомянуть свои жизненные обязательства (например, нужно ездить в больницу каждый день) и спросите, беспокоит ли их это.
- Спросите про присутствие гибкого графика. Например, вы предпочитаете работать рано утром / вечером или просто выполнять таски в течение дня, потому что, вам так комфортнее.
- Есть ли у них переработки?
Переработки есть -> оплачиваются ли или предоставляются отгулы? если переработки есть и как либо не компенсируются - красный флаг 🚩
Переработок нет -> нормально.
- Есть ли тайм-трекер? (ПО, отслеживающее ваши действия во время рабочего дня, которое в обязательном порядке необходимо установить на рабочий комп. Например, делающее скрины рабочего стола или считывающее клики мышью, есть - красный флаг 🚩).
Присоединяйтесь к нашему общему чату и Discord серверу :)
Telegram
BlissCodeHub
#any #полезно
1 / 2 (вторая часть)
Почему не стоит идти в компанию с "семейной атмосферой"?
Вкратце: по тебе хотят проехаться и спихнуть львиную долю работы, обычно за не самые большие деньги. В подобных компаниях, скорее всего, дела плохи как с финансами…
1 / 2 (вторая часть)
Почему не стоит идти в компанию с "семейной атмосферой"?
Вкратце: по тебе хотят проехаться и спихнуть львиную долю работы, обычно за не самые большие деньги. В подобных компаниях, скорее всего, дела плохи как с финансами…
🔥7
#any #полезно
Вкратце о рабочих созвонах:
Название: Планирование;
Цель: Планирование спринта;
Процесс: С каждым разработчиком обсуждается задача, со его стороны проводится оценка, сколько времени потребуется на задачу, также точечные вопросы по выполнению;
Участники: Команда разработки (frontend, backend, QA и team-lead);
Сколько длится: 1 - 2 часа.
Название: Дейлик (ежедневный созвон);
Цель: Узнать статус выполнения таски у каждого участника разработки, сложные моменты в процессе выполнения, что они делали вчера и что будут сегодня;
Процесс: Каждый участник рассказывает свою часть (апдейты);
Участники: Команда разработки (frontend, backend, QA, аналитики и team-lead);
Сколько длится: 15 - 60 минут.
Название: Ретроспектива;
Цель: Подведение итогов спринта, обсуждение того, что сделали хорошо, а что можно было бы улучшить;
Процесс: Team-lead шарит экран и на доске Miro демонстрирует хорошие моменты в спринте - это нужно для закрепления результатов. Далее он создает и шарит на всех документ, в котором разработчики пишут о том, что они хотели бы улучшить и идет голосование за эти идеи. Далее, проблема с наибольшим количеством голосов выносится на обсуждение и решается в следующем спринте;
Участники: Команда разработки (frontend, backend, QA, аналитики, ПМ и team-lead);
Сколько длится: 1 - 2 часа.
Присоединяйтесь к нашему общему чату и Discord серверу :)
Вкратце о рабочих созвонах:
Название: Планирование;
Цель: Планирование спринта;
Процесс: С каждым разработчиком обсуждается задача, со его стороны проводится оценка, сколько времени потребуется на задачу, также точечные вопросы по выполнению;
Участники: Команда разработки (frontend, backend, QA и team-lead);
Сколько длится: 1 - 2 часа.
Название: Дейлик (ежедневный созвон);
Цель: Узнать статус выполнения таски у каждого участника разработки, сложные моменты в процессе выполнения, что они делали вчера и что будут сегодня;
Процесс: Каждый участник рассказывает свою часть (апдейты);
Участники: Команда разработки (frontend, backend, QA, аналитики и team-lead);
Сколько длится: 15 - 60 минут.
Название: Ретроспектива;
Цель: Подведение итогов спринта, обсуждение того, что сделали хорошо, а что можно было бы улучшить;
Процесс: Team-lead шарит экран и на доске Miro демонстрирует хорошие моменты в спринте - это нужно для закрепления результатов. Далее он создает и шарит на всех документ, в котором разработчики пишут о том, что они хотели бы улучшить и идет голосование за эти идеи. Далее, проблема с наибольшим количеством голосов выносится на обсуждение и решается в следующем спринте;
Участники: Команда разработки (frontend, backend, QA, аналитики, ПМ и team-lead);
Сколько длится: 1 - 2 часа.
Присоединяйтесь к нашему общему чату и Discord серверу :)
Telegram
BlissCodeChat
🤖 Основной канал:
- https://t.me/blisscodehub
- https://t.me/blisscodehub
🔥7
#any
Мы создали сервер в Discord 🧐
Присоединяйтесь к обсуждениям теперь и в формате голоса. Мы хотим, чтобы подписчики канала BlissCodeHub больше взаимодействовали друг с другом, делились полезной информацией, помогали на собеседованиях и просто хорошо проводили время.
Присоединяйтесь к нашему общему чату и Discord серверу :)
Мы создали сервер в Discord 🧐
Присоединяйтесь к обсуждениям теперь и в формате голоса. Мы хотим, чтобы подписчики канала BlissCodeHub больше взаимодействовали друг с другом, делились полезной информацией, помогали на собеседованиях и просто хорошо проводили время.
Присоединяйтесь к нашему общему чату и Discord серверу :)
🔥12
#joke
Во время очередного дейлика, тимлид куда-то, с довольным лицом, направлялся, параллельно опрашивая разработчиков. Проходя мимо гаражей, к нему увязалась собака и начала лаять, чел, пытаясь от неё убежать, только усугубил ситуацию. Злой собакен догнал нашего тимлида и укусил за ногу 🧐
Присоединяйтесь к нашему общему чату и Discord серверу :)
Во время очередного дейлика, тимлид куда-то, с довольным лицом, направлялся, параллельно опрашивая разработчиков. Проходя мимо гаражей, к нему увязалась собака и начала лаять, чел, пытаясь от неё убежать, только усугубил ситуацию. Злой собакен догнал нашего тимлида и укусил за ногу 🧐
Присоединяйтесь к нашему общему чату и Discord серверу :)
🤣8
#any #полезно
Об опасности выбора частной фирмы (небольшое ООО, ИП) в качестве основного места работы - чем это может закончиться:
📌 Банкротство компании
Чаще всего в новых фирмах и стартапах все тухло с процессами: постановка задач, перегруженные созвоны или их огромное количество, микроменеджмент со стороны лидов. Жизнь компании зависит от инвестиций (если речь идет о стартапе). Если инвесторы решат слиться или у них закончатся деньги, то фирма будет находиться в крайне плачевном состоянии, пока не найдет новых инвесторов.
📌 Переработки и отсутствие узкой специализации
Может получиться так, что вы будете педалить на проекте за десятерых не замечая этого, ввиду экономии бюджета на команду разработки. В результате можно выпасть из жизни и выгореть в угли.
📌 Методы профилактики
1) Оптимально проходить 1 собес в месяц, чтобы не закостенеть в этом скилле и иметь на руках актуальную инфу о рынке в рамках своего стека (может быть, даже получится залутать вкусный оффер и более комфортные для вас условия работы).
2) Если вы получили оффер (даже с неплохой зп), следует тщательно поресерчить деятельность компании.
Присоединяйтесь к нашему общему чату и Discord серверу :)
Об опасности выбора частной фирмы (небольшое ООО, ИП) в качестве основного места работы - чем это может закончиться:
📌 Банкротство компании
Чаще всего в новых фирмах и стартапах все тухло с процессами: постановка задач, перегруженные созвоны или их огромное количество, микроменеджмент со стороны лидов. Жизнь компании зависит от инвестиций (если речь идет о стартапе). Если инвесторы решат слиться или у них закончатся деньги, то фирма будет находиться в крайне плачевном состоянии, пока не найдет новых инвесторов.
📌 Переработки и отсутствие узкой специализации
Может получиться так, что вы будете педалить на проекте за десятерых не замечая этого, ввиду экономии бюджета на команду разработки. В результате можно выпасть из жизни и выгореть в угли.
📌 Методы профилактики
1) Оптимально проходить 1 собес в месяц, чтобы не закостенеть в этом скилле и иметь на руках актуальную инфу о рынке в рамках своего стека (может быть, даже получится залутать вкусный оффер и более комфортные для вас условия работы).
2) Если вы получили оффер (даже с неплохой зп), следует тщательно поресерчить деятельность компании.
Присоединяйтесь к нашему общему чату и Discord серверу :)
Telegram
BlissCodeChat
🤖 Основной канал:
- https://t.me/blisscodehub
- https://t.me/blisscodehub
🔥7⚡1👍1
Бывают случаи, когда специалист из своей сферы деятельности переходит в разработку. В нашем случае - это путь от дизайнера коммуникаций до Android разработчика.
Android-разработка на данный момент крайне востребована. В мире больше людей с android смартфонами, чем с гаджетами от Apple.
Дизайнерская основа предоставляет уникальное видение и подход к разработке приложений, делая их не только функциональными, но и интуитивно понятными и эстетически привлекательными.
Чем такой переход может быть обусловлен? 🧐
Вы не только расширите свои навыки, но и получите возможность работать над проектами, которыми будут пользоваться клиенты.
Возможности для работы в крупных технологических компаниях или запуска собственного стартапа становятся более доступными.
Переход к новой профессии обогащает жизненный опыт и открывает новые горизонты.
Присоединяйтесь к блогу и наблюдайте за процессом становления Android разработчиком. Вы точно что то подчерпнете для себя.
Присоединяйтесь к нашему общему чату и Discord серверу :)
Android-разработка на данный момент крайне востребована. В мире больше людей с android смартфонами, чем с гаджетами от Apple.
Дизайнерская основа предоставляет уникальное видение и подход к разработке приложений, делая их не только функциональными, но и интуитивно понятными и эстетически привлекательными.
Чем такой переход может быть обусловлен? 🧐
Вы не только расширите свои навыки, но и получите возможность работать над проектами, которыми будут пользоваться клиенты.
Возможности для работы в крупных технологических компаниях или запуска собственного стартапа становятся более доступными.
Переход к новой профессии обогащает жизненный опыт и открывает новые горизонты.
Присоединяйтесь к блогу и наблюдайте за процессом становления Android разработчиком. Вы точно что то подчерпнете для себя.
Присоединяйтесь к нашему общему чату и Discord серверу :)
🔥8
#backend #полезно
Кладезь полезной инфы - документация Postgres(на русском). Это мы читаем 🧐
Присоединяйтесь к нашему общему чату и Discord серверу :)
Кладезь полезной инфы - документация Postgres(на русском). Это мы читаем 🧐
Присоединяйтесь к нашему общему чату и Discord серверу :)
🔥6
#shortfact
Вакансий летом становится больше 🧐
Присоединяйтесь к нашему общему чату и Discord серверу :)
Вакансий летом становится больше 🧐
Присоединяйтесь к нашему общему чату и Discord серверу :)
✍8💯2
#backend #полезно
Разберём кратко вопрос с собеса: "В чём отличие транзакций в SQL и NOSQL БД?" 🧐
🔮 SQL: Поддерживает ACID-транзакции, что обеспечивает надежность и целостность данных в случае сбоев.
🧪 NoSQL: В NoSQL БД уровень поддержки транзакций отличается. Некоторые NoSQL базы предоставляют ACID-транзакции, но многие фокусируются на гибкости и производительности, предлагая CAP-теорию (в распределенной системе данных можно обеспечить не более чем две из трех основных характеристик: согласованность, доступность и устойчивость к разделению.
Присоединяйтесь к нашему общему чату и Discord серверу :)
Разберём кратко вопрос с собеса: "В чём отличие транзакций в SQL и NOSQL БД?" 🧐
🔮 SQL: Поддерживает ACID-транзакции, что обеспечивает надежность и целостность данных в случае сбоев.
🧪 NoSQL: В NoSQL БД уровень поддержки транзакций отличается. Некоторые NoSQL базы предоставляют ACID-транзакции, но многие фокусируются на гибкости и производительности, предлагая CAP-теорию (в распределенной системе данных можно обеспечить не более чем две из трех основных характеристик: согласованность, доступность и устойчивость к разделению.
Присоединяйтесь к нашему общему чату и Discord серверу :)
Telegram
BlissCodeChat
🤖 Основной канал:
- https://t.me/blisscodehub
- https://t.me/blisscodehub
👍4🔥2
#frontend #полезно
Когда я проходил собесы на Frontend React dev, я старался по памяти сразу после созвона записывать вопросы в заметки. После моего первого тех. собеса (вопросы с него будут ниже) я почему то успешно забил на эту идею. Ответил я где то на процентов 50-60. Естественно, мне тогда отказали из за слабо рассказанной легенды (рассказ о себе - то, что продает вас как специалиста, крайне важно отточить ее) и теории. Летом, когда выйду на рынок в поисках жирных офферов, обязательно буду фиксировать вопросы в заметках и заливать в этот блог.
Как можно заметить, почти все вопросы здесь из общеизвестных списков по типу "топ-100", так оно по факту и есть, на тех. собесах интервьюеры в основном спрашивают общие вещи (так сказать, базу), но, зачастую уходя вглубь определенной темы, которая их интересует больше всего.
Собственно, вот сам список вопросов (для погружения в суть каждого вопроса, вкратце расписал ответы с помощью ChatGPT, советую все таки глубже проработать материал и сделать шпаргалку):
Вопрос 1: Что такое CORS?
Ответ: CORS (Cross-Origin Resource Sharing) — механизм безопасности веб-браузеров, позволяющий веб-страницам выполнять запросы к другим доменам, чем тот, который предоставил саму веб-страницу.
Вопрос 2: Для чего нужен CORS?
Ответ: CORS (Cross-Origin Resource Sharing) необходим для обеспечения безопасности веб-браузеров и разрешает веб-страницам выполнять запросы к другим доменам, отличным от того, который предоставил саму веб-страницу. Этот механизм предотвращает потенциальные угрозы безопасности, связанные с запросами между различными доменами.
Вопрос 3: Что такое контекст?
Ответ: Контекст в JavaScript обозначает окружение, в котором выполняется код. В контексте React, например, он предоставляет способ передачи данных через дерево компонентов.
Вопрос 4: Как вызвать функцию с заданным this?
Ответ: Функцию можно вызвать с заданным this, используя методы call(), apply() или bind(). Эти методы позволяют явно установить значение this при вызове функции.
Вопрос 5: Что такое асинхронность и как работает в JavaScript?
Ответ: Асинхронность в JavaScript позволяет выполнению кода продолжаться без блокировки, даже если некоторые операции занимают время. Это реализуется через колбэки, промисы и асинхронные функции.
Вопрос 6: Что такое Promise и как им пользоваться?
Ответ: Promise — объект, представляющий успешное выполнение или ошибку асинхронной операции. Позволяет обрабатывать результаты асинхронных операций с использованием методов then(), catch() и finally().
Вопрос 7: Что такое ООП и его принципы?
Ответ: ООП (Объектно-Ориентированное Программирование) — парадигма программирования, основанная на использовании объектов, включая классы и экземпляры. Принципы ООП включают инкапсуляцию, наследование и полиморфизм.
Вопрос 8: Что такое SOLID? объяснить каждую букву
Ответ: SOLID — это набор принципов объектно-ориентированного программирования:
S (Принцип единственной ответственности): Класс должен иметь только одну причину для изменения.
O (Принцип открытости/закрытости): Сущности должны быть открыты для расширения, но закрыты для изменения.
L (Принцип подстановки Барбары Лисков): Объекты базового и производного классов должны быть взаимозаменяемы.
I (Принцип разделения интерфейса): Клиенты не должны зависеть от интерфейсов, которые они не используют.
D (Принцип инверсии зависимости): Зависимость на абстракции, а не на деталях.
Вопрос 9: Что такое замыкание?
Ответ: Замыкание в JavaScript — это функция, внутри которой есть доступ к переменным из внешней (родительской) функции, даже после завершения выполнения родительской функции.
Вопрос 10: Что такое EventLoop?
Ответ: EventLoop (Цикл событий) — механизм выполнения асинхронного кода в JavaScript, который обеспечивает непрерывное выполнение кода, обработку событий и запросов.
Вопрос 11: Как сделать привязку контекста?
Ответ: Привязку контекста можно сделать с использованием методов call(), apply() или bind() при вызове функции.
Когда я проходил собесы на Frontend React dev, я старался по памяти сразу после созвона записывать вопросы в заметки. После моего первого тех. собеса (вопросы с него будут ниже) я почему то успешно забил на эту идею. Ответил я где то на процентов 50-60. Естественно, мне тогда отказали из за слабо рассказанной легенды (рассказ о себе - то, что продает вас как специалиста, крайне важно отточить ее) и теории. Летом, когда выйду на рынок в поисках жирных офферов, обязательно буду фиксировать вопросы в заметках и заливать в этот блог.
Как можно заметить, почти все вопросы здесь из общеизвестных списков по типу "топ-100", так оно по факту и есть, на тех. собесах интервьюеры в основном спрашивают общие вещи (так сказать, базу), но, зачастую уходя вглубь определенной темы, которая их интересует больше всего.
Собственно, вот сам список вопросов (для погружения в суть каждого вопроса, вкратце расписал ответы с помощью ChatGPT, советую все таки глубже проработать материал и сделать шпаргалку):
Вопрос 1: Что такое CORS?
Ответ: CORS (Cross-Origin Resource Sharing) — механизм безопасности веб-браузеров, позволяющий веб-страницам выполнять запросы к другим доменам, чем тот, который предоставил саму веб-страницу.
Вопрос 2: Для чего нужен CORS?
Ответ: CORS (Cross-Origin Resource Sharing) необходим для обеспечения безопасности веб-браузеров и разрешает веб-страницам выполнять запросы к другим доменам, отличным от того, который предоставил саму веб-страницу. Этот механизм предотвращает потенциальные угрозы безопасности, связанные с запросами между различными доменами.
Вопрос 3: Что такое контекст?
Ответ: Контекст в JavaScript обозначает окружение, в котором выполняется код. В контексте React, например, он предоставляет способ передачи данных через дерево компонентов.
Вопрос 4: Как вызвать функцию с заданным this?
Ответ: Функцию можно вызвать с заданным this, используя методы call(), apply() или bind(). Эти методы позволяют явно установить значение this при вызове функции.
Вопрос 5: Что такое асинхронность и как работает в JavaScript?
Ответ: Асинхронность в JavaScript позволяет выполнению кода продолжаться без блокировки, даже если некоторые операции занимают время. Это реализуется через колбэки, промисы и асинхронные функции.
Вопрос 6: Что такое Promise и как им пользоваться?
Ответ: Promise — объект, представляющий успешное выполнение или ошибку асинхронной операции. Позволяет обрабатывать результаты асинхронных операций с использованием методов then(), catch() и finally().
Вопрос 7: Что такое ООП и его принципы?
Ответ: ООП (Объектно-Ориентированное Программирование) — парадигма программирования, основанная на использовании объектов, включая классы и экземпляры. Принципы ООП включают инкапсуляцию, наследование и полиморфизм.
Вопрос 8: Что такое SOLID? объяснить каждую букву
Ответ: SOLID — это набор принципов объектно-ориентированного программирования:
S (Принцип единственной ответственности): Класс должен иметь только одну причину для изменения.
O (Принцип открытости/закрытости): Сущности должны быть открыты для расширения, но закрыты для изменения.
L (Принцип подстановки Барбары Лисков): Объекты базового и производного классов должны быть взаимозаменяемы.
I (Принцип разделения интерфейса): Клиенты не должны зависеть от интерфейсов, которые они не используют.
D (Принцип инверсии зависимости): Зависимость на абстракции, а не на деталях.
Вопрос 9: Что такое замыкание?
Ответ: Замыкание в JavaScript — это функция, внутри которой есть доступ к переменным из внешней (родительской) функции, даже после завершения выполнения родительской функции.
Вопрос 10: Что такое EventLoop?
Ответ: EventLoop (Цикл событий) — механизм выполнения асинхронного кода в JavaScript, который обеспечивает непрерывное выполнение кода, обработку событий и запросов.
Вопрос 11: Как сделать привязку контекста?
Ответ: Привязку контекста можно сделать с использованием методов call(), apply() или bind() при вызове функции.
🔥7
Вопрос 12: Что такое и чем отличается Cookie, localStorage и sessionStorage?
Ответ: Cookie, localStorage и sessionStorage — это механизмы хранения данных на стороне клиента. Cookie используется для хранения небольших данных и отправляется с каждым запросом. localStorage и sessionStorage предоставляют более крупное хранилище, и их данные остаются в браузере, но sessionStorage удаляется после закрытия вкладки.
Вопрос 13: Наследование классов в JS
Ответ: Наследование в JavaScript реализуется через ключевое слово class. Классы могут наследовать от других классов с использованием ключевого слова extends, что позволяет создавать цепочки наследования.
Вопрос 14: Есть ли в JS инкапсуляция?
Ответ: В JavaScript инкапсуляция реализуется через замыкания и области видимости переменных. В отличие от некоторых языков, JavaScript не имеет ключевых слов для явного указания уровня доступа.
Вопрос 15: Как можно поменять контекст какой-то функции?
Ответ: Контекст функции можно изменить с использованием методов call(), apply() или bind(), либо с использованием стрелочных функций, которые не имеют собственного this.
Вопрос 16: Что такое WebSocket?
Ответ: WebSocket — это протокол связи, обеспечивающий полнодуплексное соединение между клиентом и сервером через один сокет. Это позволяет в реальном времени обмениваться данными.
Вопрос 17: Что такое JWT токен и из чего он состоит?
Ответ: JWT (JSON Web Token) — это стандартизированный формат токена, представляющий собой строку в формате JSON, которая содержит информацию о пользователе. Он состоит из заголовка, полезной нагрузки и подписи.
Вопрос 18: Где хранится JWT токен?
Ответ: JWT токен обычно хранится в заголовке запроса (Authorization), cookie или внутри тела запроса, в зависимости от конфигурации приложения.
Вопрос 19: Какие бывают JWT токены?
Ответ: Существуют три типа JWT токенов: JWT с подписью (JWS), JWT с шифрованием (JWE) и комбинированный токен, который содержит и подпись, и шифрование.
Вопрос 20: Чем отличается авторизация от аутентификации?
Ответ: Аутентификация — это процесс проверки подлинности пользователя, тогда как авторизация определяет разрешения доступа пользователя к определенным ресурсам.
Вопрос 21: Этапы жизненного цикла компонента React
Ответ: Этапы жизненного цикла компонента React можно разделить на три основных категории: Mounting (создание), Updating (обновление) и Unmounting (удаление).
Mounting: Этот этап начинается с создания компонента и включает в себя следующие методы:
constructor: Вызывается при создании экземпляра компонента.
render: Отвечает за отображение компонента в виртуальном DOM.
componentDidMount: Вызывается после того, как компонент был вставлен в DOM.
Updating: Этот этап возникает при обновлении состояния или пропсов и включает методы:
shouldComponentUpdate: Определяет, следует ли компоненту обновиться.
render: Опять же, вызывается для отображения обновленного состояния.
componentDidUpdate: Вызывается после обновления компонента.
Unmounting: На этом этапе компонент удаляется из DOM, и используется метод:
componentWillUnmount: Вызывается перед удалением компонента.
Вопрос 22: Какие есть в классах React этапы жизненного цикла и на каких этапах есть какие методы?
Ответ: В классах React существует несколько методов для обработки различных этапов жизненного цикла:
constructor: Этот метод вызывается при создании экземпляра компонента и используется для инициализации состояния и привязки методов.
render: Метод, отвечающий за отображение компонента в виртуальном DOM.
componentDidMount: Вызывается после того, как компонент был вставлен в DOM. Используется для выполнения действий, которые требуют присутствия компонента в DOM (например, загрузка данных).
shouldComponentUpdate: Определяет, следует ли компоненту обновиться. Позволяет оптимизировать производительность.
componentDidUpdate: Вызывается после обновления компонента и предоставляет возможность выполнить дополнительные действия.
componentWillUnmount: Вызывается перед удалением компонента из DOM. Используется для очистки ресурсов, остановки таймеров и т.д.
Ответ: Cookie, localStorage и sessionStorage — это механизмы хранения данных на стороне клиента. Cookie используется для хранения небольших данных и отправляется с каждым запросом. localStorage и sessionStorage предоставляют более крупное хранилище, и их данные остаются в браузере, но sessionStorage удаляется после закрытия вкладки.
Вопрос 13: Наследование классов в JS
Ответ: Наследование в JavaScript реализуется через ключевое слово class. Классы могут наследовать от других классов с использованием ключевого слова extends, что позволяет создавать цепочки наследования.
Вопрос 14: Есть ли в JS инкапсуляция?
Ответ: В JavaScript инкапсуляция реализуется через замыкания и области видимости переменных. В отличие от некоторых языков, JavaScript не имеет ключевых слов для явного указания уровня доступа.
Вопрос 15: Как можно поменять контекст какой-то функции?
Ответ: Контекст функции можно изменить с использованием методов call(), apply() или bind(), либо с использованием стрелочных функций, которые не имеют собственного this.
Вопрос 16: Что такое WebSocket?
Ответ: WebSocket — это протокол связи, обеспечивающий полнодуплексное соединение между клиентом и сервером через один сокет. Это позволяет в реальном времени обмениваться данными.
Вопрос 17: Что такое JWT токен и из чего он состоит?
Ответ: JWT (JSON Web Token) — это стандартизированный формат токена, представляющий собой строку в формате JSON, которая содержит информацию о пользователе. Он состоит из заголовка, полезной нагрузки и подписи.
Вопрос 18: Где хранится JWT токен?
Ответ: JWT токен обычно хранится в заголовке запроса (Authorization), cookie или внутри тела запроса, в зависимости от конфигурации приложения.
Вопрос 19: Какие бывают JWT токены?
Ответ: Существуют три типа JWT токенов: JWT с подписью (JWS), JWT с шифрованием (JWE) и комбинированный токен, который содержит и подпись, и шифрование.
Вопрос 20: Чем отличается авторизация от аутентификации?
Ответ: Аутентификация — это процесс проверки подлинности пользователя, тогда как авторизация определяет разрешения доступа пользователя к определенным ресурсам.
Вопрос 21: Этапы жизненного цикла компонента React
Ответ: Этапы жизненного цикла компонента React можно разделить на три основных категории: Mounting (создание), Updating (обновление) и Unmounting (удаление).
Mounting: Этот этап начинается с создания компонента и включает в себя следующие методы:
constructor: Вызывается при создании экземпляра компонента.
render: Отвечает за отображение компонента в виртуальном DOM.
componentDidMount: Вызывается после того, как компонент был вставлен в DOM.
Updating: Этот этап возникает при обновлении состояния или пропсов и включает методы:
shouldComponentUpdate: Определяет, следует ли компоненту обновиться.
render: Опять же, вызывается для отображения обновленного состояния.
componentDidUpdate: Вызывается после обновления компонента.
Unmounting: На этом этапе компонент удаляется из DOM, и используется метод:
componentWillUnmount: Вызывается перед удалением компонента.
Вопрос 22: Какие есть в классах React этапы жизненного цикла и на каких этапах есть какие методы?
Ответ: В классах React существует несколько методов для обработки различных этапов жизненного цикла:
constructor: Этот метод вызывается при создании экземпляра компонента и используется для инициализации состояния и привязки методов.
render: Метод, отвечающий за отображение компонента в виртуальном DOM.
componentDidMount: Вызывается после того, как компонент был вставлен в DOM. Используется для выполнения действий, которые требуют присутствия компонента в DOM (например, загрузка данных).
shouldComponentUpdate: Определяет, следует ли компоненту обновиться. Позволяет оптимизировать производительность.
componentDidUpdate: Вызывается после обновления компонента и предоставляет возможность выполнить дополнительные действия.
componentWillUnmount: Вызывается перед удалением компонента из DOM. Используется для очистки ресурсов, остановки таймеров и т.д.
🔥8