Библиотека собеса по PHP | вопросы с собеседований
3.13K subscribers
218 photos
7 videos
163 links
Вопросы с собеседований по PHP и ответы на них.

По рекламе: @proglib_adv

Учиться у нас: clc.to/5JWKxA

Для обратной связи: @proglibrary_feeedback_bot
Download Telegram
Зачем нужны WeakReference и WeakMap?

WeakReference хранит ссылку на объект, не мешая сборщику мусора его уничтожить.

WeakMap — словарь, где ключами выступают объекты, удерживаемые слабо: как только объект больше нигде не используется, запись из карты исчезает автоматически.

Применение — кэши и метаданные, привязанные к объектам, без риска утечки памяти из-за вечного удержания ключей.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1
🚀 Уже завтра стартует новый поток курса «ИИ-агенты»!

Мы собрали мощнейший состав преподавателей. Учить вас проектировать архитектуру и собирать продакшн-агентов будут инженеры и исследователи из топовых IT-компаний.

Старт уже завтра!

Сомневаетесь, подойдет ли вам программа и подача? Начните с бесплатного демо-урока!

Всего за 2 часа вы заглянете под капот ИИ-агента, поймете, чем мышление модели отличается от ее ответа, и научите систему чинить собственный код. Это идеальный способ протестировать нашу платформу перед покупкой.

🔗 Пройти демо-урок и занять место на курсе
Как влить комит в текущую ветку?

Чтобы влить коммит в текущую ветку, используется команда git cherry-pick. Эта команда позволяет перенести один или несколько коммитов из другой ветки или из истории на текущую ветку. Вот как это делается:

1. Определите хэш коммита, который вы хотите влить:
git log

Найдите нужный коммит и скопируйте его хэш.

2. Выполните команду cherry-pick:
git cherry-pick 


Если вам нужно влить несколько коммитов, вы можете указать диапазон:
git cherry-pick ^..


Или перечислить несколько хэшей:
git cherry-pick   


После выполнения cherry-pick, изменения из выбранных коммитов будут добавлены в вашу текущую ветку.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1👏1
🔥 Стартуем СЕГОДНЯ! Новый поток курса «Разработка ИИ-агентов» открыт

По этому поводу мы решили выложить закрытую запись одного из уроков из программы. Найти её в поиске YouTube нельзя — она доступна только по ссылке и всем, кто будет на курсе.

Внутри глубокий разбор LLM от Алексея Яндутова (Senior ML-инженер, развивал ответы «Алисы» и «Нейро» в Яндексе). Учимся получать точный результат без галлюцинаций.

Что внутри урока:

- Устройство LLM.
- Рабочие шаблоны промптов (Persona, Chain-of-Thought и др.).
- Разбор реального кейса Яндекса. Как автоматизировать разметку, обойти качество людей на 5% и срезать косты на 60%.


После просмотра вы поймете, когда хватает промпт-инжиниринга, а когда нужен RAG или fine-tuning.

👉Смотреть закрытый урок на YouTube

Понравился урок? Переходите на новый уровень! Оставляйте заявку на курс, чтобы научиться проектировать надежные автономные системы. Обучение началось, но вы еще успеваете присоединиться.

🔗 Занять место на курсе
🔥 Курс «Разработка ИИ-агентов» стартовал, но вы еще успеваете присоединиться!

Мы только начали, а первый практический воркшоп пройдет только 23 июля. До этого времени вы спокойно успеете изучить материалы и нагнать группу.

💼 Главная фишка: финальный проект в портфолио:

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


🎁 Упомяните менеджеру специальное предложение «3 курса по цене 1»: Берете VIP-тариф — получаете курс «Разработка ИИ-агентов», хардкорный «AgentOps» и ещё один курс на выбор. Выгода 129.000 ₽!

Двери потока вот-вот закроются окончательно. Успейте забрать стек курсов и начать работу над реальным проектом

🔗 Занять место и забрать 3 курса
Чем отличается composer.json от composer.lock?

composer.json описывает зависимости с диапазонами версий (^, ~) — то, что допустимо.

composer.lock фиксирует точные установленные версии и их хэши — то, что реально стоит.

composer install ставит по lock (воспроизводимость на всех машинах и в CI), composer update пересчитывает версии в рамках json и переписывает lock.
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1🔥1
🫡 Один и тот же запрос к AI можно выполнить двумя способами — и получить совершенно разный результат.

