Еще один блог

Как отличить нормальную книгу по программированию на PHP от туфты.

Разработка
31.01.2018
5253
0

Последние 8 лет я программирую исключительно на PHP. За это время я видел много книг по программированию на этом языке и мне есть что рассказать о качестве этих книг.

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

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

Низкое качество книг.

Большинство книг о программировании для веб и на PHP в частности полная туфта. Я не знаю, какое слово еще подобрать, чтобы рассказать о всей ущербности этих книг. Глобальные переменные, доступ к свойствам без проверки на их наличие, непонимание разницы между isset и array_key_exists, запросы с SQL-инъекциями и прочее прочее есть в большинстве книг. А и еще глобальные переменные. Как же без них в 2018 году?

Очень часто в книгах можно увидеть код вида:

Привет, меня зовут $_GET['name'];

Беда абстрактного примера выше в том, что мы пытаемся получить значение name из глобального массива $_GET, даже не проверив, есть ли там это значение или нет. Это крайне ненормальная практика программирования и при показе всех ошибок у нас по-любому будет E_NOTICE. Но кто в книгах расскажет, что писать код нужно только в режиме error_reporting(E_ALL)? Никто.

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

Выпускаются книги о версиях PHP, которых не существуют

Когда книгу начинают писать, не факт, что версия PHP о которой пишут в книге выйдет. Пример - PHP 6. В магазине "Читай-Город" я видел книгу о PHP 5/6 от 2009 года (!!!)

Но версия PHP 6 никогда не выходила. Разработчики PHP долго ее делали, пытались выпустить, но в итоге пропустили и сделали версию PHP 7.0. Но кого это волнует? 

Видимо книга писалась параллельно разработке языка и вышла в тираж раньше, чем команда PHP объявила о переносе PHP 6 на PHP 7. Я еще встречал такие приколы, что сейчас 2017 год, осень, а в книге стоит уже 2018 год. Чудеса, да и только.

Кстати, почитать о том, почему PHP 6 не вышел можно в этой статье 2012 года:  PHP 6 не будет, не осилили

Книги с плохим PHP кодом и SQL-инъекциями

Пример такой книги: PHP, MySQL, javascript, CSS и HTML5. В этой книге плохо всё, начиная от синтаксиса PHP, заканчивая SQL запросами с SQL-инъекциями.

В книге можнно найти запросы вида:

$query = "SELECT * FROM messages WHERE recip='$view' ORDER BY time DESC"; 
$result = queryMysql($query); 
$num = $result->num_rows;

Здесь есть SQL-инъекция и крайне странный синтаксис PHP кода. Функции queryMysql в PHP нет и судя по коду, здесь не используется PDO, который является стандартом для работы с базами данных.

Как отличить хорошую книгу о PHP от плохой?

Все предельно просто. Хороших книг о PHP на русском языке практически нет. Есть одна книга, которую стоит почитать (о ней ниже), но это больше исключение из правил. 

Обычно, в плохих книгах рассказывается сразу о нескольких технологиях. К примеру, о HTML, CSS, JS, PHP, MySQL. Нельзя в 600 страниц рассказать о всех аспектах языков. Книга должна рассказывать о чем то конкретном, о HTML, о JavaSscript или PHP.

Читайте отзывы о книгах на профессиональных ресурсах, вроде хабрахабр. Очень часто издательство Питер публикует анонсы книг, а под этими постами можно найти комментарии. К примеру, о книге PHP, MySQL, javascript, CSS и HTML5 комментарии не очень положительные, а вот отзывы на том же OZON больше положительные:

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

Что почитать по PHP в 2018 году?

Читайте официальную документацию. Официальная документация покрывает 100% возможностей PHP. Читайте вот эту книгу:

В книге на профессиональном уровне рассказывается про PHP и паттерны проектирования. Рекомендую всем PHP разработчикам.

Также есть отличный сайт по PHP:

http://phptherightway.ru/

Рассказывающий о современном PHP. На этом сайте рассказывается о Composer, PSR, XSS, CSRF. Вы не найдете информации об этих технологиях в книгах! По крайней мере я таких книг не встречал. Если вы знаете примеры таких книг, напишите в комментариях.

Читайте исходные коды фреймворков. Очень полезно. Читайте книги по разработке на Java. Вообще, полезно знать Java на минимальном уровне, так как это строгий язык и он научит вас правильно писать код.

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

Нет комментариев