Где найти блок схемы php js приложений?

Хочу построить первое js приложение(интернет магазин). Backend на php.
Нигде не могу найти блок схему. Есть отдельные части, вроде бы все понятно, но когда дело доходит до практики, не могу сложить в общую картину из-за не прорисованной изначально архитектуры.
Подскажите где можно об этом почитать(от а до я), или если кто-то делал такие проекты и понимает в этом - можете нарисовать простую понятную блок схему?
  • Вопрос задан
  • 859 просмотров
Решения вопроса 2
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Нигде не могу найти блок схему.


А вы себе представляете ее размеры? Даже глупо пытаться ее составлять.

можете нарисовать простую понятную блок схему?


Дробите большую задачу на маленькие до тех пор, пока не сможете решить каждую маленькую задачу. Декомпозиция и все такое. Никогда не пытайтесь решать большие задачи вот таким вот "подходом". Никто в здравом уме так не делает.
Ответ написан
@sergyx
Давай попробуем декомпозировать задачу на самом примитивном примере.

Определим действия, которые должен совершить покупатель для покупки.
1-Зайти на главную страницу магазина. Должна быть [Главная страница магазина]
2-Увидеть каталог всевозможных товаров. Должна быть [Страница каталога товаров] на которой можно увидеть список доступных для покупки товаров. Также в БД должна быть [таблица товаров].
3-Перейти к описанию конкретного товара. Должна быть [Страница описания конкретного товара]
4-На странице описания товара нажать на кнопку "Купить"
4.1 По нажатию на кнопку "Купить" совершается действие помещения товара в корзину покупателя.
Здесь надо где-то хранить эту корзину (выбранные к покупке товары), например, будем добавлять в куки браузера ид только что выбранного товара.
5-По нажатию на кнопку "Корзина" загружается страница с выбранными покупателем товарами. Должна быть страница [Корзина покупателя]
6-По нажатию на кнопку "Оформить заказ" загружается страница со списком выбранных к покупке товаров, формой данных покупателя (адрес и т.п.) и кнопкой подтверждения заказа. Должна быть страница [Оформление заказа].
7.1 По нажатию на кнопку "Подтвердить покупку" в системе создается новая сущность Заказ. В БД должна быть [таблица заказов]
Владелец магазина должен иметь возможность просмотреть эту таблицу, но это уже админка, ее рассматривать не будем.

Итого, при первом приближении имеем:
БД:
--таблица товаров
--таблица заказов

Открытая часть магазина (то, что доступно покупателю):
1--главная страница. Содержит:
-ссылка на каталог товаров
-ссылка на корзину
-ссылка на оформление заказа
2--страница каталога товаров. Содержит:
-список товаров, где напротив каждого товара стоит ссылка на страницу конкретного товара
3--страница описания конкретного товара. Содержит:
-описание товара
-кнопку "купить"
4--страница корзины. Содержит:
-список выбранных для покупки товаров
-кнопку "оформить заказ"
5--страница оформления заказа. Содержит:
-список выбранных для покупки товаров
-поле адреса для доставки
-кнопку "подтвердить заказ"
Т.е. уже можем нарисовать структуру страниц открытой части сайта, которые можно представить в виде отдельных квадратиков, со стрелками друг на друга, например
---главная страница---
       каталог товаров ---> [страница каталога]
	             корзина ---> [страница отображения корзины]	  
			   и т.д.
----------------------

Углубляемся дальше на примере 1-помещения товара в корзину и 2-отображения корзины:
1-помещение товара в корзину.
Находясь на странице описания товара и нажав на кнопку "купить", необходимо проделать следующее.
(храним выбранные товары в куках)
--прочитать куки пользователя
--извлечь из них идешки уже имеющихся в куках товаров
--добавить к этому списку ид выбранного товара
--перезаписать этот список в куки
Что для этого надо (углубляемся еще):
На странице описания товара надо иметь ссылку типа /product.php?action=add-to-cart&id={ид-товара}, по нажатию на которую передается управление скрипту product.php c действием add-to-cart.
product.php, определив, что задано действие add-to-cart
--читает параметр _GET[id]
--читает из кук пользователя уже сохраненные там идешки (их может там еще не быть)
--добавляет к списку сохраненных идешек только что прочитанный параметр _GET[id]
--перезаписывает в куки пользователя новый список идешек
--отображает страницу описания этого же продукта, как-то оформляем, что товар уже добавлен в корзину.

2-отображение корзины:
Где-то на главной странице имеем ссылку на корзину типа /cart.php
Скрипт cart.php:
--читает из кук пользователя сохраненные там идешки (мы уже это делали выше, значит это можно оформить в отдельную функию)
--делает из таблицы товаров выборку тех товаров, идешки которых записаны в куках
--отображает страницу корзины, в которой выводятся только что выбранные из БД товары

И т.д. и т.п. по каждому пункту.
Т.е.
-сначала делаем описание всех возможных действий пользователя
-по нему формируем набор страниц, с соответствующим интерфейсом (ссылки, кнопки, формы, списки, деревья и т.д.), на которых эти действия он может реализовать.
-для каждого действия пользователя на сервере/фронте создаем соответствующие обработчики, которые, исходя из собственно заданного действия и состояния системы на тот момент, выполняют какие-то действия: читают/записывают что-то в БД/куки, запрашивают что-то у пользователя или что-то ему отображают.
-каждый пункт можно оформить в любую графическую схему со стрелками/алгоритм или словесное описание.
-каждый пункт можно детализировать в подпункты, в под-подпункты и т.д.
ps
для начала рекомендую начать с чего-то более простого, например, с простейшего блога, гостевой книги или т.п.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы