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

Статус
В этой теме нельзя размещать новые ответы.
VkurseBot

VkurseBot

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

[​IMG]


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





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



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 и batch-процессинга.
Расскажем:
- как реализовать легко масштабируемый, высокопроизводительный и устойчивый к ошибкам конвейер;
- как организовать работу двух систем параллельно и провести переход со старой на новую без даунтайма и с минимальными потерями;
- о проблемах работы демонов в PHP и их решении.


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






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




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 7.4.
JIT, Preloading и FFI - новые взаимосвязанные подсистемы, в первую очередь направленные на дальнейшее увеличение производительности, но они также открывают для PHP новые области применения. Например, можно писать системно зависимые расширения прямо на PHP, подключать сторонние С-библиотеки и быстро писать прототипы...


C/C++, PHP






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


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






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



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

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


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






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



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.






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






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.






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

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






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


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






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 <img src=" title="Smile :)">
I will show you how you can make your legacy code shine again!



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






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

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


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






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


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






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






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


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






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.


 
Последнее редактирование модератором:
Статус
В этой теме нельзя размещать новые ответы.

О нас

Слив платных курсов - скачать бесплатно

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

VKURSE.INFO регулярно публикует:

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

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

Быстрая навигация

Меню пользователя