Как происходит совместная работа бэкенд- и фронтенд-разработчиков над большими проектами?
Добрый вечер.
Сам никогда не работал в команде над большими проектами, посему нет понимания, как же всё-таки происходит коллективная работа, где задействованы бэкенд- и фронтенд-разработчики.
Вот, допустим, верстает фронтендщик макет главной. У него локально стоит node.js со всякими gulp/wepback и т.д. Он это дело всё автоматизированно верстает и когда заканчивает, отдаёт свои заветные index.html и main.min.css бэкендерам.
Предположим, что бэкенд на php/laravel. Бэкендеры берут вёрстку и используют в своих нуждах, реализуя вывод информации из БД через blade-шаблоны. На следующий день, допустим, необходимо добавить новые блоки на главную. Верстальщик верстает их в том проекте, который делал вчера, и отдаёт расширенный по сравнению с вчерашним index2.html/main2.min.css опять бэкендерам. Что им в таком случае нужно делать? Выцеплять добавленную вёрстку и вставлять в blade-шаблоны? А что, если на третий день понадобится изменить вёрстку блоков, сделанных в первый день? Или фронтендщики работают локально с польностью развёрнутым бэкенд-окружением?
В общем, у меня путаница в голове) Проясните, плиз, кто имел дело, как обычно происходит этот процесс?
В разных компаниях это делают по-разному. Процитирую свой старый ответ на эту же тему, но про Django.
Есть три способа:
Верстальщик делает для каждого типа страниц рыбу, бэкендер напяливает её на шаблонизатор. При дальнейших правках верстальщик правит рыбу, бэкендер правит шаблон. Плюс в простоте включения верстальщика в процесс, минус в дополнительной нагрузке на бэкендера. Хорошо подходит для привлечения верстальщиков со стороны.
Поднимаете отдельный сервер для разработки. Настраиваете на нём FTP. Запускаете на нём нужные проекты, выдаёте права только на шаблоны. Запускаете верстальщика по FTP с chroot'ом в каталоге с проектами. Минус - нужен дополнительный сервер и понимание языка шаблонизатора со стороны верстальщика. Плюс - снижение нагрузки на бэкендера и возможность тестировать правки на живом проекте.
На комп верстальщика ставится python и git. Верстальщик клонирует проект, запускает из корня проекта специально подготовленный батник, который активирует виртуальное окружение, ставит зависимости и запускает dev-сервер. Требует от верстальщика умения работать с git (а других нанимать и не надо), а от бэкендера делать нормальные приложения, которые не требуют долгих танцев с бубном для запуска.
Фронт и бэк оба на js, внутри одного проекта. Внутри папки src две папки: app для клиентского приложения и общего для фронта и бэка кода (сервер использует код клиента, но клиент не использует код сервера). На выходе и фронтендщиков и бэкендщиков постоянно актуальный единый проект, настроенный на одну базу данных, а они уже сосредотачиваются внутри своих папок.