Заявки на доклады

В программе доклады по темам:

  • Базы данных и ORM
  • Производительность
  • Облака и Lambda
  • Внутренности PHP
  • Архитектура и масштабируемость
  • Фреймворки и библиотеки
  • Профессиональная разработка
  • Подводные камни хайповых решений
  • Системная борьба с legacy
  • Асинхронные приложения и параллельная обработка
  • Лучшие практики
  • Реальный опыт
  • API: REST, SOAP и другие
Информация для докладчиков
Доклады 13 Мая Доклады 14 Сентября
Поиск по тегам:

Внутренности PHP

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

А что же делать, если очень хочется или очень нужно?

В этом докладе мы заглянем под капот самого PHP, поймем, какие у нас есть возможности и далее научимся писать свои расширения на обычном PHP. Иммутабельность — пару минут! Перегрузка операторов — проще простого!

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

Другое

Иногда при разработке на PHP требуется использовать не только PHP. Зачем? Аннотации, DQL, Yaml, JSON5, С headers (FFI), GraphQL или какое-то своё решение — всё это задачи довольно узконаправленные, но когда потребуется реализовать что-то подобное, то придётся изучить множество литературы для банального понимания, как решать подобные задачи. Более того: даже банальные (ха-ха) задачи реализации статического анализа требуют полного разбора исходного кода и понимания его Control Flow!

В этом докладе мы ознакомимся с тем, как ~~упороться~~ (зачёркнуто) работают парсеры, из чего они состоят, почему синтаксис PHP именно такой, какой есть, и, возможно, придём к пониманию того, как работают языки программирования (в том числе и сам PHP).

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

Лучшие практики

Чаще всего вам рассказывают о том, как улучшить ваше приложение. Практики codestyle, DDD, performance engineering, SOLID и прочее, причём не особо вдаваясь в детали реализации. Почему бы не поговорить о том, как насолить CTO и уничтожить ваше приложение, приведя его к состоянию «пора всё переписывать с нуля»?

Вредные советы для разработчиков на примере PHP. От использования конкретных практик до конкретных инженерных решений. Overload, overengineering, overarchitecture и все прелести, которые ждут вас от несоблюдения best practices.

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

Разберём принцпы, которые позволяют писать код, который ломается меньше:
- композиция и как её форсировать;
- private по умолчанию;
- именованные конструкторы;
- состояние и иммутабельность;
- цепочки вызовов;
- зависимости и их инъекция;
- flow внутри метода, цикломатическая сложность;
- исключения: как ловить, ловить ли. Что нужно делать исключениями, а что не стоит;
- value object;
- DTO;
- типизация;
- сервисы, их зависимости и состояние;
- как писать, чтобы работало под RoadRunner / Swoole;
- как всё это тестировать;
- CQS;
- слои и абстракция.

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

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

Badoo и другие наши приложения — взрослые проекты с миллионами строк кода. Код активно меняется, мы постоянно его ускоряем и улучшаем.

Было время, когда мы использовали сразу три статических анализатора одновременно: PHPStan, Psalm и Phan. Опыт получился любопытным.

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

Доклад будет полезен разработчикам, техническим лидерам команд и QA.

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

Современный PHP все больше проникает в Enterprise-разработку и успешно перенимает многие архитектурные подходы из мира Java и C#. Такие термины, как MBA, SOA, DDD, а, возможно, и CQRS с Event Sourcing (ES) прочно входят в обиход PHP-разработчиков. Но правильно ли мы их применяем?

Как построить гибкую архитектуру проекта на основе этих решений? Как успевать за стремительно меняющимися бизнес-требованиями? Чтобы ответить на эти вопросы, важно понимать, какие проблемы призваны решать эти архитектурные паттерны и как выявить их в своем проекте.

В этом докладе я поделюсь своим видением области применения CQRS и ES для PHP, расскажу об OpenSource-библиотеках, помогающих внедрить CQRS- и MBA-подходы в свой проект, и сравним их с решениями для C#, Java и Erlang.

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

— Зачем нужны ORM?
— ActiveRecord vs DataMapper.
— Persist, топологическая сортировка зависимостей.
— Пишем persist-слой, используя итеративную сортировку в глубину.
— Обзор Cycle ORM.

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

Если вы задумывались о версионировании API, то наверняка вы сталкивались с целым рядом вопросов и проблем:
1. Какие варианты реализаций версионирования API известны? Какие у них достоинства и недостатки?
2. Как переиспользовать код в разных версиях?
3. Как поддерживать актуальность документации для всех версий?
4. Как тестировать разные версии API? Как справиться с ростом тестов после каждой новой версии?

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

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

- Разработка приложений по долгоживущей модели, используя RoadRunner;
- гибридная диспетчеризация, используя Golang-сервер и PHP-консюмеры;
- изоляция пользовательского контекста, используя IoC-замыкания;
- Cycle ORM и динамический маппинг datamapper-схем в рантайме.

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

Have you noticed how what the MVC frameworks we use on a daily bases highly differ from what Wikipedia tells us is MVC? Have you wondered why database table mappings are called models? Where did the views go in your API?

What we call MVC is flawed! How did this happen? What was the original idea? What went wrong? We'll dig into the past and find the answers. Then we'll identify the problems that MVC has and present an alternative - the Action-Domain-Responder!

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

Think about PHP for a few seconds… What came to mind? It’s very likely you thought about your average product catalog, a blogging platform, or how the platform is inferior to things like Node.js. But wait, it’s 2020! What if I told you PHP’s huge ecosystem has way more to offer and PHP is not inferior at all to its evil cousin Node.js?

In this talk you will learn about the core concepts of async PHP and why you too should care about ReactPHP being a real thing. The talk has a strong focus on sparking the idea that PHP can be way faster and more versatile than you probably thought. Bring along an open mind, and through lots of interesting examples and live demos learn why what sounds crazy at first might soon be a valuable addition in your toolbox.

You’re already familiar with PHP and want to learn what ReactPHP is all about? Then this talk is for you! We will start from scratch and see what it takes to build an application that pushes data from your command line to your browser in real-time. You’re invited to join the interactive demos or lean back and learn more about why an event-driven approach might be the next big thing in making your application faster and more responsive.

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

Автоматические тесты помогают нам быть уверенными, что код работает и будет работать, как ожидается. И одной из метрик автоматического тестирования является Code Coverage — процент покрытия кода.

Но насколько хорош этот показатель? Можем ли мы ему доверять и имеет ли он хоть какой-то практический смысл?

Насколько вы сами уверены в своих тестах? Покрывают ли они все ветки выполнения кода?

Данный доклад отвечает на все эти вопросы и знакомит с методологией Мутационного Тестирования, описывает, как она может быть использована в повседневной работе и как контролировать качество тестов программно.

Здесь рассматриваются проблемы показателя Code Coverage, каким образом они решаются с помощью Мутационного Тестирования, а также описывается фреймворк для Мутационного Тестирования в PHP — Infection.

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

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



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

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

Расскажу, как мы решили это в команде мобильного бэкенда Skyeng.
- Улучшаем код, не рефакторя ни строчки.
- Что делать, когда твой проект стал прокси для кучи сервисов — как мы разобрались с этим и улучшили наши тесты.
- Как покрывать легаси-код тестами.
- Как мы внедряли статический анализ кода, зная, что он скажет о нашем прошлом.

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