5 заблуждений о разработке на PHP

Чем популярнее технология, тем больше домыслов вокруг нее. Мы собрали пять мифов о программировании на PHP.

На PHP легко писать код

Этот язык неспроста считается одним из самых гибких. PHP предоставляет большой спектр инструментов и огромное количество вариантов решения любой задачи. В нем нет статической типизации, и каждой переменной можно присвоить любое значение. Переменную можно взять буквально из воздуха и начать использовать в программе. В языке есть динамические массивы — их не нужно объявлять заранее. Они автоматически расширяются: при добавлении нового элемента происходит выделение памяти. Типизированный и нетипизированный массивы в PHP — это одно и то же, то есть разработчику не нужно заранее определять их вид, допустимы даже смешанные варианты. Например:

$array = array(
1 => "a",
"1" => "b",
1.5 => "c",
true => "d",
);

Синтаксис PHP позволяет много вольностей, из-за чего появилось мнение, что на нем легко писать.

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

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

Не стоит путать два понятия: легко и быстро — это совершенно разные вещи.

Поэтому в работе над большими проектами с PHP нужно быть крайне внимательным. Можно совершить ошибку, которую будет очень сложно найти. Несмотря на это, его используют для высоконагруженных проектов: программировать на PHP гораздо быстрее, чем при помощи статических языков. Заметьте, что «разрабатывать быстро» — не то же самое, что и «легко».

PHP годится только для сайтов-визиток

Несмотря на более чем 20-летнюю историю активного развития, даже сегодня многие считают его неполноценным языком программирования. До сих пор в умах некоторых разработчиков живет миф, что на PHP делают только простые одностраничные сайты и «визитки».

Популярность языка PHP в индексе Tiobe

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

  • «Фейсбук»;
  • «ВКонтакте»;
  • «Авито»;
  • Mail.ru;
  • Yahoo!;
  • Wikipedia;
  • BlaBlaCar;
  • TED.

Благодаря нынешнему развитию языка и его фреймворков можно реализовать интересные разноплановые проекты. Написанные на нем небольшие сайты ширились и постепенно выросли в огромные сложные системы.

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

Разумеется, enterprise-решений реализовать с помощью PHP не получится. Он не подходит и для задач по анализу текста, которые решают с помощью C# — PHP куда медленнее работает с текстом. Но таких программ или, например, проектов по машинному обучению не много. Большинство решений — это передача данных от клиента в базу, и для них PHP отлично подходит.

ООП в PHP нет и применять паттерны бессмысленно

Это миф, корни которого растут еще из PHP 4 и PHP 5.3. В этих версиях действительно не было целостного ООП, только функциональная разработка. И многие специалисты в силу предрассудков посчитали, что PHP — это скриптовый язык, предназначенный исключительно для отображения информации и не более того. Заблуждение о том, что объектно-ориентированное программирование не используют в PHP, до сих пор живо.

Пять принципов проектирования в объектно-ориентированном программировании

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

Из-за гибкости PHP применять паттерны при разработке на нем еще важнее, чем в С# или Java, иначе в коде будет попросту не разобраться.

За счет возможностей и свободы программирования в PHP очень велик соблазн не применять эти паттерны: ведь в них нужно разбираться, это трудно и долго. Многим новичкам кажется: зачем лишние сложности, если можно передавать разные типы в метод одним параметром или строить конструкции с помощью if?

Но на самом деле построение такого кода без SOLID и ООП-подходов — это утопия. Его сможет поддерживать только тот программист, который его написал, но, скорее всего, только первые полгода. Потом он забудет о какой-то части кодовой базы и устранять баги в программе станет невероятно сложно.

PHP идеален для разработки
веб-приложений

Перейдем к обратной стороне медали — чрезмерное почитание языка PHP. Его поклонники считают, что он лучший для всего. Но, к примеру, тот же С# производит обработку строки в 60 раз быстрее. И если требуется написать программу с функционалом «антиплагиата», никто не станет использовать PHP — иначе она будет медленной и неконкурентной. Если нужно создать проект по распознаванию лиц, естественно, PHP тоже не подойдет — для этого есть Python.

PHP — не серебряная пуля в веб-разработке. Например, NASA в проектах использует Node.js. Несмотря на то что Facebook написан на PHP, отдельные модули в нем решены на Python. Поэтому PHP хорош своей нишей: он используется для получения данных из базы, небольшой обработки, сортировки и возвращения пользователю.

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

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

Разработчик PHP должен уметь верстать

Еще один миф, пришедший «из древности». Раньше PHP-разработчики действительно были универсалами, которые и сайт сверстают, и серверную часть напишут, и SEO настроят. Но, как показывает практика, если ты хочешь быть лучшим во всем, то будешь во всем средним. Специалист по одному конкретному направлению разработки будет превосходить fullstack-программиста в знаниях и опыте.

PHP используется для сложных серверных решений. Возьмем сайт школы обучения английскому языку Skyeng — он написан на PHP, и это большой высоконагруженный проект. Технический специалист сайта должен знать много нюансов PHP, разбираться в backend, в работе базы данных. Но чисто физически он не сможет на хорошем уровне владеть инструментами frontend.

Fullstack-разработчик будет средним по квалификации и в серверной, и в клиентской части сайта. Если проекту нужен программист серверной части, не ждите, что он будет хорошо знать frontend, и наоборот.

Не нужно смотреть на то, что было актуально 10 лет назад. Предъявлять к современным специалистам устаревшие требования как минимум необоснованно.

Заключение

Мы разобрали пять частых заблуждений, связанных с языком PHP. Если хотите знать всю правду о программировании backend-части веб-приложений, добро пожаловать на курс «PHP-разработчик». В ходе обучения вы овладеете необходимыми навыками для работы в IT-компании или на себя.

Курс «PHP-разработчик»
Обширная программа для изучения PHP, состоящая из 4 курсов. Поможет с нуля овладеть популярным языком программирования, устроиться в IT-компанию вашей мечты или стать независимым разработчиком.
  • Живая обратная связь с преподавателями
  • Неограниченный доступ к материалам курса
  • Стажировка в компаниях-партнёрах
  • Дипломный проект от реального заказчика
  • Гарантия трудоустройства в компании-партнёры для выпускников, защитивших дипломные работы
Хочешь получать крутые статьи по программированию?
Подпишись на рассылку Skillbox