Как отличить нормальную книгу по программированию на PHP от туфты.
Последние 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:
Рассказывающий о современном PHP. На этом сайте рассказывается о Composer, PSR, XSS, CSRF. Вы не найдете информации об этих технологиях в книгах! По крайней мере я таких книг не встречал. Если вы знаете примеры таких книг, напишите в комментариях.
Читайте исходные коды фреймворков. Очень полезно. Читайте книги по разработке на Java. Вообще, полезно знать Java на минимальном уровне, так как это строгий язык и он научит вас правильно писать код.
Кстати говоря, читать книги, которые я привел выше можно. Но делать это нужно только в том случае, если вы параллельно читаете официальную документацию по PHP, так как некоторые вещи в книгах и в документации могут не совпадать.