- PVSM.RU - https://www.pvsm.ru -

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

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

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

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

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

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

Поехали.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Автор: Alisa Kruglova

Источник [103]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/php-2/372058

Ссылки в тексте:

[1] phpcommunity.ru: http://phpcommunity.ru

[2] полный список: https://phpcommunity.ru/2021-php#partners

[3] Подробнее: https://phpcommunity.ru/2021-php

[4] 80+ видео и статей : https://habr.com/ru/company/skyeng/blog/544180/

[5] @spasibo_kep: https://www.pvsm.ru/users/spasibo_kep

[6] PHP Point: https://youtu.be/5D337gaVPa4

[7] Skyeng: https://youtu.be/Lkwmawu3Ltc

[8] JIT в PHP 8: Просто о сложном: https://youtu.be/mAPLqPaeygg

[9] доклад: https://youtu.be/-Q3sXSr6eMo

[10] Стрим про трейты: https://youtu.be/xoEPNiMtVps

[11] НЕ ООП ЕДИНЫ! Domain Driven Design на примере холодильника: https://www.youtube.com/watch?v=rkQ3-T82pkU

[12] PHP Russia: https://youtu.be/JMxRtXrrg5k

[13] Skyeng: https://youtu.be/T_0iydEc9mM

[14] PHP Point: https://youtu.be/QSszmWIrRyw

[15] Thesis: https://phprussia.ru/moscow/2021/abstracts/7654

[16] доклад: https://phprussia.ru/moscow/2021/abstracts/6493

[17] про сетевой обмен: https://habr.com/ru/company/oleg-bunin/blog/593297/

[18] версионирование API: https://habr.com/ru/company/superjob/blog/577650/

[19] Открытое собеседование PHP Point #1: https://www.youtube.com/watch?v=FQNd9W3nb3A

[20] PHP и Laravel дайджест: https://youtu.be/6em31j_LrSo

[21] декабрь: https://www.youtube.com/watch?v=fR4YoyHjFwk

[22] Как регистрировать и тестировать shutdown функции: https://youtu.be/5eOHwubukgY

[23] PHP8: новые фишки. Готовимся к Laravel 9: https://youtu.be/kaMhZ_6MIn4

[24] PHP-программист: публичное собеседование: https://youtu.be/8jed0wIQv_A

[25] Как писать хороший код на PHP: https://youtu.be/FnWgtEbQW9c

[26] Принцип подстановки Барбары Лисков геометрическая интерпретация: https://youtu.be/BwuiNEyegTc

[27] статьи: https://habr.com/ru/post/559724/

[28] Как стать PHP-разработчиком с нуля: https://youtu.be/aZe-aYd3gDw

[29] Поиск и устранение утечек памяти в PHP: https://youtu.be/NNMp-97rk9c

[30] Drupal Warmer: автоматизируем прогрев кеша: https://youtu.be/Y1I7zGn6F-w

[31] PHP — зачем его учить, что на нем пишут, зарплаты, фреймворки: https://youtu.be/DzLnwWK_rd0

[32] PHP NN #4: для поклонников Symfony и сочувствующих: https://youtu.be/2iPNz3p5Xiw

[33] Распределенные Workflow на PHP Фреймворки и библиотеки: https://youtu.be/mNsjdTnanA4

[34] Грамотное ООП: организация надёжной бизнес-логики: https://www.youtube.com/watch?v=6tL1XOywgUc

[35] Как 200 строк на Go помогли нам освободить 15 серверов: https://youtu.be/uO268voCGwA

[36] Модульный PHP монолит как альтернатива микросервисной архитектуре: https://youtu.be/xT25xiKqPcI

[37] PHP in 100 Seconds: https://www.youtube.com/watch?v=a7_WFUlFS94

[38] PHP Meetup /Never* use arrays: https://youtu.be/MHl5vpUgNrk

[39] Modern PHP with Rasmus Lerdorf: https://youtu.be/Hc4S74LCXHo

[40] 5 Exciting New Features in PHP 8.1: https://youtu.be/T8QZkpVvDxc

[41] Laravel Diary: Faster Eloquent: Avoid Accessors with Foreach: https://youtu.be/12KCl82L48Y

[42] Dependency Injection Container With & Without Reflection API Autowiring - Full PHP 8 Tutorial: https://youtu.be/78Vpg97rQwE

[43] Exploring Event Sourcing in Laravel (part 1): https://youtu.be/vLd8BGzFeK8

[44] Самые заметные изменения языка php за последние годы: https://habr.com/ru/company/reksoft/blog/593731/

[45] @zm_llill: https://habr.com/ru/users/zm_llill/

[46] PHP дайджесты: https://habr.com/ru/users/pronskiy/posts/

[47] @pronskiy: https://habr.com/ru/users/pronskiy/

[48] июньский: https://habr.com/ru/post/562718/

[49] @SamDark: https://habr.com/ru/users/SamDark/

