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

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

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

Для связи: @ruslan_kuyanets
Download Telegram
#Собес #hash_index #unique #btree
🤔 Можно ли сделать хэш-индекс уникальным?

💬 Кратко:

В PostgreSQL хэш-индексы не поддерживают уникальность: нельзя объявить CREATE UNIQUE INDEX с USING HASH. Хэш-индексы служат лишь для ускорения точных поисков, а уникальность обеспечивается только B-tree-индексами.

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

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
#tool #профиль
📚 Awesome GitHub Profile: ваш профессиональный бренд в цифровом мире

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

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

👉 База вопросов 👉 Новости
Forwarded from YeaHub
🚀 В январе перед нами стояли три ключевые задачи.

1. Миграция на Next.js
Мы перевели публичную часть проекта на Next.js, а дашборд оставили на React.js. Основные работы почти завершены — сейчас занимаемся тестированием и финальными правками.
В процессе столкнулись с рядом инфраструктурных вызовов: текущих ресурсов сервера оказалось недостаточно под новые проекты, поэтому пришлось масштабироваться. Впереди также большая работа по настройке SEO.

2. Сервис для лайвкодинга
Мы разрабатываем сервис лайвкодинга — аналог LeetCode с задачами российских компаний с реальных собеседований. У проекта большие планы:

— проведение контестов,
— обучающие модули,
— курс по алгоритмам,
— ИИ-помощник с построчным разбором решений,
— челленджи и соревнования между пользователями (пока держим в секрете).

Базовая версия сервиса уже готова и проходит тестирование. Совсем скоро — релиз.

3. Сервис уведомлений
Мы начали разработку сервиса уведомлений, который объединит всю нашу экосистему: платформу, Telegram-каналы и бота.

В Telegram будут публиковаться:

— новые собеседования,
— вопросы и задачи,
— статьи и подборки,
— анонсы,
— вакансии,
— статистика с HH.

Наша цель — сделать каналы максимально полезными, чтобы вы всегда были в курсе обновлений и нового контента.

Дополнительно
В работе также находится сервис тестов с вариантами ответов и системой разделения вопросов по темам — для будущего роадмапа. Пока эти направления развиваются в «лайт»-режиме.

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

P.S. Новогодние скидки продолжают действовать до запуска сервиса лайвкодинга. После релиза цены увеличатся в 2 раза — сейчас самое выгодное время подключиться и поддержать нас.

👉 Членство YeaHub

Впереди много интересного. Спасибо, что вы с нами.✊🏻🚀💪
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #supervisor #production #fpm
🤔 Настройка воркеров: Supervisor / PHP-FPM в контексте очередей

💬 Кратко:

Воркеры — это фоновые процессы, которые постоянно запущены и обрабатывают задачи из очереди, например, отправку email или генерацию отчетов. PHP-FPM не предназначен для долгоживущих процессов, он создает и завершает PHP-процессы для быстрой обработки веб-запросов. Supervisor — это программа, которая следит за тем, чтобы воркеры всегда были запущены, автоматически перезапуская их в случае падения или завершения. Таким образом, для очередей используют отдельные PHP-скрипты (воркеры), а Supervisor обеспечивает их постоянную работу.

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

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
#Собес #static #method #property
🤔 Что такое статические свойства и статические методы?

💬 Кратко:

Статические свойства и методы принадлежат классу, а не конкретному объекту. Они вызываются без создания экземпляра класса. Статические методы не имеют доступа к $this. Такие элементы часто используют для утилитарной логики или общего состояния.

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

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
#Собес #index #b-tree #hash
🤔 Какие существуют типы индексов в PostgreSQL и когда их использовать?

💬 Кратко:

PostgreSQL поддерживает несколько типов индексов: B-Tree, Hash, GIN, GiST, BRIN, и SP-GiST. B-Tree подходит для поиска равенства и диапазона, Hash — только для равенства, GIN и GiST — для полнотекстового поиска, а BRIN оптимален для больших таблиц с последовательными данными.

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

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
#book #php7
📚 Самоучитель PHP 7, Максим Кузнецов, Игорь Симдянов

Если же средств в обрез, а изучить PHP очень хочется, воспользуйтесь этой замечательной книгой Максима Кузнецова и Игоря Симдянова. По сравнению со Скляром издание немного проигрывает по качеству (мягкая обложка) и количеству полезных примеров.

Что касается теории, то её подача поможет понять материал без использования интернет-ресурсов и вообще без компьютера под боком, что бывает полезно, если вы изучаете PHP в свободное время (например, в дороге или отпуске). Важным плюсом является и то, что книга свежая, все нововведения языка и требования к современной разработке отражены в полной мере.

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

👉 База вопросов 👉 Новости
#Собес #numeric #string
🤔 Что произойдёт при сложении строки и числа оператором +?

💬 Кратко:

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

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

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
#Собес #php #ajax #js
🤔 Как PHP взаимодействует с JavaScript?

💬 Кратко:

