Computer Science
ada_king
- 69 книг
Это бета-версия LiveLib. Сейчас доступна часть функций, остальные из основной версии будут добавляться постепенно.

Ваша оценка
Ваша оценка
Данную книгу я начал читать в отпуске, чтобы узнать для себя что-то новое о великолепном языке программирования - «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.

Не моё дело, но переводил кандидат физ-мат наук, и перевёл как и все заакадемированные люди академически очень, поэтому чтение иногда раздражает. В целом, очень хорошее руководство. Класссика жанра.

Как только начнете мыслить в категориях объектов, то сможете воспользоваться опытом других программистов, добытым ценой больших усилий. Вы сможете находить и внедрять шаблоны, разработанные не только для PHP, но и для Smalltalk, C++, C# или Java.

Инкапсуляция способствует разделению, которое, в свою очередь, способствует повторному использованию. Самодостаточные компоненты, которые осуществляют коммуникации с более широкими системами только через их общедоступные интерфейсы, как правило, можно перемещать из одной системы в другую и использовать без изменений.

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




















Другие издания


