Lamoda Outbound

Евгений Сальников — тимлид команды доставки в Lamoda.

  • Путь от разработчика к CTO и обратно в разработку «руками»
  • Apache Camel — почему эта технология так недооценена?
  • 5 языков в одной команде: Java, Kotlin, PHP, Go, TypeScript
  • Большие PHP проекты и сервисная архитектура
  • План по переходу на PHP 8
  • Поможет ли утилита Rector?
  • Какие статические анализаторы для PHP используются? (спойлер: PHPStan)
  • Актуальные фреймворки? (спойлер: Symfony)
  • Любимый язык программирования?
  • Рекомендации по Телеграм чатам

https://camel.apache.org
https://www.youtube.com/watch?t=14864&v=ZYMEb_30kuo — Как жить с 5 языками программирования
https://t.me/symfoniacs

Clockwork — отладочная панель для PHP

Clockwork – это библиотека и расширение для браузера предоставляющие удобный интерфейс отладки производительности PHP кода.

Расскажу про свой опыт использования и сделаю небольшое сравнение с альтернативами.

Читать далее Clockwork — отладочная панель для PHP

Объекты передаются по ссылке или нет?

Часто можно услышать фразу, что в PHP «объекты всегда передаются по ссылке». На самом деле всё немного сложнее.

https://www.php.net/manual/ru/language.oop5.references.php

Читать далее Объекты передаются по ссылке или нет?

declare(strict_types=1)

В прошлом выпуске Пятиминутки PHP я рассказал, как обновлял кодовую базу с помощью утилиты Rector. Одно из направлений – простановка типов. Типы в свойствах классов, типы в параметрах функций, типы возвращаемых значений.

Но на этом я не остановился. Следующий шаг – проставить declare(strict_types=1)! Весь новый код, который я пишу по умолчанию идёт с declare(strict_types=1) в начале файла, это легко настроить в шаблонах PhpStorm. Но так ли просто взять и обновить старые исходники?

Читать далее declare(strict_types=1)

PhpStorm на macOS Metal

Расскажу про тикет JBR-745 о поддержке Metal в JetBrains Runtime, он же проект Lanai или JEP-382. Станут ли IDE от JetBrains отрисовываться со скоростью 300К FPS?

Видео, как я запускаю PhpStorm на Metal: https://youtu.be/T0CShIFwyRw

Ссылки по теме:

Laravel Livewire — сетевая игра (часть 5)

В этом выпуске обдумаем стратегию аутентификации и поработаем над ссетевой игрой между двумя реальными игроками (раньше играть можно было только против компьютера), добавим режим наблюдателя, потренируемся в отладке с помощью Xdebug и используем функциональность lazy и poll в Livewire.

Исходный код проекта: https://github.com/pqr/laravel-livewire-rock-paper-scissors

Плейлист со всеми сериями: https://www.youtube.com/playlist?list=PLvP6XNj3GUhB4idkTp1KPBki3-070Ymcq

Laravel Livewire — SPA & Turbolinks (часть 4)

Продолжаем работу над игрой «Камень, ножницы, бумага».

В этом эпизоде добавим игровое лобби, таким образом приложение будет состоять из двух экранов: лобби и непосредсвенно игра. Обработку роутов приложения сделаем с помощью Livewire, такм образом переходы между экранами будут осуществляться в без перезагрузки страницы в стиле Signle Page Application.

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

Исходный код проекта: https://github.com/pqr/laravel-livewire-rock-paper-scissors

Плейлист со всеми сериями: https://www.youtube.com/playlist?list=PLvP6XNj3GUhB4idkTp1KPBki3-070Ymcq

Laravel Schematics — проектируем базу данных (часть 3)

Продолжаем работу над игрой «Камень, ножницы, бумага».

В этом эпизоде займёмся проектированием структуры базы данных и мделаем это с помощью утилиты Laravel Schematics.

Исходный код проекта: https://github.com/pqr/laravel-livewire-rock-paper-scissors

Плейлист со всеми сериями: https://www.youtube.com/playlist?list=PLvP6XNj3GUhB4idkTp1KPBki3-070Ymcq