В статье рассказывается:
- Основы PHP и Git
- Composer и базы данных
- Оптимизация рабочего процесса
- А как же html?
- Ускоряем работу проекта
- Тестирование и фреймворки
- Мониторинг и профилирование
-
Пройди тест и узнай, какая сфера тебе подходит:
айти, дизайн или маркетинг.Бесплатно от Geekbrains
В сфере ИТ множество инструментов для того, чтобы упростить работу программиста и сделать её эффективнее, а конечный продукт — производительнее. В начале освоения PHP сложно сориентироваться, в каком направлении двигаться и какие технологии изучать в первую очередь.
На помощь в таких ситуациях приходят путеводные карты (roadmaps) — наглядные последовательности, отвечающие на вопрос «что учить дальше?». В этой статье мы разберём, во что вам стоит инвестировать ваше время, чтобы стать востребованным PHP Backend разработчиком.
Основы PHP и Git
Выучить язык программирования — это только начало. Но и здесь важно сделать правильные первые шаги. Погружаясь в PHP не старайтесь постичь весь его инструментарий сразу. Сделайте фокус на том, что предстоит использовать 90% времени, и обязательно закрепляйте знания практикой.
входят в ТОП-30 с доходом
от 210 000 ₽/мес
Скачивайте и используйте уже сегодня:
Топ-30 самых востребованных и высокооплачиваемых профессий 2023
Поможет разобраться в актуальной ситуации на рынке труда
Подборка 50+ бесплатных нейросетей для упрощения работы и увеличения заработка
Только проверенные нейросети с доступом из России и свободным использованием
ТОП-100 площадок для поиска работы от GeekBrains
Список проверенных ресурсов реальных вакансий с доходом от 210 000 ₽
После знакомства с PHP стоит обратить внимание на Git. С этим инструментом вам предстоит работать ежедневно вне зависимости от языка программирования. Git — это и инструмент командной работы, и способ сохранить промежуточный результат работы для вас самих. Подробнее о том, зачем он нужен и как его применять — в нашей статье про Git.
Composer и базы данных
Использование готовых библиотек — прекрасное решение в большинстве ситуаций. Особенно, если они заслужили доверие комьюнити. Чтобы делать это эффективно, обязательно нужно изучить Composer — менеджер пакетов, который упростит подключение и обновление внешних компонентов.
Мы добрались до баз данных. На рынке так много решений, что их сложно даже просто перечислить, ни одну не упустив. Однако есть явные лидеры, на которых я советую сделать акцент. В области реляционных баз данных — PostgresSQL, в области NoSQL — MongoDB. PDO позволит понять, как происходит взаимодействие с базой данных из PHP, а различные ORM — повысить эффективность и безопасность этого взаимодействия.
Оптимизация рабочего процесса
Скорость для программиста — один из решающих факторов. И скорость отладки имеет на нёе прямое влияние. Существуют два решения, которые избавят от необходимости расставлять по коду echo и var_dump, но я рекомендую остановиться на наиболее распространенном — xDebug. Подключить и настроить его несложно, но пользу он будет приносить постоянно.
А вот качество кода и его стиль могут казаться вещами субъективными, но командной работе без них никуда. В стандарте PSR-12 описаны рекомендации по оформлению кода. Они не единственные существующие, но определённо самые распространенные. Соблюдать их поможет CodeSniffer. А выработать привычку писать чистый код можно с помощью линтеров Psalm, Phan или PHPStan. Не нужно учить все — остановитесь на том, что больше нравится. В моём случае это Psalm.
А как же html?
Full-stack-разработчики PHP встречаются всё реже и реже. Фронты работ давно разделились, и PHP занял почетное место в backend. Поэтому для нас изучение HTML не необходимость, а лишь оптимизация. Но что действительно важно — понимать, как строить взаимодействие с frontend-частью. В этой области для нас важно знание принципов REST и JSON API.
Скачать файлБраузер заменяется на Postman — прекрасный инструмент отладки API. А привычка документировать интерфейсы с помощью OpenAPI или Blueprint избавит от постоянных расспросов от коллег и даст +10 к карме.
Ускоряем работу проекта
Высокая скорость отклика проекта — заслуга не только серверов, но и качественного кода. Иногда для её повышения достаточно сократить количество обращений в базу данных или запомнить результат тяжелых вычислений. Помочь нам в этом могут механизмы кэширования. В стандартах PSR-6 и PSR-16 вы найдете интерфейсы для их организации. А конечный механизм кэширования выбирайте в зависимости от проекта.
Другой распространенный метод ускорения проекта — выполнение обработок в фоне. Здесь есть две категории решений: планировщики задач (Crontab) — пригодятся для выполнения рассылок, пересчетов тарифов и других регулярных задач. А брокеры сообщений позволят увести тяжелые операции в фон и проконтролировать их выполнение, не замедляя ответ пользователю.
Тестирование и фреймворки
Далеко не все команды пишут тесты к коду. Это решение может приниматься на основании очень многих факторов. Но понимание того, как писать тестируемый код неоспоримо важно. Получить знания в этой области поможет практика с PHPUnit. А если хотите попробовать другие подходы — обратите внимание на Codeception.
Когда множество инструментов изучено, пришло время объединить их в целостную слаженную систему. Чтобы не изобретать велосипед, уделите внимание изучению одного из популярных фреймворков. В них вы найдете лучшие современные практики, а также приучитесь к качественной архитектуре. Выбор, предлагаю сделать из двух самых популярных вариантов:
- Symfony — строгий и требовательный, используемый чаще всего в высоко-нагруженных приложениях.
- Laravel — наиболее распространенный и востребованный на сегодняшний день.
Мониторинг и профилирование
Когда ваш проект запущен, важно контролировать его «здоровье». Справляются сервера? Нет ли DDoS-атаки? Не валится ли ошибка? Мониторинг — простой и полезный инструмент, который даст вам ответы на все эти вопросы. Начать стоит с логирования.
на курсы от GeekBrains до 22 декабря
В стандарте PSR-3 описан интерфейс, а Monolog избавит от необходимости писать свой сервис ведения журнала. Sentry поможет работать с ошибками, Grafana построит красивые графики, а Graylog или ELK упростят поиск по логам и расследование инцидентов.
Однако есть случаи, которые простым мониторингом не решить. Например, если приложение в определенных участках аномально медленно работает. Такие инциденты эффективнее всего решать с помощью инструментов профилирования. Использовать вы их будете не так часто, но важно помнить об их наличии.
Безусловно, мир PHP не ограничен перечисленными инструментами и, после овладения ими, предстоит узнать ещё много нового. Но помните: в начале пути стоит уделить основное внимание главным и наиболее распространенным вещам, которые вы встретите в 80-90% команд. Все перечисленные программы и подходы выбраны именно по этому критерию.