Пять модулей — от модели выполнения до готового приложения
Разбираемся, чем конкурентность отличается от параллельности и где среди процессов, потоков и корутин место асинхронности — и почему классическая модель PHP-FPM для этого не подходит.
Пишем неблокирующий HTTP-сервер на голых stream_*-функциях, попадаем в callback hell и учимся упаковывать его в promises на примере ReactPHP HTTP Server.
Разбираем генераторы в Python и PHP как механизм приостановки выполнения, строим корутины поверх yield — и переносим HTTP-сервер на AMPHP v2.
Знакомимся с файберами как способом приостанавливать и возобновлять выполнение без генераторов, пишем свой простейший Event Loop и переходим на Revolt.
Переписываем HTTP-сервер на файберах поверх современной модели AMPHP — и смотрим, что на самом деле происходит под капотом, пока код выглядит почти синхронным.
Смотрим на историю асинхронного PHP и на проект True Async — какие ограничения текущей модели он снимает и куда это может привести язык дальше.
Собираем инструментарий для работы с конкурентными операциями: async/await и комбинаторы, отмену и таймауты, мьютексы для синхронизации и graceful shutdown.
Разбираемся, почему обращение к БД — это I/O-bound задача, как устроен пул соединений в долгоживущем приложении и как с этим работает AMPHP Postgres.
Смотрим, почему в долгоживущем приложении singleton — уже не совсем singleton, и как с этим справляются request-scoped сервисы и DI на примере Thesis DIC.
Разбираемся, что Event Loop не может сделать асинхронным — блокирующие вызовы и CPU-bound задачи — и как выносить такую работу в отдельные процессы.
На примере небольшого сайта наподобие лендинга Пыхника собираем настоящее долгоживущее PHP-приложение.
Сравниваем, как с конкурентностью справляются другие языки и платформы — горутины и каналы в Go, Project Loom в Java, модель акторов в Erlang и систему типов Pony.
По понедельникам и четвергам, 12 лекций — 6 недель, с 17 сентября по 26 октября.
Расписание предварительное и может измениться. Переносы будем согласовывать не менее чем за сутки до занятия.
Архитектор программного обеспечения и автор проекта PHP True Async. Уже несколько лет исследует альтернативные подходы к развитию PHP и экспериментирует с его возможностями за пределами привычного рантайма. Ведёт блог в Telegram.
50 000 ₽
Цена в рублях, спишется по курсу банка.
50 000 ₽
Договор, счёт и закрывающие документы.
65 000 ₽
Набираем 30 студентов на первый поток. Свяжемся в течение 3 дней после заявки.
Оставить заявку