Правильно ли у меня представление о создании 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 базу и отправлять запросы..
Но я особо понятия не имею о работе бэкендера)
Дополнительно:
Зависит от компании. бычно фронт занимается своими делами, а бэк своими.
В лучшем случае, вы будете делать то, что говорит Тим-лид. Если нужно делать фронт на готовое от Бэка 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 проект.
- Хочется узнать о фулл стэк разработке и чисто для портфолио свое веб приложение запилить прост) Верный ли это вообще подход или нет - не знаю просто, могу плюнуть и на firebase оставить бэкенд часть приложения
- Niksak, существует такое понятие как рабочий инкремент. Например форма авторизации.
Сначала делается бэк часть: БД, модель, валидация реквестов и формирование респонса.
Потом фронт часть: верстка и ajax запрос.В таком духе делаете инкремент за инкрементом. Обычно это укладывается в рамки рабочего спринта.
- AgentSmith72, ну а вообще если, то по ссылкам вещи достаточно полезные и актуальные ведь если с нуля свое писать? Я для диплома хотел) Такое можно вообще на любом яп серверном сделать же
- Niksak, я когда-то давно, тоже искал пример проекта с restfull api, и возпроизвел этот проект, что вы скинули в ссылке в вопросе.
Теперь спустя время я понимаю, что это далеко от того, как реализуется rest api сейчас.
Если планируете искать работу, и сделать востребованный restfull api проект в портфолио, то лучше создайте проект по современным стандартам разработки, сразу с ddd и с востребованными на работе технологиями. Этого уже хватит, чтобы найти работу в хорошей компании.
Рекомендую этот курс
- AgentSmith72, неактуально значит, ладно:( а за курс спасибо емае
- Niksak, обновил ответ, добавив код ревью.
Для решения данной проблемы вы можете воспользоваться услугами фрилансеров. Мы выполним необходимую работу быстро и качественно.
Оставить комментарий Отменить
Ответы
- Есть ответ! к записи Как уменьшить масштаб меньше 100% в Windows 10 (22H2)
- Есть ответ! к записи Аналоги CloudFlare в России?
- Есть ответ! к записи Аналоги CloudFlare в России?
- Есть ответ! к записи Как называется человек, который дизайн придумает для сайта и сверстает его?
- Есть ответ! к записи Можно ли установить Яндекс.Диск на АльтЛинукс?
- Есть ответ! к записи Картинки мутные только на сафари, есть выход?
- Есть ответ! к записи Keenetic. Как настроить SSTP клиент с сертификатом?
- Есть ответ! к записи Чем заменить executor в aiogram 3?
Для того чтобы иметь верное представление о разработке fullstack веб-приложений, необходимо понимать основные принципы и технологии, которые используются при создании таких приложений. Fullstack веб-разработка охватывает как frontend (клиентскую часть) приложения, так и backend (серверную часть), что требует знаний и умений в различных областях.
1. Frontend:
- HTML, CSS и JavaScript являются основными языками для создания пользовательского интерфейса веб-приложения. Здесь важно понимать структуру документа, стилизацию элементов и взаимодействие с пользователем через JavaScript.
- Фреймворки и библиотеки, такие как React, Angular или Vue.js, помогают упростить разработку frontend части приложения, делая его более масштабируемым и удобным для работы.
2. Backend:
- Для разработки серверной части веб-приложения используются различные языки программирования, такие как PHP, Python, Node.js, Java и другие.
- Базы данных (например, MySQL, MongoDB, PostgreSQL) играют важную роль в хранении и обработке данных приложения.
- Фреймворки для backend разработки, такие как Laravel (для PHP), Django (для Python) или Express.js (для Node.js), упрощают создание API, обработку запросов и управление данными.
3. Коммуникация между frontend и backend:
- RESTful API или GraphQL используются для обмена данными между клиентской и серверной частями приложения.
- Аутентификация и авторизация пользователей обеспечивают безопасность приложения.
4. Деплой и мониторинг:
- После завершения разработки важно уметь задеплоить приложение на сервер и настроить мониторинг его работы.
Имея понимание всех этих аспектов, вы сможете разрабатывать fullstack веб-приложения эффективно и профессионально. Не забывайте постоянно обучаться и следить за новыми технологиями в сфере веб-разработки.