Задать вопрос
@Niksak

Верное у меня представление о разработке fullstack web приложений?

Правильно ли у меня представление о создании fullstack веб приложений ( или же сайтов )?
Возьмем обычное приложение, допустим, интернет магазин: его функционал: чтение товаров, удаление, добавление, просмотр определенного товара, обновление товара ( ну короче CRUD ):
Правильно ли что изначально создается бэкенд RESTful api для такого сайта (на подобии такого: https://only-to-top.ru/blog/programming/2019-11-06...)?
А после уже приступают к созданию фронтенда ( https://only-to-top.ru/blog/programming/2019-11-11... )

То есть это везде так и всегда? Вне зависимости от языка серверного, вне зависимости от того, пишите вы на голом js или react каком-нибудь?
Или сейчас так не делается? Точно также идет работа в компаниях? Где бэкендеры делают бэк сайта, api для него, выводят данные в формате JSON чтобы фронтендеры могли делать ajax запросы к этому api и уже работать на клиентской стороне?

Скажите, эти ссылки вообще актуальны или так делали в 2003 году?:)
Как разрабатываются приложения...:(
То что описано в первой ссылке это как раз основная работа бэкендера? Столько вопросов..

Я всегда был фронтендером, могу работать с API всякими открытыми, типа погоды или сделать на firebase базу и отправлять запросы..
Но я особо понятия не имею о работе бэкендера)
  • Вопрос задан
  • 325 просмотров
Подписаться 2 Простой Комментировать
Решения вопроса 1
AgentSmith72
@AgentSmith72
JS - это моё хобби
Зависит от компании. бычно фронт занимается своими делами, а бэк своими.

В лучшем случае, вы будете делать то, что говорит Тим-лид. Если нужно делать фронт на готовое от Бэка api, то значит в команде все хорошо. В редких случаях, фронту приходится мокать данные с Бэка, и работать со статичными данными.

В худшем случае, это поддержка какого-нибудь сайта, где rest api и не пахнет.

Если вы фронтэндер, то познакомьтесь с Postman. Например в виде гугл плагина. Научитесь работать с ответами роутов сайта. Вы можете создать свой проект, только фронт часть, а через Postman брать ответы с любого сайта, например api городов и стран, и встроить этот api в свой проект. Вам тогда вообще бэк знать не нужно будет.

Проект по ссылке не столько не актуален, сколько ниже качества, чем нужно.

Бэк часть:
  • Не рабочая концепция проекта.
  • Не профессиональная архитектура. Обычно используется архитектура вида валидатор-контроллер-сервис-репозиторий. В данном случае это был бы ProductsService (директория products + класс в ней ProductsService). Также в этом сервисе лежал бы класс репозитория этого сервиса, где хранились бы методы запросов к базе данных. Запрос бы попадал в валидатор, затем в контроллер, оттуда в сервис, а сервис бы вызывал соответствующий метод в репозитории.
  • База данных. Нет внешнего ключа у продукта к категориям.
  • Нет типизации. Это нужно для статичных анализаторов, проверяющих код на ошибки. Пример public string $name - как свойство класса. public function getById(int $id) - как метод класса
  • Нет валидации запроса. Например, что поля формы должны не содержать определённые символы, или быть конкретного типа. (Очистка от тэгов , используемая в модели, должна находится ещё до того как запрос попадёт в контроллер.)
  • Коды и текстовки раскиданы по разным файлам. Всё должно лежать в одном файле, классе, куда будут обращаться все классы за результатом.
  • Отсутствует MVC. В каждом файле создаётся новый класс, и дескриптор подключения, хотя это повторяющееся действие нужно вынести в отдельный класс.
  • Коды ответа. Не соответствуют действительности. При создании не нужно возвращать 200. 200 подразумевает, что в ответе есть дополнительные данные. Правильный вариант 201


Фронт часть:
  • JQuery это рудимент.
  • Bootstrap не используется, если есть нормальный отдел разработки.
  • Стили страницы не разбиты на верхнюю и нижнюю части.
  • Не используется отложенная загрузка скриптов.
  • Вместо файлов JS для каждого типа CRUD достаточно одного JS файла
  • HTML код в JS. Загрузка JS это одна из самых затратных операций. Чем больше размер файла, тем выше время загрузки. Что сильно отщутимо на мобилке.
  • Везде используется POST запрос. В restfull api POST для создания, GET - для получения, DELETE - для удаления, Patch - для обновления части модели, PUT - Для обновления всех полей модели.

Этого курса достаточно, чтобы сделать востребованный на рынке restfull api проект.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы