#Собес #unique #null #database
🤔 Как обеспечить уникальность необязательного поля (например, рабочего телефона) с учётом NULL-значений?
💬 Кратко:
Для обеспечения уникальности необязательного поля с NULL нужно использовать уникальный индекс, который в большинстве СУБД позволяет несколько NULL значений. Альтернативно можно использовать default значение вместо NULL или частичный индекс только для NOT NULL значений. Также можно создать вычисляемую колонку или использовать триггеры для кастомной валидации. Самый простой способ — полагаться на поведение уникального индекса с NULL.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
🤔 Как обеспечить уникальность необязательного поля (например, рабочего телефона) с учётом NULL-значений?
💬 Кратко:
Для обеспечения уникальности необязательного поля с NULL нужно использовать уникальный индекс, который в большинстве СУБД позволяет несколько NULL значений. Альтернативно можно использовать default значение вместо NULL или частичный индекс только для NOT NULL значений. Также можно создать вычисляемую колонку или использовать триггеры для кастомной валидации. Самый простой способ — полагаться на поведение уникального индекса с NULL.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
👍1
#Собес #reverse_routing #route #laravel
🤔 Что такое обратное маршрутизирование в Laravel?
💬 Кратко:
Обратное маршрутизирование в Laravel позволяет генерировать URL-адреса маршрутов на основе их имен. Это помогает избежать жесткой привязки к путям и делает код более гибким и читаемым.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
🤔 Что такое обратное маршрутизирование в Laravel?
💬 Кратко:
Обратное маршрутизирование в Laravel позволяет генерировать URL-адреса маршрутов на основе их имен. Это помогает избежать жесткой привязки к путям и делает код более гибким и читаемым.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #container #image #dockerfile
🤔 Какие основные принципы контейнеризации реализуются с помощью Docker?
💬 Кратко:
Docker реализует изоляцию процессов, переносимость окружения, повторяемость сборки, минимализм и декларативное описание инфраструктуры. Контейнеры создаются из образов, которые можно запускать на любой машине с Docker.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
🤔 Какие основные принципы контейнеризации реализуются с помощью Docker?
💬 Кратко:
Docker реализует изоляцию процессов, переносимость окружения, повторяемость сборки, минимализм и декларативное описание инфраструктуры. Контейнеры создаются из образов, которые можно запускать на любой машине с Docker.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#trainer #курсы #тренажеры
📚 CodeChef
Онлайн-платформа программирования, которая позволяет учащимся осваивать программирование с помощью структурированных курсов, тысяч практических задач и регулярных конкурсов
Перейти к материалу
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
📚 CodeChef
Онлайн-платформа программирования, которая позволяет учащимся осваивать программирование с помощью структурированных курсов, тысяч практических задач и регулярных конкурсов
Перейти к материалу
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
👍1
#Собес #asynchronous #synchronous #queues
🤔 Очереди: что выносить, а что нет? Когда задача обязана быть синхронной?
💬 Кратко:
В очереди стоит выносить задачи, которые выполняются долго или могут быть отложены: отправка email, обработка изображений, интеграция с внешними API. Не стоит выносить критические операции, влияющие на immediate пользовательский опыт. Задачи обязаны быть синхронными когда требуется мгновенная обратная связь или когда последующие операции зависят от результата выполнения.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
🤔 Очереди: что выносить, а что нет? Когда задача обязана быть синхронной?
💬 Кратко:
В очереди стоит выносить задачи, которые выполняются долго или могут быть отложены: отправка email, обработка изображений, интеграция с внешними API. Не стоит выносить критические операции, влияющие на immediate пользовательский опыт. Задачи обязаны быть синхронными когда требуется мгновенная обратная связь или когда последующие операции зависят от результата выполнения.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
👍2
#Собес #factory #method
🤔 Как работает паттерн «Фабричный метод» и когда его целесообразно использовать?
💬 Кратко:
Фабричный метод определяет интерфейс для создания объектов, но позволяет подклассам решать, какой конкретный объект создавать. Это избавляет клиентский код от явного вызова
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
🤔 Как работает паттерн «Фабричный метод» и когда его целесообразно использовать?
💬 Кратко:
Фабричный метод определяет интерфейс для создания объектов, но позволяет подклассам решать, какой конкретный объект создавать. Это избавляет клиентский код от явного вызова
new и даёт возможность легко подменять создаваемые типы. Фабрика полезна, когда создание объекта — это не просто new, а включает выбор конкретного класса, логику конфигурации или условия. Паттерн хорошо подходит для расширяемых систем и при работе с разными вариантами объектов одного семейства.📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #horizontal #scaling
🤔 Какие проблемы возникают при горизонтальном масштабировании БД?
💬 Кратко:
Горизонтальное масштабирование БД усложняет консистентность данных. Возникают проблемы с транзакциями и JOIN-запросами. Шардинг усложняет логику приложения. Failover и репликация требуют сложной координации. Масштабирование БД всегда дороже, чем сервисов.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
🤔 Какие проблемы возникают при горизонтальном масштабировании БД?
💬 Кратко:
Горизонтальное масштабирование БД усложняет консистентность данных. Возникают проблемы с транзакциями и JOIN-запросами. Шардинг усложняет логику приложения. Failover и репликация требуют сложной координации. Масштабирование БД всегда дороже, чем сервисов.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #numeric #string
🤔 Что произойдёт при сложении строки и числа оператором +?
💬 Кратко:
При использовании оператора
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
🤔 Что произойдёт при сложении строки и числа оператором +?
💬 Кратко:
При использовании оператора
+ PHP приводит строку к числу. Если строка начинается с числовой части, будет использовано это число. Если строка не содержит числа в начале, результат будет 0. После приведения производится обычное сложение. Такое поведение важно помнить, чтобы избежать неожиданных результатов.📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #reference #optimization
🤔 Можно ли передавать по ссылке принудительно?
💬 Кратко:
Да, в PHP можно принудительно передавать аргументы по ссылке. Для этого используется символ амперсанда (&) перед именем параметра в объявлении функции. Это заставляет функцию работать с оригинальной переменной, а не с ее копией. Такой подход полезен когда нужно изменить исходную переменную или для оптимизации работы с большими массивами. Однако злоупотребление передачей по ссылке может сделать код менее предсказуемым.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
🤔 Можно ли передавать по ссылке принудительно?
💬 Кратко:
Да, в PHP можно принудительно передавать аргументы по ссылке. Для этого используется символ амперсанда (&) перед именем параметра в объявлении функции. Это заставляет функцию работать с оригинальной переменной, а не с ее копией. Такой подход полезен когда нужно изменить исходную переменную или для оптимизации работы с большими массивами. Однако злоупотребление передачей по ссылке может сделать код менее предсказуемым.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #transaction #locking #jpa
🤔 Как сделать блокирующую транзакцию для обработки событий?
💬 Кратко:
- Использовать
- Применить
- Включить пессимистичную блокировку в JPA (
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
🤔 Как сделать блокирующую транзакцию для обработки событий?
💬 Кратко:
- Использовать
SELECT FOR UPDATE (блокирует строки на время транзакции).- Применить
@Transactional с isolation = SERIALIZABLE.- Включить пессимистичную блокировку в JPA (
LockModeType.PESSIMISTIC_WRITE).📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#book #памятка
📚 Памятка PHP/GoLang разработчику для подготовки к собеседованиям
Это методичка(краткий справочник) по темам, знание которых может понадобиться при собеседовании на бэкендера (с уклоном в Golang/PHP) и на работе.
Перейти к материалу
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
📚 Памятка PHP/GoLang разработчику для подготовки к собеседованиям
Это методичка(краткий справочник) по темам, знание которых может понадобиться при собеседовании на бэкендера (с уклоном в Golang/PHP) и на работе.
Перейти к материалу
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #pdo #mysqli #error_handling
🤔 Как управлять подключениями к базе данных в PHP?
💬 Кратко:
В PHP подключение к базе данных осуществляется через MySQLi или PDO. Чтобы избежать утечек ресурсов, соединение нужно закрывать после выполнения операций. Для повышения безопасности следует использовать подготовленные запросы и обрабатывать ошибки через исключения.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
🤔 Как управлять подключениями к базе данных в PHP?
💬 Кратко:
В PHP подключение к базе данных осуществляется через MySQLi или PDO. Чтобы избежать утечек ресурсов, соединение нужно закрывать после выполнения операций. Для повышения безопасности следует использовать подготовленные запросы и обрабатывать ошибки через исключения.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
Forwarded from YeaHub
Февраль и март выдались для нас непростыми. Мы прошли через сложную миграцию и разделили проект на два отдельных продукта.
Теперь у нас есть:
— yeahub.ru — публичная SEO-ориентированная часть на Next.js с быстрым серверным рендерингом
— app.yeahub.ru — основное приложение: личный кабинет пользователя со статистикой, прогрессом и аналитикой
🔥 Лайвкодинг — наконец-то готов
Мы серьезно прокачали сервис лайвкодинга:
— добавили привязку задач к коллекциям (собеседованиям)
— сделали связь с компаниями
— теперь можно готовиться по задачам с реальных собеседований
Уже доступны задачи из: Сбер, Яндекс, Авито, VK, Ozon, Т-Банк и других компаний.
📌 Сейчас добавлено ~100 задач.
Да, это меньше, чем планировали — но пришлось сделать шаг назад, чтобы сделать десять вперед.
Мы полностью переработали:
— шаблон задач
— систему тесткейсов
Ранее была допущена ошибка, из-за которой пришлось вручную исправить 80+ задач 😢
Но теперь база готова к масштабированию — и мы можем быстро и правильно наполнять её дальше.
📈 Что дальше по лайвкодингу
Мы будем активно развивать этот сервис.
Это не только про собеседования — это инструмент для роста и прокачки.
Планируется много новых фич.
📅 Регулярные обновления контента
Мы выстроили процесс: каждую неделю 4–8 собеседований, 6–10 задач
И каждое обновление будем анонсировать, чтобы вы всегда были в курсе.
🛠 Сейчас в разработке (2 ключевых сервиса)
Агрегатор вакансий + платформа размещения вакансий
ATS-оптимизация резюме
— Бэкенд почти готов.
— Идёт дизайн.
— Фронтенд начнем совсем скоро.
🎯 Цель — выпустить оба сервиса в бэта до лета.
🧠 Новая структура обучения
Раньше было: Навык → Вопрос
Теперь: Навык → Тема → Вопрос
Это сильно упрощает обучение.
Теперь можно: готовиться точечно к собеседованиям или системно изучать темы
💻 Мы — open source
Мы не бросаем слов на ветер. Мы делаем.
Код проекта открыт https://github.com/YeaHubTeam:
— фронтенд
— мобильные приложения
— backend на Python (решили новый сервис делать публично, для новичков)
— автотесты
Это open source платформа, где новички могут учиться и смотреть на реальные практики.
❤️ Поддержка
Вы можете поддержать нас, оформив подписку. Это напрямую влияет на:
— добавление контента
— развитие платформы
— новые фичи
Вы можете быть уверены — мы не стоим на месте. Работа реально кипит: почти каждый день мержатся новые фичи, мы постоянно развиваем продукт и улучшаем уже существующие сервисы.
У нас полностью открытый код, и это не просто слова. Вы в любой момент можете зайти и посмотреть активность, коммиты и то, как проект развивается каждый день.
По подписке: сейчас стоимость — 800 рублей за месяц и 1800 рублей за 3 месяца. Это уже ниже, чем у аналогичных сервисов. При этом важно понимать — после выхода новых сервисов (агрегатор вакансий и ATS для резюме) цена будет пересмотрена.
Если хотите зафиксировать текущую стоимость — лучше сделать это сейчас:
https://app.yeahub.ru/settings#select-tariff
Мы строим продукт.
Мы двигаемся вперёд.
И мы делаем IT снова великим.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
#Собес #loop #foreach #for
🤔 Чем отличаются циклы for и foreach? Какой цикл когда лучше использовать?
💬 Кратко:
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
🤔 Чем отличаются циклы for и foreach? Какой цикл когда лучше использовать?
💬 Кратко:
for используется, когда нужен счетчик или работа по индексам. foreach предназначен специально для перебора массивов и коллекций. foreach читается проще и безопаснее. В большинстве случаев для массивов лучше использовать foreach.📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #decapsulation #data_processing #osi_model
🤔 Что происходит в модели OSI, когда пакет данных перемещается от нижнего к верхнему уровню?
💬 Кратко:
Когда пакет данных перемещается от нижнего к верхнему уровню модели OSI, заголовки, добавленные ранее, удаляются, и остаются только исходные данные.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
🤔 Что происходит в модели OSI, когда пакет данных перемещается от нижнего к верхнему уровню?
💬 Кратко:
Когда пакет данных перемещается от нижнего к верхнему уровню модели OSI, заголовки, добавленные ранее, удаляются, и остаются только исходные данные.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#repository #база
📚 Knowledge-base
Репозиторий содержит базу знаний по различным IT-темам. В нём собраны материалы по теории (например, о сервисах без сохранения состояния и с сохранением), основам и командам Linux, различным инструментам (включая Docker, PHP 7, Composer и другие), фреймворкам (Symfony, Laravel), базам данных (MySQL, PostgreSQL, Redis и другим), языку программирования PHP и связанным с ним библиотекам, шаблонам проектирования и принципам SOLID, а также полезные материалы и заметки.
Перейти к материалу
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
📚 Knowledge-base
Репозиторий содержит базу знаний по различным IT-темам. В нём собраны материалы по теории (например, о сервисах без сохранения состояния и с сохранением), основам и командам Linux, различным инструментам (включая Docker, PHP 7, Composer и другие), фреймворкам (Symfony, Laravel), базам данных (MySQL, PostgreSQL, Redis и другим), языку программирования PHP и связанным с ним библиотекам, шаблонам проектирования и принципам SOLID, а также полезные материалы и заметки.
Перейти к материалу
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #laravel #architecture #services
🤔 Какие слои стоит добавлять в дефолтную структуру Laravel-проекта (роуты/контроллеры/модели)?
💬 Кратко:
В стандартную структуру Laravel стоит добавлять сервисный слой для бизнес-логики и репозитории для работы с данными. Контроллеры должны оставаться тонкими, делегируя сложную логику сервисам. Также полезно добавлять DTO для передачи данных между слоями и Form Request для валидации. Это разделение ответственности делает код более читаемым и тестируемым.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
🤔 Какие слои стоит добавлять в дефолтную структуру Laravel-проекта (роуты/контроллеры/модели)?
💬 Кратко:
В стандартную структуру Laravel стоит добавлять сервисный слой для бизнес-логики и репозитории для работы с данными. Контроллеры должны оставаться тонкими, делегируя сложную логику сервисам. Также полезно добавлять DTO для передачи данных между слоями и Form Request для валидации. Это разделение ответственности делает код более читаемым и тестируемым.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #abstract_class #interface #inheritance
🤔 В чем разница между абстрактным классом и интерфейсом?
💬 Кратко:
Абстрактный класс может содержать как абстрактные, так и реализованные методы, а также имеет возможность хранить состояние в виде свойств. Интерфейс, с другой стороны, только определяет методы, которые должен реализовать класс, без их реализации. Один класс может реализовать несколько интерфейсов, но наследовать только один абстрактный класс.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
🤔 В чем разница между абстрактным классом и интерфейсом?
💬 Кратко:
Абстрактный класс может содержать как абстрактные, так и реализованные методы, а также имеет возможность хранить состояние в виде свойств. Интерфейс, с другой стороны, только определяет методы, которые должен реализовать класс, без их реализации. Один класс может реализовать несколько интерфейсов, но наследовать только один абстрактный класс.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
🔥1
#Собес #index
🤔 Какой тип индекса используется по умолчанию в PostgreSQL?
💬 Кратко:
В PostgreSQL по умолчанию используется индекс типа B-tree. Он создается автоматически, если тип индекса не указан явно. B-tree подходит для большинства сценариев работы с данными. Он эффективно работает как с поиском по равенству, так и с диапазонными запросами. Именно поэтому он выбран типом индекса по умолчанию.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
🤔 Какой тип индекса используется по умолчанию в PostgreSQL?
💬 Кратко:
В PostgreSQL по умолчанию используется индекс типа B-tree. Он создается автоматически, если тип индекса не указан явно. B-tree подходит для большинства сценариев работы с данными. Он эффективно работает как с поиском по равенству, так и с диапазонными запросами. Именно поэтому он выбран типом индекса по умолчанию.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа