Стрим успешно проведён и тайм-коды к записи частично добавлены. Возвращаемся к программированию.
Перед большим авторефакторингом проекта с помощью инструмента Rector пора перевести API на PHP 8.3 и провести глобальное обновление на долгожданные Doctrine ORM 3 и DBAL 4. Этим сегодня и займёмся.
Перед большим авторефакторингом проекта с помощью инструмента Rector пора перевести API на PHP 8.3 и провести глобальное обновление на долгожданные Doctrine ORM 3 и DBAL 4. Этим сегодня и займёмся.
deworker.pro
PHP 8.3 и Doctrine ORM 3 с DBAL 4
Глобальное обновление зависимостей. Переход на PHP 8.2 и PHP 8.3. Перевод проекта на Doctrine ORM 3 и DBAL 4.
Тайм-коды ко второй части стрима готовы, уточнения написаны и код везде исправлен. Теперь пересматривать будет удобнее. Что получилось
deworker.pro
Способы ускорения PHP-приложений
Способы оптимизации запуска и ускорения работы PHP-приложений с Preload, JIT и RoadRunner и Fibers.
Мы перевели проект на PHP 8.3, но код наших классов под новые возможности языка ещё не меняли. Чтобы не делать это вручную, сегодня мы проведём автообновление синтаксиса и авторефакторинг нашего PHP-проекта с помощью полезного инструмента Rector.
Также с его помощью упростим использование типов в Doctrine-сущностях, переведём PHPUnit-тесты с аннотаций на атрибуты и спрограммируем собственный ректор для более аккуратного перевода наших классов на синтаксис Constructor Property Promotion.
Также с его помощью упростим использование типов в Doctrine-сущностях, переведём PHPUnit-тесты с аннотаций на атрибуты и спрограммируем собственный ректор для более аккуратного перевода наших классов на синтаксис Constructor Property Promotion.
deworker.pro
Авторефакторинг PHP с Rector
Автоматическое обновление синтаксиса и авторефакторинг PHP-проекта с помощью инструмента Rector. Использование стандартных правил и программирование собственного ректора.
Помимо регистрации и входа по почте и паролю порой полезно сделать авторегистрацию и вход через сторонние сервисы вроде почтовиков и социальных сетей.
Этим сегодня и займёмся.
Впрограммируем работу с внешними OAuth-сервисами в наш процесс входа с League OAuth Server. Подключим несколько провайдеров и добавим кнопки быстрого входа в AuthProvider фронтенда.
Для удобства разработки и тестирования сделаем эмуляцию страниц и API сторонних сервисов с помощью инструмента Wiremock.
Этим сегодня и займёмся.
Впрограммируем работу с внешними OAuth-сервисами в наш процесс входа с League OAuth Server. Подключим несколько провайдеров и добавим кнопки быстрого входа в AuthProvider фронтенда.
Для удобства разработки и тестирования сделаем эмуляцию страниц и API сторонних сервисов с помощью инструмента Wiremock.
deworker.pro
Вход через сторонние сервисы
Программирование входа в PHP-проект по протоколу OAuth2 через сторонние сервисы и социальные сети.
Мы уже в прошлых стримах обсудили высокоуровневое разделение проекта на модули и микросервисы, чтобы у нас было меньше связей между отдельными подсистемами.
Там мы вскользь упомянули принципы и паттерны SOLID и GRASP в применении к модулям. Эта тема интересна сама по себе и по ней всегда много вопросов от зрителей. Ведь иногда из-за непонимания изначальной идеи программист либо делает это криво, либо применяет не там, где это актуально.
Так что будет полезно рассмотреть эту тему на примерах не только высокоуровневых модулей, но и на более низкоуровневом разделении программного кода на процедуры, функции или классы.
Это мы сделаем на отдельном большом стриме про SOLID и GRASP.
Там мы вскользь упомянули принципы и паттерны SOLID и GRASP в применении к модулям. Эта тема интересна сама по себе и по ней всегда много вопросов от зрителей. Ведь иногда из-за непонимания изначальной идеи программист либо делает это криво, либо применяет не там, где это актуально.
Так что будет полезно рассмотреть эту тему на примерах не только высокоуровневых модулей, но и на более низкоуровневом разделении программного кода на процедуры, функции или классы.
Это мы сделаем на отдельном большом стриме про SOLID и GRASP.
deworker.pro
Большой стрим про SOLID и GRASP
Большой стрим про идеи и практики применения принципов и паттернов SOLID и GRASP для разделения программного кода на процедуры, функции или классы. Выбор паттернов GoF для реализации этих принципов в проекте.
Предпросмотр скринкастов
Раньше для гостей и зрителей без подписки все платные скринкасты на сайте были полностью закрыты. Вместо видео сразу выводилась плашка с кнопкой подписки. Из-за этого только из одного описания под видео не всегда было понятно, о чём пойдёт речь.
Теперь же, как некоторые заметили в комментариях, у многих таких эпизодов стало возможно посмотреть вступление. То есть можно сразу подсмотреть, что будет внутри. Если у вас не оформлена подписка, то для вас это будет весьма удобно:
https://deworker.pro/edu
Раньше для гостей и зрителей без подписки все платные скринкасты на сайте были полностью закрыты. Вместо видео сразу выводилась плашка с кнопкой подписки. Из-за этого только из одного описания под видео не всегда было понятно, о чём пойдёт речь.
Теперь же, как некоторые заметили в комментариях, у многих таких эпизодов стало возможно посмотреть вступление. То есть можно сразу подсмотреть, что будет внутри. Если у вас не оформлена подписка, то для вас это будет весьма удобно:
https://deworker.pro/edu
Перенос стримов с YouTube
В связи с проблемной работой YouTube записи всех наших стримов с уточнениями из комментариев теперь перенесены на сайт. Так что сейчас всё открывается быстро и со всех устройств:
https://deworker.pro/blog
В связи с проблемной работой YouTube записи всех наших стримов с уточнениями из комментариев теперь перенесены на сайт. Так что сейчас всё открывается быстро и со всех устройств:
https://deworker.pro/blog
После долгого ожидания в PHP 8.4 появились полноценные свойства с возможностью несимметричной видимости. Так что теперь можем записать полноценный скринкаст по взаимодействию объектов про поля и свойства. Эти нововведения мы вчера обсудили на обзорном стриме:
https://t.me/elisdnru/57
https://t.me/elisdnru/57
Telegram
ElisDN.ru
Обзор нововведений PHP 8.4
Внезапно на канале CutCode меня из чата пригласили в эфир с обзором нововведений PHP 8.4. Наконец мы дождались появления в PHP полноценных свойств как в других языках. Ещё появилось полезные функции для поиска элементов в массивах…
Внезапно на канале CutCode меня из чата пригласили в эфир с обзором нововведений PHP 8.4. Наконец мы дождались появления в PHP полноценных свойств как в других языках. Ещё появилось полезные функции для поиска элементов в массивах…
Про безопасность Web-приложений
В комментариях и чатах к предыдущим стримам часто попадалось предложение о том, что было бы интересно посмотреть или послушать что-нибудь на тему безопасной разработки приложений. Как про написание безопасного кода, так и про защиту сетей, виртуальных машин и контейнеров.
Эта тема теперь особенно актуальна ввиду ужесточения ответственности за утечки персональных данных и за несоблюдение требований законов к хранению и защите этих данных. Помимо этого, если мы активно разрабатываем и публикуем приложения в Docker-контейнерах, то сразу возникает необходимость разобраться с защитой этих контейнеров и сетей между ними.
По этим просьбам проведём наш очередной большой ламповый стрим на один или два вечера про безопасность web-приложений и сопутствующей инфраструктуры.
До встречи в эфире и в записи!
В комментариях и чатах к предыдущим стримам часто попадалось предложение о том, что было бы интересно посмотреть или послушать что-нибудь на тему безопасной разработки приложений. Как про написание безопасного кода, так и про защиту сетей, виртуальных машин и контейнеров.
Эта тема теперь особенно актуальна ввиду ужесточения ответственности за утечки персональных данных и за несоблюдение требований законов к хранению и защите этих данных. Помимо этого, если мы активно разрабатываем и публикуем приложения в Docker-контейнерах, то сразу возникает необходимость разобраться с защитой этих контейнеров и сетей между ними.
По этим просьбам проведём наш очередной большой ламповый стрим на один или два вечера про безопасность web-приложений и сопутствующей инфраструктуры.
До встречи в эфире и в записи!
deworker.pro
Стрим про безопасность WEB-приложений
Большой стрим про безопасность web-приложений. Исследование разных видов атак. Написание безопасного программного кода. Защита инфраструктуры в Linux нативно и в Docker. Инструменты поиска уязвимостей. Соблюдение требований 152-ФЗ.
Deworker Pro
Про безопасность Web-приложений В комментариях и чатах к предыдущим стримам часто попадалось предложение о том, что было бы интересно посмотреть или послушать что-нибудь на тему безопасной разработки приложений. Как про написание безопасного кода, так и про…
Напоминаем, что сегодня вечером встретимся на большом стриме про безопасность. Ссылка на будущую трансляцию для участников уже доступна под анонсом и в кабинете.
Deworker Pro
Про безопасность Web-приложений В комментариях и чатах к предыдущим стримам часто попадалось предложение о том, что было бы интересно посмотреть или послушать что-нибудь на тему безопасной разработки приложений. Как про написание безопасного кода, так и про…
Сегодня вечером встретимся на второй части стрима про безопасность WEB-приложений. В первом стриме обсудили общие вопросы и инфраструктуру, а сегодня поговорим про программный код.
Пока записываются два скринкаста, к нашему стриму про безопасность добавлены подробные тайм-коды и улучшен звук. Так смотреть и пересматривать будет удобнее.
До встречи в записи!
До встречи в записи!
deworker.pro
Стрим про безопасность WEB-приложений
Большой стрим про безопасность web-приложений. Исследование разных видов атак. Написание безопасного программного кода. Защита инфраструктуры в Linux нативно и в Docker. Инструменты поиска уязвимостей. Соблюдение требований 152-ФЗ.
В разработке пришло много интересных новостей о выпуске свежих улучшенных версий многих компонентов для бэкенда и фронтенда.
Сегодня переведём наш Swarm-кластер на реверс-прокси сервер Traefik 3. Обновимся на новые мажорные версии Rector, Psalm и PHPUnit. И переведём бэкенд на PHP 8.4.
А уже потом займёмся фронтендом.
Сегодня переведём наш Swarm-кластер на реверс-прокси сервер Traefik 3. Обновимся на новые мажорные версии Rector, Psalm и PHPUnit. И переведём бэкенд на PHP 8.4.
А уже потом займёмся фронтендом.
deworker.pro
Traefik 3 и PHP 8.4
Переход на реверс-прокси сервер Traefik 3. Обновление Rector, Psalm и PHPUnit. Дополнительная типизация библиотек. Перевод бэкенда на PHP 8.4.
Осознанная работа с базами данных
В предыдущих стримах мы рассмотрели тему безопасности при работе с БД и способы ускорения web-приложений.
Во всех наших проектах мы используем базы данных. Как в монолитах, так и в примерах с модулями и микросервисами. И нам в рабочих проектах порой приходится сочинять сложные SQL-запросы. И для решения таких задач желательно уметь использовать SQL в полную силу.
Но помимо программного кода большой вклад в производительность вносит скорость работы БД и оптимальность наших запросов. А разработчики порой уделяют этому мало внимания. Либо это для их проекта сейчас неактуально, либо они просто не умеют этого делать.
Поэтому нам будет полезно разобраться с базами данных подробнее.
По всем этим вопросам как раз проведём наш следующий большой практический стрим, где разберём актуальные темы по работе с реляционными базами данных, чтобы начать работать с ними осознанно, а не наугад.
Эта тематика актуальна всегда и про это всегда спрашивают на собеседованиях, так что лучше не откладывать это на потом.
До встречи с участниками в эфире и в записи!
В предыдущих стримах мы рассмотрели тему безопасности при работе с БД и способы ускорения web-приложений.
Во всех наших проектах мы используем базы данных. Как в монолитах, так и в примерах с модулями и микросервисами. И нам в рабочих проектах порой приходится сочинять сложные SQL-запросы. И для решения таких задач желательно уметь использовать SQL в полную силу.
Но помимо программного кода большой вклад в производительность вносит скорость работы БД и оптимальность наших запросов. А разработчики порой уделяют этому мало внимания. Либо это для их проекта сейчас неактуально, либо они просто не умеют этого делать.
Поэтому нам будет полезно разобраться с базами данных подробнее.
По всем этим вопросам как раз проведём наш следующий большой практический стрим, где разберём актуальные темы по работе с реляционными базами данных, чтобы начать работать с ними осознанно, а не наугад.
Эта тематика актуальна всегда и про это всегда спрашивают на собеседованиях, так что лучше не откладывать это на потом.
До встречи с участниками в эфире и в записи!
deworker.pro
Стримы про реляционные базы данных
Большой стрим про теорию и оптимизацию баз данных. Паттерны и антипаттерны хранения разных данных. Примеры построения сложных запросов для повседневной работы и аналитики.
Deworker Pro
Осознанная работа с базами данных В предыдущих стримах мы рассмотрели тему безопасности при работе с БД и способы ускорения web-приложений. Во всех наших проектах мы используем базы данных. Как в монолитах, так и в примерах с модулями и микросервисами. И…
В процессе сегодняшней финальной подготовки стрима пришли идеи добавить дополнительные темы и рассказать про технические вещи вроде PgBouncer. Так что дополним программу и, чтобы всё влезло, разделим стрим на две части.
Первую часть посвятим теории БД и практикам написания и оптимизации SQL-запросов. Во второй части рассмотрим вспомогательные инструменты, конфигурацию, репликацию и шардирование.
В связи с этим потребуется дополнительное время на доработку программы. Вместо сегодняшнего вечера первую часть проведём ориентировочно 10 апреля.
Первую часть посвятим теории БД и практикам написания и оптимизации SQL-запросов. Во второй части рассмотрим вспомогательные инструменты, конфигурацию, репликацию и шардирование.
В связи с этим потребуется дополнительное время на доработку программы. Вместо сегодняшнего вечера первую часть проведём ориентировочно 10 апреля.
Deworker Pro
Осознанная работа с базами данных В предыдущих стримах мы рассмотрели тему безопасности при работе с БД и способы ускорения web-приложений. Во всех наших проектах мы используем базы данных. Как в монолитах, так и в примерах с модулями и микросервисами. И…
Структура сильно переделана, материал подготовлен. Идут финальные улучшения примеров, чтобы всё было красиво и полезно. Первую часть стрима проведём в этот четверг 24 апреля в 19:00. Последняя скидка истечёт как раз ко времени начала. До встречи с участниками в эфире и в записи!
deworker.pro
Стримы про реляционные базы данных
Большой стрим про теорию и оптимизацию баз данных. Паттерны и антипаттерны хранения разных данных. Примеры построения сложных запросов для повседневной работы и аналитики.
Deworker Pro
Осознанная работа с базами данных В предыдущих стримах мы рассмотрели тему безопасности при работе с БД и способы ускорения web-приложений. Во всех наших проектах мы используем базы данных. Как в монолитах, так и в примерах с модулями и микросервисами. И…
Вчера выступил на конференции PHP Crew про производительность, а сегодня решил посмотреть прошедшие там доклады.
Обратил внимание на доклад "Оптимизация БД: когда индексы не работают" о случаях, когда планировщик решает не использовать индексы при выполнении запросов. И понял, что надо индексированию уделить больше внимания и такие ситуации рассмотреть подробнее.
Так что сегодня в материалы стрима добавлю больше примеров и наборов данных по теме индексов. За оставшееся время до начала сделать это не успею, так что вместо сегодняшнего вечера встретимся завтра.
Обратил внимание на доклад "Оптимизация БД: когда индексы не работают" о случаях, когда планировщик решает не использовать индексы при выполнении запросов. И понял, что надо индексированию уделить больше внимания и такие ситуации рассмотреть подробнее.
Так что сегодня в материалы стрима добавлю больше примеров и наборов данных по теме индексов. За оставшееся время до начала сделать это не успею, так что вместо сегодняшнего вечера встретимся завтра.
Telegram
ElisDN.ru
Сегодня у Подлодки началась большая онлайн-движуха PHP Crew про производительность. Организаторам понравилась идея моего стрима про способы ускорения PHP-приложений и они внезапно попросили меня что-нибудь на эту тему рассказать у них. Про инструменты и …
Forwarded from Позовите Олега | Архитектура и разработка
Вчера состоялось моё выступление на шестом сезоне подлодки. Я выступал с докладами на 4 из них. В этот раз, как я уже писал ранее, рассказывал почему индексы в конкретных запросах могут не работать. Для этого пришлось сначала разобраться какие они вообще бывают, эти индексы, а так же как работает планировщик.
В общем, спешу поделиться видео моего доклада
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Доклад: Оптимизация БД: когда индексы не работают / Олег Мифле (Altenar)
Рассмотрим сценарии, в которых индексы приносят больше вреда, чем пользы. Заставим эффективно работать уже существующие индексы и обсудим другие способы оптимизации, когда индексы не эффективны.
Презентация: https://drive.google.com/file/d/1N6iLrB-oPZFW…
Презентация: https://drive.google.com/file/d/1N6iLrB-oPZFW…