Найти тему
GeekBrains

Путь PHP-разработчика

Оглавление

Что и в каком порядке изучить начинающему PHP-разработчику? Узнаете из пошагового плана от преподавателя PHP Ильи Зобенько.

В сфере ИТ множество инструментов для того, чтобы упростить работу программиста и сделать её эффективнее, а конечный продукт — производительнее. В начале освоения PHP сложно сориентироваться, в каком направлении двигаться и какие технологии изучать в первую очередь. На помощь в таких ситуациях приходят путеводные карты (roadmaps) — наглядные последовательности, отвечающие на вопрос «что учить дальше?». В этой статье мы разберём, во что вам стоит инвестировать ваше время, чтобы стать востребованным PHP Backend разработчиком.

Основы PHP и Git

Выучить язык программирования — это только начало. Но и здесь важно сделать правильные первые шаги. Погружаясь в PHP не старайтесь постичь весь его инструментарий сразу. Сделайте фокус на том, что предстоит использовать 90% времени, и обязательно закрепляйте знания практикой.

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

-2

Composer и базы данных

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

-3

Мы добрались до баз данных. На рынке так много решений, что их сложно даже просто перечислить, ни одну не упустив. Однако есть явные лидеры, на которых я советую сделать акцент. В области реляционных баз данных — PostgresSQL, в области NoSQL — MongoDBPDO позволит понять, как происходит взаимодействие с базой данных из PHP, а различные ORM — повысить эффективность и безопасность этого взаимодействия.

Оптимизация рабочего процесса

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

-4

А вот качество кода и его стиль могут казаться вещами субъективными, но командной работе без них никуда. В стандарте PSR-12 описаны рекомендации по оформлению кода. Они не единственные существующие, но определённо самые распространенные. Соблюдать их поможет CodeSniffer. А выработать привычку писать чистый код можно с помощью линтеров Psalm, Phan или PHPStan. Не нужно учить все — остановитесь на том, что больше нравится. В моём случае это Psalm.

А как же html?

Full-stack-разработчики PHP встречаются всё реже и реже. Фронты работ давно разделились, и PHP занял почетное место в backend. Поэтому для нас изучение HTML не необходимость, а лишь оптимизация. Но что действительно важно — понимать, как строить взаимодействие с frontend-частью. В этой области для нас важно знание принципов REST и JSON API. Браузер заменяется на Postman — прекрасный инструмент отладки API. А привычка документировать интерфейсы с помощью OpenAPI или Blueprint избавит от постоянных расспросов от коллег и даст +10 к карме.

-5

Ускоряем работу проекта

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

-6

Другой распространенный метод ускорения проекта — выполнение обработок в фоне. Здесь есть две категории решений: планировщики задач (Crontab) — пригодятся для выполнения рассылок, пересчетов тарифов и других регулярных задач. А брокеры сообщений позволят увести тяжелые операции в фон и проконтролировать их выполнение, не замедляя ответ пользователю.

Тестирование и фреймворки

Далеко не все команды пишут тесты к коду. Это решение может приниматься на основании очень многих факторов. Но понимание того, как писать тестируемый код неоспоримо важно. Получить знания в этой области поможет практика с PHPUnit. А если хотите попробовать другие подходы — обратите внимание на Codeception.

-7

Когда множество инструментов изучено, пришло время объединить их в целостную слаженную систему. Чтобы не изобретать велосипед, уделите внимание изучению одного из популярных фреймворков. В них вы найдете лучшие современные практики, а также приучитесь к качественной архитектуре. Выбор, предлагаю сделать из двух самых популярных вариантов:

  • Symfony — строгий и требовательный, используемый чаще всего в высоко-нагруженных приложениях.
  • Laravel — наиболее распространенный и востребованный на сегодняшний день.

Мониторинг и профилирование

Когда ваш проект запущен, важно контролировать его «здоровье». Справляются сервера? Нет ли DDoS-атаки? Не валится ли ошибка? Мониторинг — простой и полезный инструмент, который даст вам ответы на все эти вопросы. Начать стоит с логирования. В стандарте PSR-3 описан интерфейс, а Monolog избавит от необходимости писать свой сервис ведения журнала. Sentry поможет работать с ошибками, Grafana построит красивые графики, а Graylogили ELK упростят поиск по логам и расследование инцидентов.

-8

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

Безусловно, мир PHP не ограничен перечисленными инструментами и, после овладения ими, предстоит узнать ещё много нового. Но помните: в начале пути стоит уделить основное внимание главным и наиболее распространенным вещам, которые вы встретите в 80-90% команд. Все перечисленные программы и подходы выбраны именно по этому критерию. Сохраняйте roadmap, и сверяйтесь по нему в вашем образовательном приключении.

Чтобы подробнее узнать о языках программирования и выбрать тот, который подходит именно вам, приходите на наш курс «Разработчик». Вы начнёте с самых азов, изучите основы программирования и основные концепции компьютерных наук, а затем сможете прокачаться в выбранной специализации.