Больше рецензий

3 сентября 2023 г. 13:53

132

4.5 ООП и PHP

Данную книгу я начал читать в отпуске, чтобы узнать для себя что-то новое о великолепном языке программирования - PHP. Мэтт Зандстра рассказывает об особенностях и нововведениях, появившихся в PHP 5.3. И хотя на текущий момент самой свежей версией интерпретатора является PHP 8.2, это не отменяет полезности большей части информации, приведенной в книге.

Книга рассчитана на средний уровень знаний языка, новичкам ее читать не рекомендую. Автор рассматривает средства языка, которые разработчик может применять, чтобы успешно писать приложения объектно-ориентированным подходом.

Полезным для меня оказалось знакомство с рефлексией (reflection API) в PHP. Данный API предоставляет пользователю набор классов, который позволяет анализировать код (классы, методы, интерфейсы, параметры) прямо в процессе выполнения сценария. Это отличное средство, которое может не раз выручить разработчика, использующего в своем проекте сторонние библиотеки классов.

Еще автор рассматривает основные принципы ООП (инкапсуляция, полиморфизм, наследование, композиция), примеры их использования при написании объектно-ориентированного кода. А уже дальше в книге на этих принципах строятся шаблоны проектирования.

Автором были рассмотрены следующие шаблоны:
1) одиночка;
2) фабричный метод;
3) абстрактная фабрика;
4) прототип;
5) композит;
6) декоратор;
7) фасад;
8) интерпретатор;
9) стратегия;
10) наблюдатель;
11) посетитель;
12) команда;
13) жадная загрузка.

И это не полный список рассмотренных в книге шаблонов!

Ранее я рассматривал многие из этих шаблонов при чтении книги Эрик Фримен, Кэтти Сьерра, Берт Бейтс и др. - Паттерны проектирования . Там они приводились на языке Java. В книге Мэтта Зандстры они приводятся на PHP, что для меня является только плюсом, ведь на работе я пользуюсь именно этим языком программирования.

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

Еще мне понравилось, что помимо теории автор уделил немало внимания практической части. Им был рассмотрен ряд инструментов (программ и утилит), которые могут облегчить жизнь PHP-разработчику:
1) PEAR и Pyrus - хранилища пакетов готового кода, который разработчик может применять в своих проектах, чтобы не изобретать велосипед;
2) phpDocumentor - утилита для автоматической генерации документации к коду;
3) Subversion - система контроля версий;
4) phpUnit - пакет для простого создания тестов, на основе ряда готовых классов;
5) phing - инструмент для построения проектов (на сегодняшний день не очень актуальное средство, ведь построение можно удобно выполнить, используя менеджер зависимостей Composer);
6) CruiseControl - сервер непрерывной интеграции (мы используем на работе Jenkins, аналогичное средство);

Небольшими минусами являются опечатки, встречающиеся в книге и некоторые погрешности перевода.

Моя оценка 4.5/5.