PHP взаимодействует с JavaScript, генерируя JavaScript-код, который затем выполняется на клиентской стороне. PHP может передавать данные в JavaScript через HTML или создавать асинхронные запросы с помощью AJAX, позволяя динамично обновлять страницы без перезагрузки.

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

📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
#Собес #locking #concurrency #transaction
🤔 Чем пессимистичные блокировки отличаются от оптимистичных? В каких сценариях каждая предпочтительна?

💬 Кратко:

Пессимистичные блокировки (например, SELECT FOR UPDATE) блокируют строки заранее. Оптимистичные проверяют конфликты при коммите через версии (например, version в JPA). Пессимистичные подходят для частых конфликтов, оптимистичные — для редких.

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

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

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

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

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #caching #invalidation
🤔 Что кэшировать, а что нет? Инвалидация кэша при изменении данных.

💬 Кратко:

Кэшировать стоит данные которые редко меняются, требуют больших вычислений и часто запрашиваются. Не стоит кэшировать персональные данные, часто изменяемую информацию и результаты с коротким временем актуальности. Инвалидация кэша происходит при изменении исходных данных через tags, direct invalidation или TTL. Важно поддерживать консистентность между кэшем и источником данных.

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

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #magic_methods #construct #set
🤔 Как можно использовать магические методы в PHP?

💬 Кратко:

Магические методы в PHP — это методы с особыми именами, которые автоматически вызываются при определенных действиях с объектами, например, при создании объекта, доступе к недоступным свойствам или вызове несуществующих методов. Примеры включают __construct(), __get(), __set(), __call(), и другие.

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

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
❤1
#Собес #tcp #network #model
🤔 Какие уровни включает модель TCP/IP и за что отвечает каждый из них?

💬 Кратко:

Модель TCP/IP включает 4 уровня: Прикладной, Транспортный, Сетевой и Канальный. Каждый уровень отвечает за свой этап передачи данных — от приложения до физической сети. Эта модель помогает описывать, как устройства обмениваются данными в интернете.

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

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

Laracasts – это проект создателей фреймворка Laravel, направленный на обучение начинающих программистов, которые только взялись за фреймворки. На канале вы найдёте длинный плейлист с обзором на Laravel, а также стримы и обзоры на новые функции и возможности выходящих версий.

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

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
Forwarded from YeaHub
👨🏻‍💻 Сервис лайвкодинга в YeaHub

Фактически — релиз уже состоялся.
Но честно: мы не успели загрузить ту огромную базу задач, которую планировали, и ещё не всё успели полноценно протестировать.

Поэтому до 23 февраля работаем в режиме «вместе доделываем продукт»:
— мы активно добавляем задачи и чиним баги, все
— пока тестируем, все задачи открыты, после этого примерно 50% закроем для членов
— вы решаете, находите проблемы, пишете в поддержку и даёте фидбек
— ну и оформляете подписку 😜

Что уже есть:
• база реальных задач с собеседований
• JavaScript / Python / Java / Go
• удобный редактор и проверка решений

Что скоро:
• связь задач с компаниями и коллекциями собеседований (не успели в этот релиз)
• другие языки
• контесты
• обучающие модули и курс по алгоритмам
• AI-разбор решений построчно
• челленджи и соревнования

👉 Задачи: https://yeahub.ru/dashboard/tasks

👉 Членство: https://yeahub.ru/dashboard/settings#select-tariff

Новогодние цены действуют только до полноценного запуска. После — x2.
Сейчас лучший момент подключиться и поддержать проект.


Спасибо, что помогаете нам запустить это правильно✊🏻🚀💪
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
#Собес #fpm #configuration
🤔 Как настраивается количество воркеров в PHP-FPM?

💬 Кратко:

Количество воркеров настраивается в конфигурационном файле пула PHP-FPM (обычно www.conf) с помощью нескольких ключевых директив. Основные из них: pm (менеджер процессов), pm.max_children (общее максимальное количество воркеров), pm.start_servers (количество воркеров при старте), pm.min_spare_servers (минимальное количество свободных воркеров) и pm.max_spare_servers (максимальное количество свободных воркеров). Эти значения подбираются в зависимости от доступной оперативной памяти и ожидаемой нагрузки.

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

📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #aggregation #group_by
🤔 Алгоритмы агрегации данных — как работает GROUP BY под капотом (на примере CSV-файла без БД)?

💬 Кратко:

GROUP BY работает используя алгоритмы хеширования или сортировки для группировки строк с одинаковыми значениями. При обработке CSV файла, система читает данные построчно, вычисляет хеш ключа группировки и аккумулирует значения для каждой группы. Алгоритм сортировки сначала сортирует данные по ключу группировки, затем агрегирует последовательные строки с одинаковыми ключами. Оба подхода эффективны но используются в разных сценариях.

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

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

💬 Кратко:

При неправильном использовании сенсоры могут занимать worker-ы на долгое время. Это приводит к нехватке слотов для реальных задач. Scheduler начинает работать медленнее, а DAG-и встают в очередь. Также растёт нагрузка на внешние системы из-за частых проверок. В итоге Airflow становится нестабильным.

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

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