Как взаимодействуют бэкендер и фронтендер меж собой?
Меня всегда интересовало, как в современных реалиях, когда все пользуются фреймворками, происходит синхронизация работы бэкенд и фронтентэд программиста. Скажем , в Django для составления html страниц с содержанием каких то меняющихся данных бэкендер должен пользоваться шаблонизатором jinja, причем для синхронизации конечного html файла с функциями/классами представлений бэкендер сам должен указывать название ссылок, аргументов внутри шаблонизатора. Это я еще молчу про использование базовых шаблонов и теги. А как это, например должен понимать фронтендер? Скажем, ему надо составить внешний вид форума, где подряд идет список статей, где то есть кнопка для авторизации, где-то ссылка на переход на страницу профиля автора. Это все ведь прописывается в темплейте, а не статичном html файле. Как это все работает? Хотелось бы подробно узнать.
ИМХО, если используется шаблонизатор, то шаблон и есть фронтенд, значит его делает фронтендер :)
А вообще, общаются они ртами, а в идеале - пишут документацию на API.
VolgaVolga, ну допустим у меня есть вьюшка с get аргументами page и type. Следовательно, ссылка, чтобы эта вьюшка сработала, будет: ...href="{url 'some_url'?page=2&type=1}". Так как фронтендер поймет название урла и аргументов? Бэкендер ему просто говорит: "Ну значица, если ссылку на это хошь, название урла такое, а аргументов - такое"?
Значит ли это, что фронтедер должен под каждый фреймворк учить использующийся для него шаблонизатор?
slaver chief, хороший вопрос
поэтому как тебе уже и сказали бэкенд как правило апи, это особенность чистого джанго - серверный рендеринг, обычно на нем один человек работает чтобы фронту не разбираться с этими фичами. Из джанго бизнес как правило берет drf, просто джанго используется для простых проектов либо в старых проектах. Может кто меня поправит, во всех компаниях я не работал
Значит ли это, что фронтедер должен под каждый фреймворк учить использующийся для него шаблонизатор?
Да. Сюрприз! =) Документация там, конечно, обычно не супер огромная и изучить её не так уж и сложно. Зато их много всяких разных со своими блэк-джеками и танцовщицами.
То есть я зря на изучение джанги время тратил? ну раз в бизнесе джанго чистый не используется, так и нахер его изучать было надо?
Если не используете прямо сейчас и не планируете в будущем - то да, зря на данный момент. Но, вообще, правильнее учить не фреймворки, а ЯП и само программирование.
VoidVolker, Да яп свой я уже, мне кажется, достаточно изучил. Следующая ступень - это выполнение реальных задач, которые есть только при выходе на полноценную работу, на которых знание фреймворков обязательно.
Максим Федоров, то есть фронтендер просто посредством js кода обращается к апи бэкенда и получает всю инфу для страницы оттуда? Это, я так понимаю, через ajax запросы?
В рамках поставленной задачи и документации. Например: в системе управления задачами создается задача "разработать страницу авторизации". Эта задача состоит, как минимум, из двух подзадач: верстка страницы, разработка метода авторизации для апи. К первой подзадаче прикрепляется ссылка на дизайн верстки. Ко второй - описание логики работы бэка. Бэкенд разработчик проектирует метод авторизации и выкатывает документацию по методу: отправить пост запрос по такому-то адресу с такими-то параметрами (условно). Соответственно эта документация прикрепляется к основной задаче, откуда её берет фронтенд разработчик и далее в коде указывает нужные параметры для отправки запроса согласно данной документации. В случае, когда "все в одной куче" - либо работает фуллстек разработчик, либо несколько разработчиков параллельно с разделением логики на разные модули/файлы. Например, в одном файле шаблон верстки, в другом логика/скрипты, в третьем логика бэка - каждый делает свою часть и оно все вместе как-то работает.