Что такое бэкенд и как он устроен? Краткое руководство

Информация о загрузке и деталях видео Что такое бэкенд и как он устроен? Краткое руководство
Автор:
Александр БуртовойДата публикации:
31.03.2023Просмотров:
6.8KОписание:
Закрытый образовательный клуб для начинающих фронтендеров, который включает в себя образовательные материалы + сообщество: Телеграм-канал про процесс обучения программированию: Данный ролик представляет собой краткое описание бэкенда и его устройства. Бэкенд - это часть веб-приложения, которая отвечает за обработку запросов, обеспечивает взаимодействие между клиентской частью и сервером, а также управляет базой данных. В ролике рассматриваются основные компоненты бэкенда, такие как сервер, база данных, API, микросервисы, инфраструктура, фреймворки и т.д. Данный ролик будет полезен начинающим веб-разработчикам (и фронтенд, и бекенд), которые хотят углубить свои знания в области бэкенда и понять, как работает эта важная часть веб-приложений. Тайм-коды: 0:00 Бэкенд vs фронтенд 0:42 Клиент и сервер 1:09 Языки программирования для бекенда 2:07 Фреймворки 2:40 Менеджеры пакетов 3:11 Базы данных 3:50 Запрос и ответ 4:11 Внутри запроса 4:36 Домен 4:59 Код на беке 5:37 API 6:32 REST 6:43 Инфраструктура 7:29 Балансировщик 7:48 Микросервисы 9:03 Другое
Транскрибация видео
Каждый сайт можно разделить на две части Frontend и Backend.
Frontend это все визуальные элементы, которые вы видите на веб-странице, а Backend это то, что сохраняет ваши данные и управляет ими.
Например, если вы находитесь на сайте ozon.ru, Backend будет хранить истории ваших заказов, хранить ваш профиль, загрузить результаты поиска и многое другое.
В этом видео...
Мы рассмотрим технологии, которые используются для бэкэнда.
А в другом видео мы посмотрим технологии для фронтэнда.
В качестве примера предположим, что мы находимся на сайте Озон.
Мы выбрали несколько товаров и теперь мы готовы сделать заказ.
что произойдет, когда я нажму кнопку «Оформить заказ».
Пойдем по порядку.
Любой компьютер, подключенный к интернету, включая ваш компьютер и мой компьютер, может отправить сообщение через интернет на другой компьютер.
Для упрощения представим, что у Ozone есть компьютер в их офисе, а наш компьютер посылает сообщение, содержащее заказ на этот компьютер в офис Ozone.
В этом сценарии компьютер, отправляющий сообщение, называется клиентом.
А компьютер, который получает сообщения, называется сервером.
Но компьютеры не могут получать сообщения из интернета по умолчанию.
Мы должны запрограммировать их, чтобы они могли получать сообщения.
Для этого нам нужен язык программирования.
Но чтобы освоить программирование, требуется много усилий.
Какие есть варианты?
Онлайн-курсы, которые только выкачивают деньги.
Самообразование и бесконечный просмотр видеоуроков.
Это годы мучений.
без каких-либо результатов.
Я программист с большим опытом и делюсь своими знаниями, как правильно выстроить процесс обучения и раскрываю суровую правду IT-индустрии в своем телеграм-канале.
Подпишись по ссылке в описании.
Но компьютеры не могут получать сообщения из интернета по умолчанию.
Мы должны запрограммировать их, чтобы они могли получать сообщения.
Для этого нам нужен язык программирования.
Почти в каждом языке программирования есть функция, которая превращает компьютер в сервер и позволяет ему принимать сообщения.
Примерами популярных языков программирования для бэкэнда являются JavaScript, Python, Ruby, Java.
Однако использование языка программирования само по себе является очень сложной задачей, требует огромного количества кода.
Поэтому есть два инструмента, которые мы используем для упрощения.
Фреймворк и менеджер пакетов.
Фреймворк помогает нам создать сервер намного проще и с гораздо меньшим количеством кода.
Обычно язык программирования для бэкэнда имеет несколько различных фреймворков на выбор, но наиболее популярными являются ExpressJS для JavaScript, Django для Python, Ruby on Rails для Ruby, Spring для Java.
Мы также можем использовать код, написанный другими людьми.
Это называется пакет.
Например, с помощью пакетов мы можем выполнять вычисления, взаимодействовать с базой данных, сделать авторизацию и аутификацию.
Как правило, на Backend мы используем много пакетов.
Для того, чтобы установить и управлять всеми этими пакетами, мы используем менеджер пакетов.
Каждый язык имеет свой собственный менеджер пакетов.
Наиболее популярные из них NPM для JavaScript, PIP для Python, Bundler для Ruby, Maven для Java.
Следующая проблема заключается в том, что нам нужно где-то сохранить данные для нашего сайта.
Возвращаясь к нашему примеру с Ozone, это могут быть пользовательские данные, такие как информация для входа в систему, история заказов, а также данные обо всех товарах, которые продаются на Ozone, плюс их описание, рейтинги, отзывы.
Для этого мы используем базу данных.
База данных помогает нам хранить и управлять данными.
На самом деле это просто программное обеспечение, которое работает на другом компьютере, и мы должны сделать некую настройку, чтобы наш бэкэнд мог общаться с базой данных.
Наиболее популярными базами данных являются MySQL, Postgres и MongoDB.
Когда клиент создает заказ,
Frontend отправляет сообщение, содержащее заказ, в backend.
Backend сохраняет заказ в базе данных и отправляет обратно сообщение с подтверждением того, что заказ был создан.
Сообщение, которое Frontend посылает в backend, называется запрос.
А сообщение, которое backend отправляет обратно, называется ответом.
Теперь, когда мы увидели общий поток, мы погрузимся глубже и рассмотрим, что находится внутри запроса.
Вот упрощенный пример запроса для создания заказа.
Если мы прочитаем его, то увидим, что на самом деле он очень прост для понимания.
Здесь есть товары, которые мы заказали, их количество и другая информация о нашем заказе.
В верхней части у нас есть тип запроса, имя домена и URL-путь.
Прежде всего, компания Ozon купила домен имя Ozon.ru и они настроили его так, что любые запросы, идущие на этот домен, будут перенаправлены на сервер в их офисном здании.
Вот почему мы отправляем этот запрос на домен ozon.ru.
Тип и угол пути определяют, какой это запрос.
В данном примере это пост-запрос к orders.
На бэкэнде мы используем язык программирования, чтобы обозначить, какие типы запросов разрешены и как мы должны обрабатывать эти запросы.
Например, мы можем разрешить пост запроса на slash orders.
И каждый раз, когда мы получаем запросы на orders, мы будем создавать заказ, используя язык программирования и сохранять его в базу данных.
Мы также можем разрешить дед запрос на orders.
И в этом случае мы получим историю заказов из базы данных и отправим его обратно в качестве ответа.
Другим примером является запрос на удаление заказа, когда мы захотим отменить заказ.
Таким образом, список всех запросов, которые обрабатывает backend, называется API – Application Programming Interface.
API – это одна из самых важных концепций в программировании backend.
Если вы отправляете запрос, который не разрешен API, то он ответит вам ошибкой.
Ранее мы упоминали, что мы можем идентифицировать запросы, используя тип и URL путь.
Существует несколько типов, таких как POST, GET, PUT и DELETE.
А URL путь может быть любым, каким мы захотим.
Почему же в этом примере мы выбрали POST?
Это просто соглашение об именовании для наших запросов.
И это соглашение об именовании называется REST.
В REST тип запроса имеет особое значение.
POST означает «создать что-то», в данном случае POST слэш ордер означает «создать заказ», GET означает «получить что-то», а DELETE означает «удалить что-то» и так далее.
API, использующий соглашение об именовании REST, называется REST API.
REST – это наиболее распространенное соглашение, которое мы используем для наших API.
Но существует несколько других соглашений, которые мы можем использовать.
Например, MinecraftQL.
Теперь давайте поговорим об инфраструктуре.
На самом деле, вместо того, чтобы настраивать собственный компьютер для работы своих веб-сайтов, компании арендуют компьютеры у других компаний, которые занимаются облачными вычислениями.
Ранее в качестве упрощения мы говорили о том, что сервер стоит в офисе, но на самом деле они обычно арендуются.
Самыми крупными компаниями, предоставляющие облачные вычисления, является Amazon, облачная платформа Google, Microsoft Azure.
Российские компании также предоставляют такие услуги, например, Яндекс Клауд.
Ваше приложение может быть маленьким, например, это десятки пользователей в день, и тогда вы арендуете частичку компьютера, где кроме вашего приложения будут по соседству другие приложения.
Иногда вам нужен целый компьютер или несколько компьютеров, или даже здание с компьютерами.
В случае, если вашему приложению нужно несколько вычислительных машин, перед ним становится особая машина, которая называется балансировщик нагрузки.
Ну а чтобы научиться создавать приложение любой сложности, обращайтесь ко мне.
Я обучаю фронтенд и бэкэнд разработки.
Это курсы с упором на менторство.
Подробности по ссылке в описании.
В реальном мире сайт может состоять из миллионов строк кода.
Поэтому мы разделили его на части.
Каждая из этих частей будет иметь свой собственный бэкэнд и иногда собственную базу данных.
Когда нам, например, нужно отправить электронное письмо, наш бэкэнд для обработки заказов пошлет запрос бэкэнду, который отвечает за отправку email, и тот отправит письмо.
Таким образом, разделение нашего бэкэнда на отдельные бэкэнды называется микросервисами.
Каждый микросервис не обязательно должен использовать один и тот же язык программирования и базу данных.
Один микросервис может использовать JavaScript и MongoDB, в то время как другой микросервис может использовать Python и MySQL.
Чтобы сделать все это еще проще, существуют компании, которые уже создали сервис электронной почты.
Такие компании предоставляют backend и API для отправки электронной почты.
Так что вместо того, чтобы создавать наш собственный почтовый микросервис, наш backend может просто посылать запросы в их backend.
Когда компании предоставляют backend и API, которые могут использовать внешние приложения, это называется SaaS.
Программное обеспечение как услуга.
Для многого из того, что вы делаете на бэкэнде, уже есть SaaS-компания, которая предоставляет эту услугу.
И вы просто используете ее вместо того, чтобы создавать свой собственный микросервис.
В этом последнем разделе я хочу рассказать о некоторых дополнительных технологиях, которые вы можете увидеть в бэкэнде.
Ранее мы упоминали о базах данных MySQL, Postgres, MongoDB.
Такие базы данных подходят не для всех задач.
Если мы разрешим нашим пользователям заглушать изображение, то для хранения изображения лучше использовать хранилище по типу AWS STI.
Допустим, мы хотим сделать текстовый поиск, но обычные базы данных очень медленно работают с текстом, поэтому мы используем поисковую базу данных, например, Elasticsearch.
Если наш сайт получает много трафика и нам нужно снять нагрузку с нашей основной базы данных, то мы добавим кэш.
Например, Redis для повышения производительности.
Если вы хотите запланировать задачу на потом.
Например, Anson может захотеть отправить электронное письмо с какой-нибудь акцией.
Мы будем использовать очередь, например, RabbitMQ, чтобы запланировать эту задачу на будущее.
Есть множество других подобных технологий, которые созданы для решения конкретной проблемы.
Если у вас есть вопросы или комментарии, пожалуйста, оставьте их ниже.
А мы увидимся с вами в следующем видео.
Похожие видео: Что такое бэкенд и как он устроен

День 4. Расширения по интеграции и виртуализации данных || СЭД TESSA

23 проекта (задачи) на JavaScript. Интерактивность и динамика для начинающих frontend-разработчиков

Лучшая практика для НАЧИНАЮЩЕГО Frontend разработчика 2025 (Создай приложение С НУЛЯ)

ЛУЧШАЯ БЕСПЛАТНАЯ НЕЙРОСЕТЬ Google, которой нет аналогов
![СОЗДАЛ ИИ АГЕНТА С ПАМЯТЬЮ RAG + [шаблон для N8N]](https://videodownloadbot.com/images/video/384/i1n1phvxre8hkckwjkrx0c2a90wne9rl_medium.jpeg)
СОЗДАЛ ИИ АГЕНТА С ПАМЯТЬЮ RAG + [шаблон для N8N]

