Делегирование обязанностей между Frontend и Backend разработчиками, на чьей стороне должна выполняться та или иная работа (Подробнее в деталях)?
Например, у нас есть канбан, который имеет определенное количество колонок, допустим 5.
У каждой колонки есть свое название.
На канбане будут находиться таски (за пример можно взять джиру).
Каждый таск должен лежать в определенной колонке.
Есть два варианта распределения работы между фронтенд и бэкэнд:
1) Отдается массив данных с уже распределенными по колонкам тасками, фронтенд-разработчику остается только отрендерить данные. В таком случае придется структурировать данные полученные с БД на стороне сервера.
2) Отдается просто массив тасок, каждая из которых в своей структуре имеет категорию(название) колонки. Фронтенд-разработчик самостоятельно преобразует данные в нужный вид, то есть разкидывает таски по колонкам и затем рендерит. В таком случае сервера не напрягаясь просто отдает нам информацию, взятую из БД.
То же касается и функциональности сортировки, фильтрации, поиска и так далее.
Есть ли смысл делать это все на сервере?
Поясняю: на клиенте все это можно сделать в разы быстрее, приложение будет отвечать моментально, чем если мы будет делать запрос на сервер при каждом действии.
Как правильно разделить обязанности между фронтенд и бэкэнд разработчиками в 2022 году?
Хотелось бы получить аргументацию и развернутые ответы, а не просто "это должен делать сервер, или это должен делать фронтенд". Можно привести в пример другие кейсы, необязательно опираться на описанные мной выше.
Заранее спасибо!
Дополнительно:
Данные отдельно, мухи отображение отдельно.
Бэк отдаёт данные. Как их рисовать – задача фронта.
Так одни и те же методы стандартного и хорошо документированного API будут достаточны для любого клиента: web, мобилки, бота в мессенжере.
P.S. разумеется, бэк не отдаёт 100 тыс. записей. Фильтрует и бьёт на страницы, отдаёт, например, 10 результатов – JSON массив с 10 объектами и инфой сколько там всего, какая сейчас страница и т.п.
- выбор города. Городов в БД многовато - со всего мира. Autocomplete – человек вбивает начало – запрос на бэк, возвращает уже приемлемо недлинный список кандидатов.
- список возможных половых принадлежностей в анкете. Два варианта можно целиком держать на фронте hard-coded. При переезде в Европу добавить ещё пару вариантов для соответствия местному законодательству.
Главный критерий – не минимизировать работу одного иливторого разработчика : ) Наверное, всё же ускорить работу (учитывая, что связь априори «медленная»), оптимизировать нагрузку (клиент может быть устаревший телефон с забитой памятью).
Ответы:
Как правильно разделить обязанности между фронтенд и бэкэнд разработчиками в 2022 году?
Сделать декомпозицию всего проекта в несколько интераций, далее правильно его структурировать и спроектировать архитектуру, которая будет решать поставленные перед проектом задачи и соответствовать его требованиям. Архитектуру разрабатывает/разрабатывают архитектор и/или тим- и тех- лиды. И вот когда на руках будет исчерпывающее ТЗ со всеми деталями - на этом этапе тимлид и прожект-менеджер создают задачи для фронт-энда и для бэкэнда. При этом, выставляются взаимосвязи и блокировки задач: например, "список пользователей в админке" для фронта, зависит от "базовое API для управления пользователями" для бэка, если задача для фронта требует каких-то дополнительных точек API - просто создается подзадача для бэка типа "поиск пользователя по всем полям учетной записи". И такие подзадачи не просто могут быть, они однозначно будут и надо просто учитывать этот момент.
То же касается и функциональности сортировки, фильтрации, поиска и так далее.
Есть ли смысл делать это все на сервере?
Конкретная реализация зависит от задач. Если данных мало и их можно быстро передать - то да, удобнее на клиенте обрабатывать, если данных много - то на сервере, при этом сделать кэш и группировку для горячих данных для ускорения. Приведу реальный пример из практики (тыц): была задача сбора и отображения статистики использования десятки терминальных серверов на нескольких сотен пользователей. От каждого активного пользователя по несколько сотен точек в день, десяток машин. И для каждой машины и для каждого пользователя надо было сделать график и чтобы все это можно было быстро и удобно просмотреть. Десятки и сотни мегабайт данных - сотни тысяч точек за несколько месяцев. На одной странице. Все данные хранятся в БД, горячие данные - в кэше памяти, аппроксимация точек для разных периодов времени за 3 месяца, быстрые фильтры для получения данных для построения графика с нужной точностью за выбранный период. Т.е., фронт говорит "дай данные за такой-то период для такого-то сервера/пользователя" - бэк быстро фильтрует нужное среди нескольких сотен мегабайт данных и отдает от нескольких десятков до нескольких сотен КБ.
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Делегирование обязанностей между Frontend и Backend разработчиками - это очень важный аспект в процессе создания веб-приложений. Обычно, Frontend разработчики занимаются созданием пользовательского интерфейса (UI), визуального оформления и взаимодействия пользователя с приложением на стороне клиента, а Backend разработчики отвечают за серверную часть приложения, обработку данных, взаимодействие с базой данных и бизнес-логику.
Однако, в реальности границы между Frontend и Backend часто размыты, и может возникнуть вопрос, на чьей стороне должна выполняться та или иная работа. Во многих случаях, правильное делегирование обязанностей помогает улучшить производительность, безопасность и общую архитектуру приложения.
Например, если речь идет о валидации данных, то обычно Frontend разработчики занимаются валидацией на стороне клиента, чтобы обеспечить быструю обратную связь с пользователем и улучшить пользовательский опыт. Однако, Backend разработчики также должны проводить валидацию данных на стороне сервера, чтобы обеспечить безопасность и защиту от возможных атак.
Если речь идет о обработке больших объемов данных или сложных вычислений, то лучше всего делегировать эту работу Backend разработчикам, так как сервер имеет более мощные вычислительные ресурсы. Frontend разработчики, в свою очередь, могут заниматься отображением результатов вычислений и взаимодействием с пользователем.
Таким образом, правильное делегирование обязанностей между Frontend и Backend разработчиками зависит от конкретной задачи, требований к производительности, безопасности и пользовательского опыта. Важно иметь четкое понимание ролей каждого участника команды и эффективно сотрудничать для достижения общей цели - создания качественного и функционального веб-приложения.
// Пример кода на PHP для валидации данных на стороне сервера if(isset($_POST['submit'])){ $name = $_POST['name']; $email = $_POST['email']; if(empty($name) || empty($email)){ echo "Пожалуйста, заполните все поля"; } else { // Дополнительная проверка данных и сохранение в базу данных } } |
// Пример кода на PHP для валидации данных на стороне сервера if(isset($_POST['submit'])){ $name = $_POST['name']; $email = $_POST['email']; if(empty($name) || empty($email)){ echo "Пожалуйста, заполните все поля"; } else { // Дополнительная проверка данных и сохранение в базу данных } }

