Как взаимодействуют бэкендер и фронтендер меж собой?

Ссылка скопирована
1 ответ

Меня всегда интересовало, как в современных реалиях, когда все пользуются фреймворками, происходит синхронизация работы бэкенд и фронтентэд программиста. Скажем , в Django для составления html страниц с содержанием каких то меняющихся данных бэкендер должен пользоваться шаблонизатором jinja, причем для синхронизации конечного html файла с функциями/классами представлений бэкендер сам должен указывать название ссылок, аргументов внутри шаблонизатора. Это я еще молчу про использование базовых шаблонов и теги. А как это, например должен понимать фронтендер? Скажем, ему надо составить внешний вид форума, где подряд идет список статей, где то есть кнопка для авторизации, где-то ссылка на переход на страницу профиля автора. Это все ведь прописывается в темплейте, а не статичном html файле. Как это все работает? Хотелось бы подробно узнать.

Дополнительно:

бэкендер должен пользоваться шаблонизатором jinja

А как это, например должен понимать фронтендер?

Фронтендеры тоже вовсю пользуются шаблонизаторами.

Но чаще бекенд просто создает API, а все шаблоны процессятся на клиентской стороне.

  • ИМХО, если используется шаблонизатор, то шаблон и есть фронтенд, значит его делает фронтендер :)
    А вообще, общаются они ртами, а в идеале - пишут документацию на API.
  • VolgaVolga, ну допустим у меня есть вьюшка с get аргументами page и type. Следовательно, ссылка, чтобы эта вьюшка сработала, будет: ...href="{url 'some_url'?page=2&type=1}". Так как фронтендер поймет название урла и аргументов? Бэкендер ему просто говорит: "Ну значица, если ссылку на это хошь, название урла такое, а аргументов - такое"?

    Значит ли это, что фронтедер должен под каждый фреймворк учить использующийся для него шаблонизатор?

  • slaver chief, хороший вопрос
    поэтому как тебе уже и сказали бэкенд как правило апи, это особенность чистого джанго - серверный рендеринг, обычно на нем один человек работает чтобы фронту не разбираться с этими фичами. Из джанго бизнес как правило берет drf, просто джанго используется для простых проектов либо в старых проектах. Может кто меня поправит, во всех компаниях я не работал
  • chemdev, че? То есть я зря на изучение джанги время тратил?
  • slaver chief, почему зря?
  • chemdev, ну раз в бизнесе джанго чистый не используется, так и нахер его изучать было надо? Свой фейсбук написать?
  • slaver chief,

    фронтедер должен под каждый фреймворк учить использующийся для него шаблонизатор?

    Ну вы проснулись... Сегодня это даже от верстальщиков требуется.

    Ну и "учить" применительно к шаблонизатору - громковатое слово.

  • slaver chief, вопрос из серии зачем в школе проходим visual basic
  • В каждой шараге по своему метут...
  • Значит ли это, что фронтедер должен под каждый фреймворк учить использующийся для него шаблонизатор?

    Да. Сюрприз! =) Документация там, конечно, обычно не супер огромная и изучить её не так уж и сложно. Зато их много всяких разных со своими блэк-джеками и танцовщицами.

    То есть я зря на изучение джанги время тратил? ну раз в бизнесе джанго чистый не используется, так и нахер его изучать было надо?

    Если не используете прямо сейчас и не планируете в будущем - то да, зря на данный момент. Но, вообще, правильнее учить не фреймворки, а ЯП и само программирование.

  • VoidVolker, Да яп свой я уже, мне кажется, достаточно изучил. Следующая ступень - это выполнение реальных задач, которые есть только при выходе на полноценную работу, на которых знание фреймворков обязательно.
  • сейчас не так популярны шаблонизаторы

    обычно фронт просто с апи работает, а бекенд (с шаблонизаторами или без, когда с ними — оыбчно админки) обслуживаются только бекендерами

  • Максим Федоров, то есть фронтендер просто посредством js кода обращается к апи бэкенда и получает всю инфу для страницы оттуда? Это, я так понимаю, через ajax запросы?
  • slaver chief, да, все верно

    только термин AJAX уже не актуален, просто получает данные через http-client и данные рендерит согласно логике в приложении

  • Ответы:

    В рамках поставленной задачи и документации. Например: в системе управления задачами создается задача "разработать страницу авторизации". Эта задача состоит, как минимум, из двух подзадач: верстка страницы, разработка метода авторизации для апи. К первой подзадаче прикрепляется ссылка на дизайн верстки. Ко второй - описание логики работы бэка. Бэкенд разработчик проектирует метод авторизации и выкатывает документацию по методу: отправить пост запрос по такому-то адресу с такими-то параметрами (условно). Соответственно эта документация прикрепляется к основной задаче, откуда её берет фронтенд разработчик и далее в коде указывает нужные параметры для отправки запроса согласно данной документации. В случае, когда "все в одной куче" - либо работает фуллстек разработчик, либо несколько разработчиков параллельно с разделением логики на разные модули/файлы. Например, в одном файле шаблон верстки, в другом логика/скрипты, в третьем логика бэка - каждый делает свою часть и оно все вместе как-то работает.

    • Я так понимаю, в джанго предполагается реализация "все в одной куче"?

    Разделяют на 2 репозитория и взаимодействиют. Как правило через Rest API. Если монолит, то например в Lravel есть пакеты реализующие модули и темы.

    • В благоприятных (для фронтов) условиях - да.
      Но иногда фронтам приходится погружаться и в JSP, и в AEM-шаблоны.
    • VolgaVolga, не важно. Приложение должно уметь разделять компоненты.
    Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Юрий Linux Ответ

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

    Бэкендер отвечает за серверную часть приложения, что включает в себя работу с базами данных, обработку бизнес-логики, управление пользователями и аутентификацию. Он использует языки программирования и фреймворки, такие как PHP, Python, Java, Node.js и другие, для создания API, которые обеспечивают взаимодействие фронтенда с сервером. Бэкендер также отвечает за безопасность приложения, защиту от атак и хранение конфиденциальных данных.

    Фронтендер, с другой стороны, отвечает за пользовательский интерфейс приложения, то есть за то, как приложение выглядит и взаимодействует с пользователем. Он использует языки разметки (HTML), стилевые языки (CSS) и языки программирования (JavaScript) для создания динамических и отзывчивых интерфейсов. Фронтендер также отвечает за оптимизацию производительности приложения, поддержку разных устройств и браузеров, а также за тестирование и отладку интерфейса.

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

    Чтобы облегчить совместную работу, бэкендеры и фронтендеры могут использовать современные инструменты и технологии, такие как системы контроля версий (Git), среды разработки (Visual Studio Code, PhpStorm), фреймворки (React, Angular, Laravel) и библиотеки (jQuery, Bootstrap), которые упрощают процесс разработки и улучшают качество и производительность приложения.

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

    // Пример кода на PHP
    function getDataFromBackend() {
        // Код для получения данных с сервера
    }
     
    function displayDataOnFrontend(data) {
        // Код для отображения данных на интерфейсе
    }
     
    $data = getDataFromBackend();
    displayDataOnFrontend($data);

    // Пример кода на PHP function getDataFromBackend() { // Код для получения данных с сервера } function displayDataOnFrontend(data) { // Код для отображения данных на интерфейсе } $data = getDataFromBackend(); displayDataOnFrontend($data);

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно