PHP Backend | YeaHub
376 subscribers
295 photos
10 videos
601 links
Теория, подготовка к интервью и курсы для PHP разработчиков

YeaHub — это платформа для IT-специалистов, объединяющая обучение, карьерный рост, развитие и сообщество единомышленников.

Платформа: https://yeahub.ru

Для связи: @ruslan_kuyanets
Download Telegram
#Собес #horizontal #scaling
🤔 Какие проблемы возникают при горизонтальном масштабировании БД?

💬 Кратко:

Горизонтальное масштабирование БД усложняет консистентность данных. Возникают проблемы с транзакциями и JOIN-запросами. Шардинг усложняет логику приложения. Failover и репликация требуют сложной координации. Масштабирование БД всегда дороже, чем сервисов.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #numeric #string
🤔 Что произойдёт при сложении строки и числа оператором +?

💬 Кратко:

При использовании оператора + PHP приводит строку к числу. Если строка начинается с числовой части, будет использовано это число. Если строка не содержит числа в начале, результат будет 0. После приведения производится обычное сложение. Такое поведение важно помнить, чтобы избежать неожиданных результатов.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #reference #optimization
🤔 Можно ли передавать по ссылке принудительно?

💬 Кратко:

Да, в PHP можно принудительно передавать аргументы по ссылке. Для этого используется символ амперсанда (&) перед именем параметра в объявлении функции. Это заставляет функцию работать с оригинальной переменной, а не с ее копией. Такой подход полезен когда нужно изменить исходную переменную или для оптимизации работы с большими массивами. Однако злоупотребление передачей по ссылке может сделать код менее предсказуемым.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #transaction #locking #jpa
🤔 Как сделать блокирующую транзакцию для обработки событий?

💬 Кратко:

- Использовать SELECT FOR UPDATE (блокирует строки на время транзакции).
- Применить @Transactional с isolation = SERIALIZABLE.
- Включить пессимистичную блокировку в JPA (LockModeType.PESSIMISTIC_WRITE).

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#book #памятка
📚 Памятка PHP/GoLang разработчику для подготовки к собеседованиям

Это методичка(краткий справочник) по темам, знание которых может понадобиться при собеседовании на бэкендера (с уклоном в Golang/PHP) и на работе.

Перейти к материалу

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #pdo #mysqli #error_handling
🤔 Как управлять подключениями к базе данных в PHP?

💬 Кратко:

В PHP подключение к базе данных осуществляется через MySQLi или PDO. Чтобы избежать утечек ресурсов, соединение нужно закрывать после выполнения операций. Для повышения безопасности следует использовать подготовленные запросы и обрабатывать ошибки через исключения.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
Forwarded from YeaHub
🚀 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 предназначен специально для перебора массивов и коллекций. foreach читается проще и безопаснее. В большинстве случаев для массивов лучше использовать foreach.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #decapsulation #data_processing #osi_model
🤔 Что происходит в модели OSI, когда пакет данных перемещается от нижнего к верхнему уровню?

💬 Кратко:

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

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#repository #база
📚 Knowledge-base

Репозиторий содержит базу знаний по различным IT-темам. В нём собраны материалы по теории (например, о сервисах без сохранения состояния и с сохранением), основам и командам Linux, различным инструментам (включая Docker, PHP 7, Composer и другие), фреймворкам (Symfony, Laravel), базам данных (MySQL, PostgreSQL, Redis и другим), языку программирования PHP и связанным с ним библиотекам, шаблонам проектирования и принципам SOLID, а также полезные материалы и заметки.

Перейти к материалу

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #laravel #architecture #services
🤔 Какие слои стоит добавлять в дефолтную структуру Laravel-проекта (роуты/контроллеры/модели)?

💬 Кратко:

В стандартную структуру Laravel стоит добавлять сервисный слой для бизнес-логики и репозитории для работы с данными. Контроллеры должны оставаться тонкими, делегируя сложную логику сервисам. Также полезно добавлять DTO для передачи данных между слоями и Form Request для валидации. Это разделение ответственности делает код более читаемым и тестируемым.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #abstract_class #interface #inheritance
🤔 В чем разница между абстрактным классом и интерфейсом?

💬 Кратко:

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

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
🔥1
#Собес #index
🤔 Какой тип индекса используется по умолчанию в PostgreSQL?

💬 Кратко:

В PostgreSQL по умолчанию используется индекс типа B-tree. Он создается автоматически, если тип индекса не указан явно. B-tree подходит для большинства сценариев работы с данными. Он эффективно работает как с поиском по равенству, так и с диапазонными запросами. Именно поэтому он выбран типом индекса по умолчанию.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#podcast #всё
📚 TeachMeSkills IT-школа

Это серия выпусков от "TeachMeSkills Школа программирования"
Речь пойдет об актуальные направления и технологии в IT; перспективы роста начинающих специалистов; холиварные топики из жизни разработчиков.


Перейти к материалу

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #limitation #financial #calculation
🤔 В каких случаях float использовать нельзя?

💬 Кратко:

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

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #parsing #abstraction
🤔 Как организовать поддержку разных форматов Excel-файлов от разных поставщиков, имеющих разные схемы данных?

💬 Кратко:

Лучше всего создать абстракцию над обработкой файлов: единый интерфейс парсера и отдельные классы для каждого формата. При импорте определяется поставщик (или формат) файла и выбирается соответствующая стратегия обработки. Это может быть паттерн «Стратегия» или «Фабрика». Система становится расширяемой: добавление нового поставщика — это добавление нового обработчика, без изменения остального кода.

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #transaction #commit #rollback
🤔 Зачем нужны транзакции?



💬 Кратко:

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

 

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#repository #kubernetes #clusterops #containermanagement
📚 Kubernetes

Основной репозиторий системы оркестрации контейнеров Kubernetes. Здесь можно изучить архитектуру, API, механизмы управления кластерами и принципы работы с контейнерами в распределённой среде. Полезен для понимания низкоуровневых механизмов Kubernetes, разбора паттернов развёртывания и настройки высокодоступных систем.

Перейти к материалу

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #cashier #envoy #passport
🤔 Перечислите официальные пакеты, предоставляемые Laravel.

💬 Кратко:

Некоторые официальные пакеты Laravel включают:

- Cashier — для работы с подписками и биллингом (Stripe, Braintree).
- Envoy — для автоматизации задач на удаленных серверах.
- Passport — для реализации OAuth2 аутентификации в API.
- Scout — для добавления полнотекстового поиска в Eloquent модели.
- Socialite — для аутентификации через социальные сети (Facebook, Google, Twitter).

📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа