PHP 8 Programming Tips, Tricks and Best Practices — обзор книги и рекомендации

в 11:03, , рубрики: jit, php, xdebug, легаси, Профессиональная литература

Буквально месяц тому назад вышла книга: "PHP 8 Programming Tips, Tricks and Best Practices" от Дуг Бирера (Doug Bierer). В этой книге автор делает обзор php 8.0, объясняет его нововведения и описывает потенциальные ошибки перехода со старых версий на php 8.0. 

В этом обзоре я кратко пройдусь по содержании книги и выскажу свое мнение об плюсах и минусах книги, а так же оставлю рекомендации для кого подойдет эта книга.

PHP 8 Programming Tips, Tricks and Best Practices — обзор книги и рекомендации - 1

Об авторе

Дуг Бирер - владелец и СТО unlikelysource.com, которая занимается разработкой коммерческих сайтов, выпуском книг по php/MongoDB/MySQL, а также проведению тренингов для разработчиков и компаний. На счету Дуга несколько книг php и mongoDB. Также он активно сотрудничает с O'Reilly Media в качестве автора видеокурсов. Другими словами, Дуг - профессиональный автор материалов по обучению программированию, и это действительно видно по его книгам.

Кратко о сути книги 

По своей сути книга является самой большой и детальной статьей по нововведениях в PHP 8.0 по сравнению с PHP 7.4. Вот такая классическая статья, как публикуют на хабре после релиза новой версии языка, только раз в 100 больше и детальней. 

Обзор содержания книги

В этой книге автор очень детально рассказывает, с объяснениями, почему было сделано то или иное изменение в PHP 8.0 по сравнению с прошлыми версиями. Объясняет, как нужно переводить кодовую базу своего проекта на PHP 8.0, описывает, что нужно делать в случае возникновения ошибок несовместимости. А так же дает рекомендации, как юзать фишки PHP 8.0, чтобы улучшить перфоманс вашего приложения. 

Что вы узнаете 

  1. Получите полное представление о новых объектно-ориентированных функциях PHP 8.

  2. Откройте для себя новые усовершенствования процедурного программирования PHP 8.

  3. Понять улучшения в обработке ошибок в PHP 8

  4. Выявление потенциальных проблем с обратной совместимостью.

  5. Избегайте ловушек из-за изменений в расширениях PHP

  6. Узнайте, какие функции устарели и / или удалены в PHP 8.

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

Из интересного, автор приводит достаточно много схем и иллюстрацией, где показывает изменения, которые случились в новой версии PHP. Это помогает воспринимать.

PHP 8 Programming Tips, Tricks and Best Practices — обзор книги и рекомендации - 2
PHP 8 Programming Tips, Tricks and Best Practices — обзор книги и рекомендации - 3

Плюсы книги:

  • Хорошие примеры в коде по использованию фич php 8.0;

  • Автор бережно приводит ссылки на информацию, если читатель хочет углубиться в теме и посмотреть официальный сайт php;

  • Есть решения на популярные проблемы с новыми фичами;

  • Есть интересный пример разработки экстеншена для php через FFI;

  • Затрагивает проблему перевода кодовой базы на новую версию, включая обзор статических анализаторов кода;

  • Дает сравнение работы JIT в PHP с PyPI (из Python) и приводит аргументы, почему в PHP сделано лучше;

  • Достаточно хороший обзор асинхрона в PHP 8.0 на базе ReactPHP и Swoole и Файберов из PHP 8.1

Минусы книги:

  • Огромный филлер в виде практик по работе с Docker;

  • Это все еще книга, которую фактически можно ужать в небольшую обзорную статью на Хабре;

  • Местами информация уж слишком детальная и по сути бесполезная, ибо столкнется с теми проблемами, что решает автор, фактически никто.

Итоговое мнение 

Перед началом чтения книги мне даже стало интересно, как автор сможет растянуть небольшую статью с обзором новых фич в PHP 8.0 на книгу в 500 страниц. И самое удивительное, у него это получилось сделать, причем сделал он это достаточно хорошо и элегантно. При чтении не проседает темп и не возникает вопросов, что эта информация тут делает. Все лаконично и по делу.

Глубина анализа нововведений в PHP 8.0 поистине эпичная. Автор описывает, как из-за изменений в php 8.0, может начать взрываться инфраструктурный код, экстеншены php, логеры ошибок и тулзы по работе с php (в частности XDebug). То, насколько глубоко копает автор - приятно читать и понимать, что кто-то может настолько заморачиваться.

Однако, я считаю, что в этой книге мало практического  смысла. Все основные нововведения можно найти в небольших обзорных статьях, а потенциальные проблемные места, которые рассматривает автор - слишком экзотичны и маловероятны в продакшен коде.

Если у вас зрелый проект, где есть хорошее покрытие тестами и внешняя автоматизация от QA-команды, то все проблемные места c php 8.0 можно достаточно быстро выловить. Нет никакой необходимости читать подобные книги для перевода проекта на PHP 8.0. А если проект молодой, то там тем более не будет проблем с какими-то легаси компонентами.

Поэтому так - книга крута в плане того, насколько глубоко можно проанализировать какую-то область, но практической пользы в этом мало.

Интересное замечание

Из приятного дополнения, автор в книге раз 5 приводит ссылку на Dmitry Stogov (https://github.com/dstogov) по тем или иным проектам и вопросам.

Автор: Сергей Москва

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js