Открыто

PHP Russia 2019. Профессиональная конференция для PHP-разработчиков

Тема в разделе "Курсы по программированию", создана пользователем Shaman, 29 апр 2019.

Цена: 16000р.-81%
Взнос: 2980р.

Основной список: 6 участников

Резервный список: 6 участников

  1. 29 апр 2019
    #1
    Shaman
    Shaman ЧКЧлен клуба

    PHP Russia 2019. Профессиональная конференция для PHP-разработчиков

    Единственная в России конференция, полностью сфокусированная на PHP. Главными темами являются: развитие экосистемы (сам PHP, стандарты, фреймворки, библиотеки, OpenSource) и опыт крупных компаний, показывающий, как можно использовать PHP для построения действительно сложных проектов, применяя современные подходы и лучшие практики.

    [​IMG]


    PHP, стандарты, фреймворки, библиотеки, OpenSource



    Производительность PHP: планируем, профилируем, оптимизируем
    Павел Мурзаков
    Мы в Badoo активно работаем над производительностью нашего PHP-кода, поскольку у нас достаточно большая система на этом языке, и вопрос производительности — это вопрос экономии денег.
    Очевидными решениями этой проблемы является увеличение мощностей или оптимизация кода. Но выбор между этими способами не всегда очевиден. Кроме того, возможны и другие варианты решений.
    В докладе расскажу, как мы подходим к проблеме:
    * как планируем мощности;
    * как измеряем производительность и профилируем код;
    * приведу примеры оптимизаций;
    * расскажу, что ещё можно сделать для увеличения производительности.

    Typed Properties and more: What’s coming in PHP 7.4?
    Никита Попов
    PHP 7.4 is shaping up to be the most significant PHP release since PHP 7.0, featuring many long-awaited features including typed properties, return type covariance, FFI and (hopefully) short closures. Development of PHP 8.0 has also started, and the first changes are already in.
    This talk will introduce the new functionality, with a focus on language and library changes in PHP 7.4 and 8.0. For a coverage of performance-related changes like opcache preloading and JIT, please see Dmitry Stogov’s talk.


    Модерация миллионов объявлений в день через state machine
    Дмитрий Кубицкий
    Модерация объявлений - сложная, многозвенная система с высокими требованиями к устойчивости к ошибкам.
    В докладе мы приоткроем завесу тайны работы систем автоматической модерации объявлений в крупнейшем сервисе объявлений в Европе.
    За долгие годы система автоматической модерации в Авито эволюционировала от простой проверки на подаче до state machine и batch-процессинга.
    Расскажем:
    - как реализовать легко масштабируемый, высокопроизводительный и устойчивый к ошибкам конвейер;
    - как организовать работу двух систем параллельно и провести переход со старой на новую без даунтайма и с минимальными потерями;
    - о проблемах работы демонов в PHP и их решении.


    PHP, PostgreSQL, Микросервисы, SOA, Архитектурные паттерны, Отказоустойчивость, Оптимизация производительности, Архитектура данных, потоки данных, версионирование




    PHP как инструмент разработки PhpStorm
    Кирилл Смелов
    PhpStorm создан на базе IntelliJ-платформы, и PHP-код в нем транслируется во внутренние структуры данных, написанные в основном на Java или Kotlin. Однако, некоторые части IDE содержат в себе непосредственно PHP-код.
    В докладе мы рассмотрим компоненты PhpStorm, которые работают с помощью PHP-кода, рассмотрим их инфраструктуру и некоторые детали реализации; с какими трудностями мы столкнулись в ходе их разработки и эксплуатации, а также как пользователь может расширять функциональность IDE, работая с некоторыми из них.


    Machine Learning - how to begin to learn the machine in PHP
    Arkadiusz Kondas
    The main goal of Machine Learning is to create intelligent systems that can improve and acquire new knowledge through input. In practice this translates into the use of one of hundreds of different algorithms available. Based on the PHP-ML library I want to present different classes of problems and how to use them. I will also show you how to build an entire pipeline by which we go through all the ML stages: preprocessing, choosing algorithms, and evaluating its effectiveness.


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



    Самое интересное в PHP 8
    Дмитрий Стогов
    Рассказ пойдет о самых интересных новых технологиях, разрабатываемых для PHP 8, но частично доступных уже и в PHP 7.4.
    JIT, Preloading и FFI - новые взаимосвязанные подсистемы, в первую очередь направленные на дальнейшее увеличение производительности, но они также открывают для PHP новые области применения. Например, можно писать системно зависимые расширения прямо на PHP, подключать сторонние С-библиотеки и быстро писать прототипы...


    C/C++, PHP




    Такой код понравится вашим юнит-тестам
    Александр Новиков
    Практически ежедневно пишу юнит-тесты в течение трёх лет. За это время выработался некоторый набор приёмов, который облегчает их создание и дальнейшую поддержку. В докладе затрону следующие пункты:
    - Обратная связь улучшает качество вашего кода. Поясню, почему не стоит радоваться, если ваш код покрывает тестами сосед.
    - Размер теста определяет его срок службы. Расскажу, почему у большого теста короткая жизнь.
    - Повторение одних и тех же проверок в нескольких тестах бесцельно тратит ваше время. Удивлю, скорее всего, многих кодом без приватных методов.
    - Если в каждом методе мало строк, а общее количество строк приблизительно такое же, значит маленьких методов должно быть много. Соглашусь с этим следствием принципа KISS и посоветую надёжное место для размещения этой большой компании.
    - В длинных участках кода с многоуровневой вложенностью всегда присутствуют типичные абстракции. Предложу схемы нарезки существующего кода на мелкие части.
    - Есть трудные случаи. Например, финальные методы и классы, генераторы, оператор new и т.п. Попробую порассуждать о возможности 100%-го покрытия тестами.
    - Поделюсь наблюдениями, что улучшает читаемость и понимание модульного теста.


    PHP, Рефакторинг, Юнит-тестирование




    Школа магии PHP
    Александр Лисаченко
    "Чем вы ближе, тем меньше вы видите" (С)
    Как часто вы думаете о том, что знаете о магии в PHP много? А что, если я скажу вам о том, что вы просто не смотрели внимательно? Ведь чем больше вам кажется, что вы знаете все, тем легче вас обмануть. Смотрите внимательно, потому что чем вы ближе, тем меньше вы видите.
    Школа магии PHP открывает свои двери. Давайте сбежим за установленные рамки правил ООП и сделаем невозможное возможным. И кто знает, возможно, вы полюбите эту магию: магические методы, нестандартные способы доступа к свойствам, изменение контекстов, аспектно-ориентированное программирование, потоковые фильтры и многое другое.

    Тесты на Codeception для PHP-сервисов. Как остаться без регресса
    Павел Сташевский
    При разработке наших PHP-сервисов мы придерживаемся одного простого правила - никакого ручного регрессионного тестирования, только авто-тесты! Зачем нам это нужно, спросите вы? А чтобы релизить быстро, просто и при этом быть уверенным, что не отвалится ничего критичного.

    В своем докладе я хочу поделиться тем, как мы подходим к процессу автоматизации тестирования:
    1) Какие пишутся тесты и как устроен процесс поддержки.
    2) Почему Codeception, что работает из коробки, что пришлось доделать под себя.
    3) Как мы мокаем все внешнее общение с другими системами.
    4) Как все это запускается a.k.a инфраструктура.


    PHP, Автоматизация тестирования




    Эволюция обработки вебхука Facebook: с нуля до 12'500 в секунду
    Дмитрий Кушников
    ManyChat — это платформа, которая помогает 500'000 бизнесам по всему миру успешно общаться с сотнями миллионов людей через Facebook Messenger. При помощи ManyChat наши пользователи отправляют своим клиентам больше 7'000'000'000 (миллиардов) сообщений в месяц.
    Мы выросли до таких показателей за три года существования сервиса.
    Одной из главных инженерных задач, которую мы решали и продолжаем решать — обработка входящих webhook'ов от Facebook. Нагрузка на этот компонент выросла с нуля до 750'000 RPM (запросов в минуту). И продолжает расти.
    Я расскажу о том, как эволюционировал этот компонент с простого контроллера в популярном фреймворке до распределенной системы. Какие подходы мы применяли на разных этапах роста и как нам удаётся справляться с такой нагрузкой с помощью скромных ресурсов. И всё это без модных Rabbit и Kafka, а на PHP.

    Backwards Incompatible Tales
    Marco Pivetta
    A long time ago, in a land far away, lived a software wizard that was capable of grand magic. They built gardens, libraries, temples, castles. They created life where there wasn’t, and cleared the path where it was unsafe.
    And then they disappeared, and even though they left behind books and notes, none of their apprentices were able to learn the craft. Since then, nobody was able to use any of the tools of the great mage, and the creations kept working for only a few years, when finally even the last stone that was placed crumbled into sand.
    Sounds familiar? Software often feels the same: we’re all magicians that force a piece of sand into semi-rational thought, but what will happen when everyone moves on, and nothing works as expected anymore?
    This talk explores the problems that arise from breaking compatibility with existing tools, how to prevent those breakages from happening, and what to look for as a software maintainer.
    While I cannot guarantee that you will build indestructible magical fortresses with my tips, I can at least help you make sure that your work will live on with other people picking it up, and hopefully appreciating the stability that you worked towards.




    Domain Driven Design на практике
    Сергей Пантюшин
    Чистая архитектура. Рассмотрим два показателя: высокая поддерживаемость и низкий уровень технического долга. Мы хотим, чтобы с приложением было удобно работать, а также оно должно позволять быстро вносить изменения в будущем.
    Поговорим о применении проблемно-ориентированного проектирования на практике. Как применять шаблоны и практики DDD в PHP-приложении.
    Работа с унаследованным кодом. Как постепенно переписывать всю систему по кусочкам. С чего можно начать?




    Climbing the Abstract Syntax Tree
    James Titcumb
    The new Abstract Syntax Tree (AST) in PHP 7 means the way our PHP code is being executed has changed. Understanding this new fundamental compilation step is key to understanding how our code is being run.
    To demonstrate, James will show how a basic compiler works and how introducing an AST simplifies this process. We’ll look into how these magical time-warp techniques* can also be used in your code to introspect, analyse and modify code in a way that was never possible before.
    After seeing this talk, you'll have a great insight as to the wonders of an AST, and how it can be applied to both compilers and userland code.




    Когда лучше выбрать PHP вместо Go
    Ильяс Салихов
    В retailCRM активно используется как PHP, так и Go для разработки сервисов. У каждого из этих языков есть свои недостатки, которые могут быть недооценены на старте проекта, но стать большой болью при последующем его развитии.
    В докладе я постараюсь поделиться нашим опытом и взвешенно рассказать о плюсах и минусах каждого из языков.

    Фреймворки, PHP, Методы и техника разработки ПО, GO




    Aсинхронный PHP
    Антон Шабовта
    * Разбираемся в блокирующих и неблокирующих операциях в PHP.
    * Структура Event Loop и асинхронных примитивов, таких как Promise изнутри.
    * Генераторы как способ управления потоком исполнения программы.
    * Современные подходы реализации кооперативной многозадачности в PHP.
    * Что нас ждет в ext-async, AMPHP 3 и PHP 8.


    C/C++, PHP, Бэкенд / другое




    How to make Legacy Refactoring Fun Again - From Months to Days
    Tomáš Votruba
    Legacy code is present of any successful company. The longer your live and profit, the older your code is.
    How to get out of this? You can rewrite (don't do that!) or refactor manual (don't do that either!). It's 2019 and there is a tool for that now - Rector.
    I help companies to refactor their huge legacy code in a couple of weeks. You can also switch frameworks, from PHP 5.3 to PHP 7.4, from Laravel to Symfony... the sky is the limit :)
    I will show you how you can make your legacy code shine again!

    Грамотное ООП: организация надёжной бизнес-логики

    Дмитрий Елисеев
    Все из нас читали про объектно-ориентированное программирование и проектирование абстрактных типов данных, но мало кто из нас использует их по назначению. И бизнес-логику проектировать и тестировать получается не у всех. Почему-то вместо красивого кода образуется переплетение вызовов, и загромождаются контроллеры.
    Вместе мы научимся раскладывать весь этот код по местам. Потренируемся в объектно-ориентированной декомпозиции для грамотного проектирования сущностей по обязанностям. Научимся сочинять ко всему этому быстрые, удобные и надёжные юнит-тесты.
    Как производить отделение UI от бизнес-логики, чтобы не было протечек слоёв в MVC. Научимся создавать агрегаты для сущностей предметной области для соблюдения инварианта. Какие проверки поместить в сущность, а какие в сервисный слой. Как производить валидацию и использовать исключения.




    Устройство PHP-фреймворков
    Фрол Крючков
    Сейчас большинство компаний мигрируют в микросервисную архитектуру. Для перехода такие компании используют фреймворк или пишут свой базовый шаблон PHP-микросервиса.
    В своем докладе я расскажу о базовых принципах и компонентах, которые используются в современных PHP-фреймворках, на примере написания своего мини-фреймворка.
    Рассмотрим соответствующие компоненты:
    1. Router;
    2. Http Foundation;
    3. Dependency Container;
    4. MVC.

    Также поделюсь ссылкой на git-репозиторий с результатом работы.


    PHP, Методы и техника разработки ПО




    Переход от Rest API к GraphQL на примере трех реальных проектов - простой сайт, интернет-магазин и проект с микросервисами
    Антон Морев
    Разбор трех реальных кейсов внедрения GraphQL.
    • Доводы за и против перехода на GraphQL.
    • Как безопасно делегировать логику группировки данных на frontend и разгрузить backend-разработчиков.
    • Использование на примере проекта с микросервисной архитектурой, монолита.
    • Недостатки, которые мы осознали, только столкнувшись с ними.
    • Инструменты для разработки сервисов GraphQL в PhpStorm.


    Взаимодействие с серверной стороной (API), API, PHP, Прочие языки, Критерии выбора технологий для проекта




    Разработка гибридных PHP/Go-приложений с использованием RoadRunner
    Антон Титов
    - Демонизация PHP-приложения с целью повышения производительности; проблемы, возникающие при демонизации (утечки памяти, утечки контекста, соединения к базам данных) и способы их решения.
    - Что такое RoadRunner, логические блоки, необходимые для построения сервера приложений. Принцип работы сервера PHP-приложений.
    - Гибридизируем разработку, принципы разделения ответственности между сервером и приложением: разделяем приложения на инфраструктурную/транспортную и бизнес-логику.
    - Реализация HTTP-слоя, повышаем производительность в 20 раз + бенчмарки.
    - Реализация Queue-слоя, упрощаем PHP-приложение, увеличиваем стабильность системы.
    - Управление окружением PHP из единого источника (Consul, ETCD и т.д.).
    - Интеграция внешних библиотек и API, реализация доменно-ориентированного API: Prometheus-мониторинг, JWT-авторизация на уровне сервера, GRPC-сервер.




    NoVerify: PHP-линтер, который работает быстро
    Искандер Шарипов
    Для PHP есть достаточно хорошие утилиты статического анализа. Почти все они написаны на PHP и работают довольно медленно, что значительно замедляет CI pipeline и не даёт возможность использовать эти утилиты в качестве интегрируемого в текстовый редактор (или IDE) решения.
    NoVerify является расширяемым линтером для PHP, который работает в 10-30 раз быстрее аналогов.
    Из доклада вы узнаете:
    - Почему NoVerify такой быстрый и почему Go - хороший выбор для создания devtools для PHP разработчиков.
    - Что может находить NoVerify из того, о чём не предупредит PHPStorm.
    - Интеграция NoVerify в крупный проект, который ранее не использовал статический анализ.
    - Способы расширения NoVerify, доступные в Open Source дистрибутивы проверок.
    - Что ещё можно построить на базе NoVerify на примере php-consistent.


    PHP, Стандарты кодирования, GO




    Practical advanced static analysis
    Dave Liddament
    All developers know that bugs are bad and finding them can be difficult. The good news is tools to help us find and prevent bugs are becoming more powerful...
    Modern static analysis tools (e.g. IDEs like PHPStorm and tools like Psalm, Phan and PHPStan) are far more advanced than their predecessors. They can find a whole range of bugs whilst keeping the false positive rate low.
    This talk introduces more advanced static analysis. It will show the kinds of bugs that the more advanced static analysis tools can find. We'll then look how they can be added to your current development work flow. We'll finally look at how we can write our code in such a way to get the most out of static analysis.
    Wherever you are on your static analysis journey this talk will show you the next step.


     

    Вложения:

  2. Последние события

    1. eugen_ax
      eugen_ax не участвует.
      23 дек 2023
    2. amerenkov
      amerenkov не участвует.
      16 апр 2023
    3. ralex
      ralex не участвует.
      26 янв 2023
    4. Kolechka83
      Kolechka83 не участвует.
      5 сен 2022

Поделиться этой страницей