Что смотрели и читали по PHP в 2021: список от сообщества

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

Как собирались мнения и кто проходил опрос

Ссылку на опрос помогли распространить городские чаты и админы крупных PHP-каналов, деврелы компаний, где в стеке есть PHP, конференция PHP Russia, сайт phpcommunity.ru. Вот полный список классных ребят и компаний, которые помогли исследованию сбыться.

Еще пара полезных ссылок на старте. 

Поехали.

Самые упоминаемые видео

Рекордсмен по упоминаниям — стрим про релиз PHP 8.1, запуск PHP Foundation и истории переезда на 8.0 — на каналах PHP Point и Skyeng. А прямо во время эфира появилась новость, что версия 8.1 официально релизнута.

JIT в PHP 8: Просто о сложном — что это такое, как включить, как настроить и какую пользу JIT принесет. В тему JIT в PHP 8 также вспоминали доклад Дмитрия Стогова.

Стрим про трейты — зло ли или можно использовать. Все решили 4 раунда кейсов. Лайв прошел в декабре 2020, но сообщество вспоминает до сих пор.

НЕ ООП ЕДИНЫ! Domain Driven Design на примере холодильника — как работают луковичные архитектуры, что такое доменные модели, агрегаты и всё вот это вот из DDD — да, на примере холодильника.

Стрим к выходу PHP-8 на каналах PHP Russia, Skyeng и PHP Point. Доклад «PHP 8: userland», дискуссия о том, куда идет язык и Q&A с core-разработчиками — Никитой Поповым и Дмитрием Стоговым.

* Видео с PHP Russia 2021 — артефакты с конференции в виде записей будут выложены в открытый доступ ближе к следующей конференции. Но вспоминали доклады часто. Например, рассказ Валентина Удальцова про Thesis и доклад Сергея Жука про легаси.

Пару записей докладов уже можно найти в хабраблоге конференции: в статье про сетевой обмен в PHP-микросервисах и версионирование API.

Что еще смотрели и советуют: лайвы

Открытое собеседование PHP Point #1 — Валентин Удальцов vs Патрик Фельдеш. 

PHP и Laravel дайджест — совместный формат каналов CutCode и PHP Point. Вспоминали выпуски за ноябрь и декабрь.

Как регистрировать и тестировать shutdown функции — Валентин Удальцов про деструкторы, регистрацию и тестирование shutdown функций, а также различные нюансы вокруг замыканий и уборки мусора в PHP.

PHP8: новые фишки. Готовимся к Laravel 9 — CutCode о фичах PHP 8, сделавших разработку удобнее: выражение match, null-safe operator и не только.

PHP-программист: публичное собеседование — в эфире Кирилл Мокевнин и Виктория Музычук. Другие открытые собеседования по PHP можно найти на канале Хекслет

Как писать хороший код на PHP — интервью с Senior PHP разработчиком и экс-разработчиком компании viber Валерием Селицким.

Принцип подстановки Барбары Лисков геометрическая интерпретация — разбор принципа в лайв-формате. Идея видео зародилась после прочтения статьи.

Как стать PHP-разработчиком с нуля — интервью с Кириллом Несмеяновым.

Поиск и устранение утечек памяти в PHP обзор утечек памяти в PHP и инструментов для их контроля и фикса от Валентина Удальцова.

Drupal Warmer: автоматизируем прогрев кеша — о модуле Warmer, который позволяет прогревать кеш на сайте в автоматическом режиме.

PHP — зачем его учить, что на нем пишут, зарплаты, фреймворки — фреймворки, статистика использования языка, анализ рынка.

Что еще смотрели и советуют: записи докладов

PHP NN #4: для поклонников Symfony и сочувствующих — запись нижегородского митапа с докладами Валентина Удальцова и Дениса Юрьева.

Распределенные Workflow на PHP Фреймворки и библиотеки — доклад Антона Титова на PHP fwdays’21 о системах оркестрации, интеграции Temporal с RoadRunner и миром PHP, а также об обработке ошибок в распределенных приложениях.

Грамотное ООП: организация надёжной бизнес-логики — доклад Дмитрия Елисеева с конференции PHP Russia 2019: о проектировании сущностей по обязанностям с помощью объектно-ориентированной декомпозиции. Учимся сочинять ко всему этому быстрые, удобные и надежные юнит-тесты.

Как 200 строк на Go помогли нам освободить 15 серверов – доклад Павла Мурзакова из Badoo с митапа Авито аж за 2017 год.

Модульный PHP монолит как альтернатива микросервисной архитектуре — доклад Юлии Николаевой с митапа iSpring, который прошел в декабре 2019, впоминают в опросе второй год.

Видео на английском

PHP in 100 Seconds — экспресс погружение в историю языка.

Самые упоминаемые статьи

Самые заметные изменения языка php за последние годы — разбор интересных изменений с 5 по 8.1 версии языка от @zm_llill.

PHP дайджесты @pronskiy — вспоминали разные выпуски. Сразу несколько человек сбросили ссылку на июньский про альфу PHP 8.1 и обзор предложений к версии, релиз Symfony 5.3 и не только.

Версионирование API или единая кодовая база для всех версий — решения проблемы версионирования web-API от ребят из SuperJob и @SamDark. Есть видео доклада

php8.1 доступен! — эту ссылку с официального сайта видели все 🙂 Ключевые апдейты версии. 

Потрясающее будущее PHP-стека для карьеры@hatman поделился видением пути PHP. Бонус — в конце статьи 600+ мнений, ждет ли язык светлое будущее.

Способы внедрения зависимостей: сравнение подходов, плюсы-минусы и что использоваться в разных ситуациях — в статье Дмитрия Елисеева. 