[50] доклада: https://clck.ru/XX9HB

[51] php8.1 доступен!: https://www.php.net/releases/8.1/ru.php

[52] Потрясающее будущее PHP-стека для карьеры: https://habr.com/ru/post/594607/

[53] @hatman: https://habr.com/ru/users/hatman/

[54] Способы внедрения зависимостей: https://elisdn.ru/blog/148/dependency-injection

[55] История разработки фасетного поиска средствами PHP: https://habr.com/ru/post/595765/

[56] @coh: https://habr.com/ru/users/coh/

[57] @MMgo: https://habr.com/ru/users/MMgo/

[58] докладу: https://youtu.be/-AMjfTQUWCk

[59] Как ManyChat на PHP8 переезжал: https://habr.com/ru/company/manychat/blog/586008/

[60] Модульный PHP монолит: рецепт приготовления: https://habr.com/ru/company/ispring/blog/560074/

[61] @julianikolaeva: https://habr.com/ru/users/julianikolaeva/

[62] Что нового в PHP 8.1: https://habr.com/ru/company/otus/blog/567710/

[63] @MaxRokatansky: https://habr.com/ru/users/MaxRokatansky/

[64] Вышел PHP 8.1: https://habr.com/ru/news/t/591739/

[65] @maybe_elf: https://habr.com/ru/users/maybe_elf/

[66] Зависимости для сущностей и команд: https://elisdn.ru/blog/150/entity-dependencies

[67] @genkovich: https://habr.com/ru/users/genkovich/

[68] Строим систему доменных событий в модульном монолите: https://habr.com/ru/company/ispring/blog/569648/

[69] @ilyashikhaleev: https://habr.com/ru/users/ilyashikhaleev/

[70] Стоит ли учить PHP в 2022 году: https://habr.com/ru/post/596841/

[71] PHP — я бы купил это за доллар: https://habr.com/ru/post/563074/

[72] Отказоустойчивое взаимодействие с внешними сервисами: https://habr.com/ru/company/ispring/blog/559416/

[73] @AndreyEgoshin: https://habr.com/ru/users/AndreyEgoshin/

[74] PHP Generics. Right here. Right now: https://habr.com/ru/post/577750/

[75] @mrsuh: https://habr.com/ru/users/mrsuh/

[76] Чистая архитектура на PHP. Как её измерять и контролировать?: https://habr.com/ru/post/504590/

[77] @vchetkov: https://habr.com/ru/users/vchetkov/

[78] Мифы об асинхронном PHP: он не по-настоящему асинхронный: https://habr.com/ru/post/553098/

[79] @seregazhuk: https://habr.com/ru/users/seregazhuk/

[80] Создаём игру на KPHP с помощью FFI и SDL: https://habr.com/ru/company/vk/blog/581238/

[81] @quasilyte: https://habr.com/ru/users/quasilyte/

[82] @troy4eg: https://github.com/troy4eg

[83] Зачем нужен static при объявлении анонимных функций?: https://habr.com/ru/post/561550/

[84] Сравнение php-fpm, nginx-unit и laravel-octane: https://habr.com/ru/post/588785/

[85] @straykerwl: https://habr.com/ru/users/straykerwl/

[86] Перечисления в PHP 8.1: https://habr.com/ru/post/570508/

[87] @s_panteleev: https://habr.com/ru/users/s_panteleev/

[88] статьи: https://stitcher.io/blog/php-enums

[89] Паспортный контроль, или Как сжать полтора гигабайта до 42 мегабайт : https://habr.com/ru/post/538358/

[90] PHP-Compiler, или ныряем в кроличью нору FFI: https://habr.com/ru/company/oleg-bunin/blog/560788/

[91] статьи: https://blog.ircmaxell.com/2019/04/compilers-ffi.html

[92] Двоичные и побитовые операции в PHP: https://habr.com/ru/company/vk/blog/538052/

[93] @AloneCoder: https://habr.com/ru/users/AloneCoder/

[94] статьи: https://thephp.website/en/issue/bitwise-php/

[95] What's new in PHP 8.1: https://stitcher.io/blog/new-in-php-81

[96] PHP 8.1: What's New and Changed: https://php.watch/versions/8.1

[97] How opcache works: https://www.npopov.com/2021/10/13/How-opcache-works.html

[98] выпуск: https://5minphp.ru/episode93/

[99] @PQR: https://habr.com/ru/users/PQR/

[100] Type variance in PHP: https://www.npopov.com/2021/11/08/Type-variance-in-PHP.html

[101] Early binding in PHP: https://www.npopov.com/2021/10/20/Early-binding-in-PHP.html

[102] The New Life of PHP – The PHP Foundation : https://blog.jetbrains.com/phpstorm/2021/11/the-php-foundation/

[103] Источник: https://habr.com/ru/post/648669/?utm_source=habrahabr&utm_medium=rss&utm_campaign=648669