1️⃣ способ — просто попросить написать код. Модель может сгенерировать рабочее решение, но именно на этапе проверки часто всплывают пропущенные edge case’ы, ошибки обработки или проблемы с тестами.

2️⃣ способ — дать агенту цикл Think → Act → Observe. Он не останавливается после первой попытки: планирует действия, проверяет результат и, если находит ошибку, исправляет её и пробует снова.

Самое интересное, что разница здесь не столько в модели Claude, GPT или другая LLM могут быть одинаковыми. Разницу создаёт инженерная система вокруг них.

📅 Именно это разберём 23 июля в 19:00 (МСК) на бесплатном вебинаре с Алексеем Жиряковым (Executive Director в Сбере, GenAI Data Platform, ex-CTO Stream и KION).

На живом демо покажем, как один и тот же запрос работает без агентной системы и с ней 🔥

🔗 Регистрация

🏃‍♀️ Proglib Academy
Please open Telegram to view this post
VIEW IN TELEGRAM
PHP использует подсчёт ссылок для сборки мусора. В каком случае это может не сработать?

PHP уничтожает объект, когда его refcount падает до 0. Но есть исключение — циклические ссылки: объект A ссылается на B, B — на A. Каждый держит счётчик ≥ 1, хотя оба недостижимы из кода.

Для этого существует Cycle Collector (zval garbage collector). Он запускается не сразу, а когда буфер подозрительных zval заполняется (~10 000 узлов по умолчанию). До его запуска объекты в цикле живут в памяти, даже если логически мертвы.
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍1🔥1
Что такое preloading в PHP и какие у него ограничения?

Preloading (PHP 7.4+) — механизм, при котором PHP загружает файлы в память один раз при старте PHP-FPM и держит их там на весь срок жизни процесса. Последующие запросы используют уже скомпилированный opcode без обращения к диску.

▪️ Что даёт

— Устраняет overhead на парсинг и компиляцию горячих классов
— Реальный прирост на больших фреймворках (Laravel, Symfony) — 10–30% к RPS

▪️ Ограничения

— При любом изменении файла нужен рестарт PHP-FPM, иначе изменения не подхватятся.
— Preloaded классы нельзя пересоздать или переопределить в рантайме
— Если preloaded класс зависит от другого файла, тот тоже должен быть preloaded, иначе ошибка при старте
— Не работает с circular dependencies между файлами
— Работает только с OPcache
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1🔥1
🤷‍♂️ Что важнее в хорошем курсе: программа или люди, которые её создают?

У Proglib Academy вышел пост о том, на каком опыте построен новый курс по AI для разработчиков 🦴
Please open Telegram to view this post
VIEW IN TELEGRAM
🧑‍💻 Учиться агентной разработке — у тех, кто уже внедряет её в бигтехе

Курс «ИИ для разработчиков» ведут практики из ведущих российских IT-компаний 🔥

🔵 Они прошли путь от первых экспериментов с AI до рабочих процессов, в которых агенты помогают команде писать код, готовить PR и быстрее доводить задачи до продакшена.

В ближайшее время познакомим вас с каждым преподавателем. Программа курса — по ссылке 🎹

🏃‍♀️ Proglib Academy
Please open Telegram to view this post
VIEW IN TELEGRAM
🌚1
Зачем нужен yield вместо return с массивом?

yield превращает функцию в генератор. Вместо того чтобы собрать все данные в массив и вернуть целиком, функция отдаёт значения по одному, по мере запроса.

Главный профит — память. Если обрабатываешь CSV на 500 тысяч строк, с массивом ты загрузишь всё в RAM разом. С генератором в памяти живёт одна строка. Генератор реализует интерфейс Iterator, с ним работает foreach. Минус — нельзя перемотать назад, обойти можно только один раз.

Используй когда данных много, порядок линейный, и случайный доступ не нужен.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1👏1
Что такое PSR?

PSR (PHP Standards Recommendations) — набор стандартов от PHP-FIG, которые обеспечивают совместимость кода между проектами и пакетами.

Ключевые стандарты:

• PSR-1 / PSR-12 — стиль кода (отступы, имена классов, методов)
• PSR-4 — автозагрузка: пространство имён → путь к файлу
• PSR-3 — интерфейс логгера (LoggerInterface)
• PSR-7 — HTTP-сообщения (Request / Response)
• PSR-11 — контейнер зависимостей (ContainerInterface)
• PSR-15 — HTTP middleware
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1👏1