История разработки фасетного поиска средствами PHP@coh исследовал возможности языка. Спойлер: пришлось даже написать порт на GoLang.

Строим эффективный сетевой обмен в PHP-микросервисах — рассказ @MMgo о том, как в Авито оптимизировали сетевые вызовы, по докладу с PHP Russia 2021.

Как ManyChat на PHP8 переезжал — хронология двух месяцев переезда: от исследования до результатов.

Модульный PHP монолит: рецепт приготовления @julianikolaeva о том, что можно сделать вместо распиливания монолита на микросервисы.

Что еще читали

Что нового в PHP 8.1 — перевод статьи What’s new in PHP 8.1 от @MaxRokatansky.

Вышел PHP 8.1 — еще статья про главные фичи последней версии от @maybe_elf

Зависимости для сущностей и команд — продолжение цикла статей от Дмитрия Елисеева про работу с зависимости и разбор практических примеров.

Принцип подстановки Барбары Лисков (предусловия и постусловия) — без общих примеров принципа. @genkovich рассмотрел «Предусловия», «Постусловия», ковариантность, контравариантность и инвариантность, а также «правило истории».

Строим систему доменных событий в модульном монолите — как гарантировать их доставку, следить за консистентностью в рамках транзакций, а также отличия доменных событий от интеграционных. Опытом поделился @ilyashikhaleev

Стоит ли учить PHP в 2022 году — статья-прогноз от @hatman. Аргументы за и против, анализ рынка и факты из жизни языка.

PHP — я бы купил это за доллар — еще одна статья @hatman о том, окупится ли инвестиция времени в PHP. 

Отказоустойчивое взаимодействие с внешними сервисами — @AndreyEgoshin о синхронном и асинхронном взаимодействии, их плюсах и минусах и о том, как же повысить отказоустойчивость.

PHP Generics. Right here. Right now — о поддержке дженериков в PHP, а также вариант реализации от @mrsuh.

Кстати, на днях дженерики были замечены в питерском PHP-чате:

Чистая архитектура на PHP. Как её измерять и контролировать? @vchetkov цитирует книгу Роберта Мартина «Чистая архитектура» и рассказывает про разработку собственного инструмента.

Мифы об асинхронном PHP: он не по-настоящему асинхронный@seregazhuk о том, действительно ли однопоточный PHP может выполняться асинхронно или нас обманывают.

Создаём игру на KPHP с помощью FFI и SDL — первая в мире графическая игра на KPHP в деталях от @quasilyte и @troy4eg.

Зачем нужен static при объявлении анонимных функций? — ответ в небольшой статье @genkovich.

Сравнение php-fpm, nginx-unit и laravel-octane — много графиков и параметров конфигурации от @straykerwl.

Перечисления в PHP 8.1 — перевод @s_panteleev статьи Brent Roose с подробным разбором енамов. 

Паспортный контроль, или Как сжать полтора гигабайта до 42 мегабайт — увлекательный разбор тестового на позицию PHP-разработчика.

PHP-Compiler, или ныряем в кроличью нору FFI — перевод @SamDark статьи Anthony Ferrara.

Двоичные и побитовые операции в PHP — перевод @AloneCoder статьи Níckolas Da Silva.

Статьи на английском

What’s new in PHP 8.1 — статья Brent Roose о релизе 8.1. А вот версия на русском. 

PHP 8.1: What’s New and Changed — и еще один обзор на релиз на PHP.Watch.

How opcache works — статья Никиты Попова про расширение для PHP, которое ускоряет работу за счёт кэширования опкодов. А вот выпуск @PQR в Пятиминутка PHP с кратким пересказом статьи. 

Type variance in PHP — Никита Попов об особенностях системы типов в PHP.

Early binding in PHP — и еще одна статья Никиты про ранее связывание в PHP. 

The New Life of PHP – The PHP Foundation — статья @pronskiy о запуске фонда в поддержку PHP.

На лендинге https://phpcommunity.ru/2021-php также собран список библиотек / пакетов и инструментов, на которые советуют обратить внимание.

Читайте так же:

  • Совфед одобрил закон о «приземлении» иностранных IT-компанийСовфед одобрил закон о «приземлении» иностранных IT-компаний Совет Федерации одобрил на последнем в весенней сессии заседании закон. Обязывающий иностранные крупные IT-компании создавать свои представительства в России. Эта обязанность коснется компаний. У которых более 500 тысяч российских пользователей. Такие компании для работы в России теперь […]
  • Как я искал вбросы на московских выборах и что-то нашелКак я искал вбросы на московских выборах и что-то нашел Посмотрев видео Анастасии Брюхановой мне очень захотелось найти еще какие то подтверждения наличию вбросов. И я стал думать, что бы сделал бы я сам, если бы мне нужно было сделать вброс. Ну, я бы составил список людей, от которых шли фейковые голоса, сделал бы так, что бы они попали в […]
  • Переезд сайта: как не потерять позицииПереезд сайта: как не потерять позиции Описание Переезд сайта: как не потерять позиции - вебинар с Ильей ГорбачевымВебинар пройдет  27 мая 2021 года в 15-00   16-00Ссылка для отправки сайта- https://seoquick.ru/webinar/pereezd-sajta-kak-ne-poteryat-pozicii/Ссылка на […]
  • Робот-газонокосилка, часть 3. Сегментация травы нейросетьюРобот-газонокосилка, часть 3. Сегментация травы нейросетью В этой части мы научим газонокосилку отличать скошенную траву от нескошенной с помощью нейросети. А также определять препятствия, такие как бетонные дорожки, что было невозможно только датчиком расстояния в предыдущей части.Но сначала попробуем определять зеленый цвет травы с помощью […]