На этом языке работают сервера Вконтакте и Фейсбука

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

Расскажите немного о себе. Как и почему вы выбрали PHP?

Случайно. Во время учебы на 3-4 курсах я начал искать работу. Поиск шел тяжело, я уже даже отчаялся что-то найти, но тут на мое резюме пришел отклик из веб-студии, которой требовался junior PHP-программист. Мне дали задание, над которым я прокорпел все выходные, даже чуть больше. Надо сразу оговориться, что к тому моменту с PHP я сталкивался только на лабораторных работах в ВУЗе. Однако высланный мной результат работодателя устроил — меня приняли. В итоге, в студии я проработал 2 года: занимался разработкой сайтов и их серверных частей.

Вот так я попал в эту сферу, о чем нисколько не жалею. Сейчас это динамически развивающаяся среда, очень востребованная. Так что знания в области PHP пригодятся всегда.

А над чем работаете сегодня?

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

Что такое язык PHP вообще и современный PHP в частности? Насколько активно он развивается?

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

Что до динамики развития, то она, действительно, очень высокая. Сейчас уже вышел PHP7. Если смотреть на его историю, то изначально, это был просто скриптовый язык для встраивания некоторых динамических данных в HTML-разметку. Затем, по мере развития, в него начали внедрятся зачатки ООП (это уже видно в версии PHP4) которое широко применяется в С++ и Java. Сейчас на «календаре» эра PHP5 — это актуальная и самая распространенная версия, где ООП стандарт де факто. На подходе внедрение PHP7, где реализованы все самые современные веяния в области программирования, значительно улучшен показатель производительности и т.д.

Выходит, PHP универсален, эдакий «английский» в сфере программирования? А можете назвать ограничения для этого языка?

Любой компьютерный язык — это инструмент, решающий конкретные задачи. И PHP не исключение — он должен применяться там, где будет максимально эффективен. Альтернативы, конечно, есть — это другие серверные языки типа Python, да та же Java. Если же говорить о недостатках, то «узкими» местами я бы назвал распараллеливание, т.е. решение нескольких задач одновременно. Да и по производительности есть языки, работающие быстрее, С++, например. Это связано с тем, что PHP — интерпретированный язык, компилляции, ускоряющей работу, у него нет. Однако и задачи, где эти моменты критичны, встречаются не часто, поэтому в большинстве случаев PHP прекрасно справляется.

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

На первых порах будет достаточно собственно PHP и его конструкций, а также умения их применять. Тут даже ООП не потребуется: для разработки каких-то простейших сайтов и приложений этого вполне хватит. Как раз на веб-разработке можно отточить все навыки, применить на практике знания, которые были получены на обучении. Для дальнейшего развития и роста знаний чистого PHP уже недостаточно. Современные приложения разрабатываются на различного рода PHP Framework или специальных инструментах, которые существенно ускоряют и упрощают разработку. Соответственно, дальнейший рост специалиста связан с изучением и применением этих самых Framework’ов. На следующей ступени можно начать разрабатывать архитектуру, т.е. выстраивать решения под конкретные задачи заказчика. Здесь уже и знания «каркасов»-фреймфорков будет недостаточно. А дальше — все зависит от разработчика.

Что нужно знать и уметь, чтобы начать изучать PHP?

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

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

Да, Вконтакте изначально писался на PHP. Затем наступил момент, когда производительности языка стало не хватать (я говорил об «узких» местах выше) и специалисты Вконтакта создали свою собственную версию PHP. Она работает в несколько «урезанном» варианте, но за счет этого более производительна и выдерживает все те нагрузки, которые дает большая социальная сеть на сервера. Аналогичное решение есть и у Фейсбука, который тоже был написан на PHP. Там была создана целая виртуальная машина, которая компилирует код, за счет чего он выполняется много быстрее.

Дмитрий, выше вы говорили о Фреймворках в PHP. Могли бы вы рассказать что же это такое чуть более подробно? У всех на слуху Yii, но что это такое, как фреймворк знают немногие. Что это, для чего их используют, где?

Упрощенно PHP фреймфорк — это некоторый программный каркас, написанный PHP. Веб-приложения, созданные с помощью фреймфорков, имеют строго определенную структуру, за счет этого значительно упрощается их разработка и поддержка. Yii — всего лишь один из достаточно большого семейства подобных «каркасов». Среди остальных он выделяется более высокой производительностью, хорошей документацией, большим количеством различных расширений. Все это поспособствовало его широкому применению для создания различного рода веб-приложений. Также, помимо Yii весьма популярны Symfony, Zend и Silex.

Используется ли PHP где-то еще кроме веб? Неужели связка «PHP-сайт-интернет сервер» единственный путь развития?

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

В IT-Академии вы ведете курс PHP, можете рассказать о нем подробнее? Какая подготовка потребуется от слушателя для его успешного прохождения?

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

Относительно содержательной части, то будут последовательно рассмотрены все базовые возможности языка, а также затронуты и более серьезные аспекты, такие как ООП, взаимодействие с БД, использование фреймворков. В качестве бонуса участники курса познакомятся и попробуют начать работать с системой контроля версий GIT, узнают что такое MySql, Apache и научатся их базовой настройке. Другими словами, я постараюсь дать самые разносторонние знания и навыки, которые позволят молодому специалисту быть эффективным и сразу же приступить к работе.

От себя нам остается только напомнить, что старт курса PHP  ожидается в ближайшее время. Также есть возможно пройти курс PHP в онлайн-формате. Компьютер и желание научиться создавать динамичную интернет-среду — вот все что вам потребуется для успешного освоения предложенного материала! Если у Вас возникли вопросы, присылайте их на нашу почту academ@suhorukov.com, или сразу звоните на бесплатный номер +7 (800) 500 15 56.

Успехов и до встречи уже онлайн!