Крупнейшая конференция по PHP в России

Доклады

AI/ML + PHP (1)

Машинное обучение и параллельные вычисления на GPU в PHP

PHP
Рекомендации / ML
ML

- Преимущества обучения моделей нейронных сетей на GPU перед аналогичной задачей, выполняемой на CPU.
- Как происходит вычислительный процесс на GPU.
- Существующие инструменты машинного обучения на PHP.
- Первые шаги по внедрению параллельных GPU вычислений на PHP.
- Оценка производительности.

Доклад принят в программу конференции

Производительность (2)

(En) Using and (slightly) abusing APCu cache in high load concurrent environments

APCu is a very performant form of in memory cache, almost as fast as using local variables and thus a good candidate for high load applications.
Despite that it's usage is rare because it resides in a single computing node. Most high load applications use an underlying infrastructure of auto scaling VMs or K8s, which means that
there are multiple computing nodes with no cache coherency. This presentation explores these issues, possible strategies for establishing internode communications (hint: they don't reliably work), infrastructure side solutions and
how one can use the APCu despite this shortcoming. We will present in broad terms how Altenar GP incorporated APCu in our system that receives 3.5K requests per second, the failures we had
along the way and the performance benefits we saw with our final implementation. We also clarify critical shortcomings of the APCu documentation that may have severe consequences.

Доклад принят в программу конференции

Continuous Profiling - что, зачем и как

PHP
Оптимизация производительности
Профилирование

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

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

Этот доклад поможет понять тонкости профилирования в производственной системе. Расскажу о методах и подходах, которые помогут понять, что на самом деле происходит с продакшеном. И поможет если не решить, то выявить :) проблемы производительности и планирования роста.

Доклад принят в программу конференции

Devops под PHP (1)

Twelve-factor app для PHP приложений. Как стать cloud native?

Фреймворки
PHP

Приспосабливаемся к современности: начинаем работать в облаках по принципам The Twelve-Factor App. Погрузимся в каждый принцип и научимся настраивать приложения на базе трех популярных фреймворков (Symfony, Laravel, Yii2).

Доклад принят в программу конференции

Лучшие практики (5)

Исключения в PHP: сложнее, чем кажется

PHP

Исключения в PHP сложнее, чем может показаться на первый взгляд. Начнем с обсуждения иерархии исключений и недостатка строгих стандартов, затем перейдем к тонкостям их обработки и логирования. Рассмотрим, почему исключения в PHP требуют особого внимания, как правильно выбирать и обрабатывать их, а также коснемся таких важных аспектов, как коды ошибок. Завершим обзором специфических особенностей, которые могут привести к неожиданным проблемам в работе с исключениями.

Доклад принят в программу конференции

Как умирал PHP

Рассмотрим как "хоронили" php и где теперь его "убийцы", почему так произошло. Как развивался язык и какие есть решения, ветки. Разберём современные тенденции в разработке, как использовать и чем они могут быть полезны.

Доклад принят в программу конференции

Под капотом WordPress — разбираем движок и изучаем инструменты

21 год и 43% Интернета — архитектурные решения доказавшие свою эффективность и новые API — заглянем внутрь WordPress и детально изучим как работает самая популярная в мире CMS, а также познакомимся с инструментами экосистемы.

Мы рассмотрим:
— Порядок загрузки системы
— Работу с базой данных
— Кеширование
— Безопасность
— Многочисленные API
— Обработку ошибок и профилирование
— Мультиязычность и мультидоменность
— Статус проекта Гутенберг
— Вспомогательные инструменты

Доклад принят в программу конференции

9 шагов безопасной обработки пользовательских файлов на сайте

Технологии виртуализации и контейнеризации
Типовые ошибки
Инфобезопасность

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

Доклад принят в программу конференции

Что происходит на рынке труда?

Никогда такого не было, и вот опять рынок труда изменился. Что сейчас происходит? Какую з/п просить? Они правда опять поднялись или только кажется?

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

Доклад принят в программу конференции

Новые крутые либы (1)

PHP 8.4: живее всех живых!

PHP

