Что смотрели и читали по 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 также собран список библиотек / пакетов и инструментов, на которые советуют обратить внимание.