Делегирование обязанностей между Frontend и Backend разработчиками - это важный аспект в разработке веб-приложений. Определение того, на чьей стороне должна выполняться та или иная работа, зависит от конкретной задачи и требований проекта.
Frontend разработчики отвечают за создание пользовательского интерфейса, визуальное оформление и интерактивность веб-приложения. Они работают с HTML, CSS и JavaScript для создания клиентской части приложения. Frontend разработчики отвечают за отображение данных на странице, взаимодействие с пользователем и адаптивность интерфейса под разные устройства.
Backend разработчики отвечают за серверную часть приложения, обработку данных, выполнение бизнес-логики и взаимодействие с базой данных. Они работают с различными языками программирования, такими как PHP, Python, Java, Node.js и другими, для создания серверной логики приложения.
При делегировании обязанностей между Frontend и Backend разработчиками, важно учитывать следующие аспекты:
1. Разделение задач по специализации: Frontend разработчики занимаются визуальной частью приложения, а Backend разработчики - логикой и данными.
2. Эффективное взаимодействие: коммуникация между Frontend и Backend разработчиками должна быть прозрачной и эффективной, чтобы избежать конфликтов и ускорить процесс разработки.
3. Оптимизация производительности: определение того, на чьей стороне должна выполняться та или иная работа, может повлиять на производительность приложения. Например, выполнение сложных вычислений лучше делегировать на серверную сторону.
4. Безопасность данных: защита данных и обеспечение безопасности приложения также являются важными аспектами, которые должны учитываться при делегировании обязанностей.
Пример использования PHP на Backend для выполнения сложных вычислений:
function calculateSum($a, $b) { return $a + $b; } $sum = calculateSum(5, 3); echo $sum; // Output: 8
В итоге, определение того, на чьей стороне должна выполняться та или иная работа, зависит от специфики проекта, требований к приложению и специализации разработчиков. Важно соблюдать баланс между Frontend и Backend разработчиками для эффективной и успешной разработки веб-приложений.