На момент проведения конференции выйдет PHP 8.4 — мощнейший релиз языка со времён 8.0 и 8.1. Среди фич новый JIT, хуки и асиметричная видимость свойств, new без скобок, объектная обёртка BCMath\Number, новые функции для работы с массивами и HTTP запросами, ленивые объекты и атрибут #[Deprecated]. Одного доклада маловато, чтобы всё это подробно презентовать, но я постараюсь расставить для вас акценты. В процессе обязательно позапускаем и побенчмаркаем код и обсудим, как поскорее затащить PHP 8.4 в ваши проекты. До встречи!

Доклад принят в программу конференции

Альтернативные рантаймы (1)

Чем вам не угодил асинхронный PHP?

PHP
Асинхронное программирование, реактивное программирование
Вадим Занфир

VK Музыка

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

Доклад принят в программу конференции

Новые фреймворки (1)

Yii3

Фреймворки
PHP

Обзор новой большой версии фреймворка Yii. Что умеет, чем отличается от Yii2, почему сделан так, а не иначе.

Доклад принят в программу конференции

Опыт больших сложных проектов на PHP (4)

Общение с умными устройствами силами PHP

PHP
Бэкенд / другое
Оптимизация производительности

Введение:

• Краткое описание IoT (Internet of Things) и его важности в современном мире.
• Преимущества MQTT протокола для IoT: легковесность, простота реализации, поддержка публикации/подписки.
• Роль PHP в контексте IoT, его сильные стороны (доступность, гибкость, масштабируемость)

MQTT на практике:

• Пояснение работы MQTT протокола: издатели, подписчики, брокеры.
• Обзор популярных MQTT библиотек для PHP.
• Демонстрация основных функций библиотек:
* Подключение к брокеру.
* Публикация сообщений (Управление устройствами).
* Подписка на темы.
* Обработка входящих сообщений.

Примеры использования:

• Реализация простого сценария:
* Сбор данных умных устройств.
* Получение команд от сервера и управление устройствами.

Заключение:

• Подведение итогов: PHP - отличный инструмент для работы с MQTT и IoT.
• Преимущества использования PHP для IoT:
* Упрощение разработки.
* Снижение затрат на разработку.
* Высокая гибкость и масштабируемость.
• Перспективы развития IoT и MQTT, включая использование PHP.

Доклад принят в программу конференции

Как работать с легаси, чтобы ни вы, ни проект не сгорели

• Что такое легаси
• Как появляется легаси
• Когда рефакторинг действительно необходим
• Как оценить затраты на рефакторинг
• Методы и подходы для безопасного рефакторинга
• Признаки создания будущего легаси
• Практики для предотвращения создания легаси
• Как не превратить Rector'ом проект в тыкву
• Как не превратить CS Fixer'ом проект в тыкву

Доклад принят в программу конференции

Страх и ненависть в крипте

PHP
Блокчейн-технология
Смарт-контракты

- Структуры данных для работы с криптовалютами.
- Путь транзакции: от запроса пользователя до блокчейна.
- Работа со смарт-контрактами на PHP.

Доклад принят в программу конференции

Как мы организовали отказоустойчивую тарификацию в каршеринге BelkaCar

API
Платёжные системы, обработка платежей
Микросервисы, SOA
Отказоустойчивость
Поддержка и развитие legacy систем

Тарификация, ценообразование и биллинг - это одни из самых критичных систем для каршеринга.
Я расскажу о том, как мы связали эти сервисы вместе так, чтобы получавшаяся система успешно переживала любые проблемы.

Доклад принят в программу конференции

Резерв (2)

Повышаем гибкость проекта через фича флаги Unleash

Бэкенд / другое
Отказоустойчивость
Методы и техника разработки ПО
Поддержка и развитие legacy систем
Инструменты

Фича флаги позволяют изменять поведение системы без правки кода и повторного развертывания. На нашем проекте мы могли бы их имплементировать сами, но, как говорят ребята из Unleash, "друзья не позволяют друзьям создавать свою собственную систему фича флагов", поэтому мы взяли их Open Source решение. И не прогадали!

Из моего доклада вы узнаете, как фича флаги участвуют в бизнес-процессах и влияют на развитие продукта, как их правильно интегрировать в код и, наконец, про особенности эксплуатации самого Unleash.

Доклад принят в программу конференции

В чем смысл? Принципы семантического проектирования

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

Доклад принят в программу конференции