Зарегистрируйтесь для доступа к 15+ бесплатным курсам по программированию с тренажером

Другое Ключевые аспекты веб-разработки на PHP

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

Аутентификация и авторизация

Два термина, которые связаны с идентификацией и выделением прав на выполнение определённых операций. Их реализация есть в любом нетривиальном проекте. И если аутентификация почти целиком построена на сессиях http, то авторизация требует понимания принципов построения списков контроля доступа (ACL). В наиболее продвинутых фреймворках подобная функциональность либо встроена в сам фреймворк, либо существует в виде дополнений, которые если и не покрывают все потребности, то, по крайней мере, дают основу для построения своей системы.

OAuth

Аутентификация с помощью социальных сетей стала почти также распространена, как и аутентификация по паролю. Чисто технически её реализация значительно сложнее, она основана на протоколе oauth2, который включает в себя общение по API. Опять же, с нуля ничего писать не придётся: для работы с OAuth написана не одна библиотека, но это не отменяет необходимости понимать, что творится под капотом.

Валидация

Валидация — проверка данных на соответствие установленным требованиям (ограничениям). Не самая сложная, но крайне важная тема. В веб-фреймворках часто связана с ORM и слоем, работающим с формами. Относится к базовой теме. Как только на сайте появилась хоть одна форма, сразу в дело вступает валидация.

Jobs

Далеко не все операции можно выполнить или следует выполнять во время обращения пользователя к сайту. Некоторые задачи могут потребовать значительного времени: минуты, часы или даже дни. Пользователи столько ждать не будут, они предпочитают оповещение по выполнению. С другой стороны, просто нельзя держать такое долгое соединение с браузером, так как в определённый момент можно исчерпать лимит на входящие соединения (а здесь нужно понимать модели работы веб-серверов и особенности вашего языка и используемую модель работы с IO внутри него).

И тут открывается ящик пандоры. Асинхронный код, системы очередей, подписка на события, фреймворки для их обработки и многое другое. Возможно, вам кажется, что это всё нужно только суперпроектам, но нет. Даже примитивная загрузка картинок с последующей обработкой уже требует использования подобных техник.

Нотификации

Нотификации в виде писем или смс — неотъемлемая часть любого проекта. Тема не такая простая, как может показаться на первый взгляд.

Фронтенд

Практически ни один современный сайт не обходится без динамического фронтенда, а значит в разработку включается немалая часть экосистемы js. Начиная с того, что надо знать сам язык (а он гораздо богаче php в плане выразительных возможностей и фич), заканчивая сборщиками (webpack) и фреймворками (react).

Инфраструктура

Пилить фичи — только полдела. Чтобы начать разрабатывать нужно для начала настроить окружение разработчика, используя Docker Compose. Затем, чтобы было куда выкладываться, нужно настроить продакшен-окружение (то, где будет работать сайт) и в конце концов задеплоить (развернуть) туда сайт.

Современная инфраструктура — тоже код, и её нужно программировать. Вот список самых важных программ, созданных для этого: Ansible, Terraform, Docker.

Эксплуатация

Сайт, находящийся в работе, тоже нуждается в заботе. Проблемы могут прийти из любого места. Закончилось место на диске, произошёл сетевой сбой, произошла ошибка в логике работы, проявляющаяся только при определённых входных данных. Обо всем этом нужно узнавать как можно раньше. Эксплуатация ПО включает в себя такие понятия как мониторинг, алертинг, сбор логов и другие инструменты. Рекомендую начать с DataDog и Rollbar.


Аватары экспертов Хекслета

Остались вопросы? Задайте их в разделе «Обсуждение»

Вам ответят команда поддержки Хекслета или другие студенты.

Ошибки, сложный материал, вопросы >
Нашли опечатку или неточность?

Выделите текст, нажмите ctrl + enter и отправьте его нам. В течение нескольких дней мы исправим ошибку или улучшим формулировку.

Что-то не получается или материал кажется сложным?

Загляните в раздел «Обсуждение»:

  • задайте вопрос. Вы быстрее справитесь с трудностями и прокачаете навык постановки правильных вопросов, что пригодится и в учёбе, и в работе программистом;
  • расскажите о своих впечатлениях. Если курс слишком сложный, подробный отзыв поможет нам сделать его лучше;
  • изучите вопросы других учеников и ответы на них. Это база знаний, которой можно и нужно пользоваться.
Об обучении на Хекслете

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно.

  • 120 курсов, 2000+ часов теории
  • 900 практических заданий в браузере
  • 360 000 студентов
Отправляя форму, вы соглашаетесь c «Политикой конфиденциальности» и «Условиями оказания услуг»

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff
Рекомендуемые программы

С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.

Иконка программы PHP-разработчик
Профессия
Разработка веб-приложений на Laravel
29 сентября 8 месяцев

Есть вопрос или хотите участвовать в обсуждении?

Зарегистрируйтесь или войдите в свой аккаунт

Отправляя форму, вы соглашаетесь c «Политикой конфиденциальности» и «Условиями оказания услуг»