@Spbvx

Как отделить фронтенд разработку от бэкенда?

Доброго времени суток.
Ранее, при реализации простеньких проектов у нас было 2 разработчика они же и frontend они и backend они же феи которые настраивали сеть, прокси и т.д.
Код проекта хранился в одном репозитории, соответственно все вьюшки и статика хранились в нем же. Соответственно все разработчики видят весь код. Структура классическая - mvc.
На уровне контроллера решалось рендэрить html или отдавать json. Все логично и понятно. При такой структуре не возникало проблем ни при разработке ни при тестировании, т.к. при внесении изменений в шаблон или вью сразу можно было видеть результат.

В данный момент встала задача реализовать более-менее серьезный проект. Начитавшись интернетов на тему тру разработки вопросов стало больше чем было.

Главный вопрос разделения frontend/backend.
Как реализовать структуру проекта таким образом, что бы frontend разработчик не имел доступа к коду backend сервера.
Допустим, есть 2 репозитория frontend/backend.
С backend все понятно, допустим есть два метода за логином /tasks - который возвращает html и /tasks/list - который возвращает json.
С frontend не очень понятно.
Frontend разработчик собирает шаблоны и вьюшки с помощью грунта, бовера и прочих плюшек у себя на машине. Теперь ему нужно проверить как будет выглядеть /tasks. Мало того, что на его стороне нет шаблонизатора который например накатит данные из сессии (Имя, Фамилия, Аватарка и т.д.) на шаблон так еще и роута до /tasks/list который летит через ajax после прогрузки страницы.

Первый вариант который пришел в голову - писать некий fakeServer для тестирования, который отдавал бы синтетику по роутам аналогичным боевому серверу. Но данный вариант - долгий, "дорогой", и глупый как мне кажется.

Второй вариант который пришел в голову - это сделать фронтенд отдельным http сервером который в свою очередь обращается к backend через api. Не очень кошерный вариант как кажется т.к. часть логики может ухать на фронтенд и весь рендеринг уйдет на этот http сервер соответственно. Но все же хотелось бы услышать мнение по этому поводу.

Третий вариант хочу получить от тех кто уже ел этот кактус.
Спасибо.
  • Вопрос задан
  • 2438 просмотров
Пригласить эксперта
Ответы на вопрос 4
sim3x
@sim3x
Одна репа
Версионирование АПИ

Для фронтендера нет никакой проблемы запустить ./manage.py runserverи получить себе работающее приложение

В вопросе слишком много воды и неясностей

Нужны названия фреймворков и описание проекта
Ответ написан
OnYourLips
@OnYourLips
Всё изобрели уже до вас.
Каждый проект находится в своём репозитории.
Есть dev-сервер для фронтенда (с лайв-релоадом и т.д.). Который коннектится к настоящему бекенду на удалённом сервере.
Ответ написан
Просто разверните бэкенд на сервере, который доступен извне. Для безопасности можно ограничить доступ только определенным IP и/или добавить доступ по ключу.
Ответ написан
@Spbvx Автор вопроса
Всем спасибо за участие. Собственно ответ на свой вопрос получил от некоторых ораторов в данном тосте и из нескольких статей.
Одна из них, кому интересно: wbtech.ru/blog/frontend-and-backend-collaboration
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы