Граница между front-end и back-end?

Такой вот вопрос от новичка...
Вот скажем я хочу стать фронтенд разработичком. Я выучил html/css3/sass/less/стандартный js а потом еще и библиотеку типа react, (к примеру скажем), выучил webpack и gulp, почитал о MVC и других моделях разработки. Но вот вопрос? Если я хочу сделать позже SPA или PWA приложение для своего портфолио, то как собственно я могу сделать это сам в плане backend? Ведь нужно не только логика, которая скажем в браузере функционирует но и целая логика CRUD операций и запросов на бекенде. Скажем так, ни одно приложение (насколько я знаю и мне говорили) не должно напрямую быть подключено к базе данных и для такого приложения нужен API. Значит мне нужно научится писать API сервисы, взаимодействие между базами данных и т.д, чтобы мое приложение вообще могло обмениваться инфой с сервером. Но разве это уже не Back-End? Должен ли фронтенд разработчик вообще уметь писать и разбираться в архитектуре API и т.д.? Конечно всегда можно напрямую подключиться к какому нибудь phpmyadmin и написать там пару тупых CRUD операций , MySQL запросов и играть с ними. Но ведь по нормальному, чтобы приложение работало в реальном времени, нужно и какие нибудь web-sockets выдумывать или ajax запросы, всё это через API делать а не напрямую и т.д и т.д. Но ведь разве это не то, что уже Backend разработчики знать должны?

Буду благодарен если мне кто-то объяснить эту грань и мог бы мне подсказать как мне тогда сделать портфолио не зная backend и не зная как писать собственные API сервисы.
  • Вопрос задан
  • 1259 просмотров
Решения вопроса 1
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Всё проще:
1. Создание UI/UX, разметки, стилизации и логики фронта - это фронт-эндер.
2. Что значит "логика фронта"? Это JS и архитектура фронт-приложения.
3. Чтобы правильно создать архитектуру, нужно понимать все возможные интерфейсы взаимодействия с бэком. Затем, оформить их для обмена данными с бэком.
4. Для этого - нужно знать: какие протоколы обмена данными с сервером предоставляет браузер, какие используются форматы передачи данных, логика функционирования общения с бэком: "запрос-ответ" (в разных режимах: запрос/поток, синхронно/асинхронно, и т.д.) и как их все вместе правильно использовать.

Вот до этого места - это всё фронт!

Далее, как только данные ушли из окружения браузера в сеть - начинается бэк.
Ответ написан
Пригласить эксперта
Ответы на вопрос 7
neuotq
@neuotq
прокрастинация
Чтобы там не говорили, бэкэнд может оставаться полностью черным ящиком только для верстальщика, ито с оговорками.
Фроентэнд разработчик, даже с джун уровня, уже активно работает с получением отправкой данных, интерактивными интерфейсами и тп. Понимать как и почему некоторые штуки там работают нужно. Хорошо даже уметь быстро что-то простое сделать. Я не говорю становится фулстеком в полном смысле этого слова, НО. По хорошему: фронтендер мидл и выше уровня можно с натяжкой назвать фулстеком, просто с большим перекосом на фронт часть.
Просто даже серверлесс направление, заставляет в той или иной степени понимать процессы происходящие на той стороне.
Ну и в любом случае, в случае активной практики и развития, вы сами столкнётесь с тем, что иногда нужно даже лезть и писать какие-либо свои простые скрипты.
Отмечу отдельно, это не значит что нужно с головой падать, пытаться стать фулстеком. знать всё и тп. Нет, я имею ввиду что понимание работы бекенда, а значит и умение делать некоторые вещи, должны будут и прийдут при активной работе и роста вас как специалиста.
Это же касается тех же софт скилз и менеджерских умений.
Ответ написан
Простой бэк может сделать кто угодно, тем более что в апи можно подставить и статические данные (без БД). Но я так думаю фронтендер не обязан знать как сделать это высокопроизводительным.

вот простое api, что тут уметь?))

var express = require('express');
var app = express();

app.get('/hi', function (req, res) {
  res.json({code:0, message: 'Hello!'});
});

app.listen(3000, function () {
  console.log('Example app listening on port 3000!');
});


get mysite.com:3000/hi
выдаст {code:0, message: 'Hello!'}
Ответ написан
inoise
@inoise
Solution Architect, AWS Certified, Serverless
Не должен фронт туда лезть в разработку, ну, разве что надо знать и уметь работать с разными видами API, но если делать для себя то придётся научится )
Ответ написан
saboteur_kiev
@saboteur_kiev
software engineer
Суть заключается не в базовых знаниях, а в специализации.
Написать простенький сервер-заглушку не должна быть проблемой для senior frontend, но не обязательно лезть в дебри отказоустойчивоти, кластеризации, производительности бэкенда и изучать несколько фреймворков и десятки и сотни библиотек.

Поэтому грань проводится на уровне мид-специалиста и выше.
Чем более высокого уровня вы специалист, тем проще найти более "чистую" работу фронтендера в проекте, где бэкендом занимаются другие люди, и о конвеншенах вы договариваетесь с ними через UML или другой удобный способ.

Ну или есть еще путь фулл-стек.
Ответ написан
@AVechtomov
Full Stack developer
За последние 5 лет, как мне кажется, js сделал большой шаг в мир backend разработки. И теперь для фронтенд разработчикa стали обязательными не только стандартные html/css3/sass/less/js, но и знания работы с backend ,
например NodeJS и ExpressJS.
Ответ написан
как заглушка api подойдет json-server
или можно делать запросы в firebase бд напрямую

Если нужна логика бекенда, а не просто данные, то уже нужны бекенд фреимворки.

Бекенд нужно знать от уровня "сделал пару проектов" до того уровня, которого достаточно для твоих задач.

https://habr.com/ru/post/306716/
Ответ написан
@RikkoDDOS
Если хочешь нормально шарить, бери и разбирайся в том, как устроено веб приложения/сайты полностью. Без разделения на фронтенды и бекенды.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
22 сент. 2020, в 08:35
14000 руб./за проект
22 сент. 2020, в 06:45
4000 руб./за проект
22 сент. 2020, в 03:43
35000 руб./за проект