Вариант решения задания - проектирование предметной области

Продолжительность: 7 мин

Итак, надеюсь у вас получилось выполнить упражение по проектированию предметной области.

Ниже, возможный вариант решения этой задачи. Я просто дополнил список сущностей, добавив те, которые обнаружил в процессе: позиции меню, категории, опции блюд, корзину. Затем я указал основные атрибуты и операции для каждой сущности.

Результат вы сможете найти по ссылке

Ниже вы можете увидеть диаграмму классов. Я создал её очень просто: скопировал весь список сущностей, передал его ChatGPT и попросил сгенерировать диаграмму-классов в синтаксисе Mermaid. После этого я вставил результат в Mermaid.live — и получил визуальную схему. Такие диаграммы полезны при написании дизайн-документов или когда нужно объяснить устройство какой-то фичи и показать все сущности, вовлечённые в процесс. Позже в модуле мы ещё поговорим о диаграммах и документации.

Food Fleet Class Diagramm

Хотелось бы отметить пару интересных моментов.

Первый — это выбор типов данных. Когда у вас недостаточно опыта в выполнении подобных задач может быть трудно определиться с форматом и типом данных для тех или иных сущностей. Иногда приходится просто делать предположения, выбирая лучшее, но при этом нужно быть готовым изменить свое решение в будущем если понадобиться. Например, для времени доставки я выбрал кортеж из двух чисел. Возможно, в итоге тип будет другим, но это хотя бы точка для обсуждения с командой: как мы хотим работать с этим атрибутом на UI-слое, как он будет выглядеть в данных, как его парсить и преобразовывать.

Второй момент связан с именованием сущностей. В процессе я обнаружил, что у меня есть два разных типа категорий:
категория ресторана (итальянский, японский, мексиканский),
категория меню (завтрак, десерты, бургеры).

Сначала я назвал категорию ресторана просто Category, потому что других категорий ещё не было. Но когда появилась вторая категория, пришлось переименовать первую, чтобы быть конкретнее. Это важно: если в будущем в коде мы увидим что-то вроде Category, будет неясно, о какой категории речь — ведь обе связаны с рестораном, просто по-разному.

Это отличный пример того, почему лучше продумать названия на раннем этапе. Сейчас изменить имя сущности — пару секунд. Если бы приложение уже было реализовано, переименование затронуло бы десятки файлов, функций, типов — и заняло гораздо больше времени.

Это платный урок

Купите полный доступ к курсу чтобы просматривать данный контент

Основы архитектуры фронтенда

Изучите основы проектирования современных, высоконагруженных фронтенд-приложений.

3990 Скидка 75%
990

Безопасные платежи обрабатываются сервисом Юкасса

Комментарии

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