Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sprint 1 #144

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
79 changes: 79 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
# Введение
Предлагаю свою реализацию задания по спринту №1. Выполнены 1 и 2 уровни.
# 1. Разделение монолита на микрофронтенды
Далее будет описан процесс разделения монолитного приложения на микрофронтед
в соответствии с планом, предложенным в спринте.
## Проектирование
### Выбор стратегии проектирования
Мною выбрана стратегия вертикальной нарезки как наиболее подходящего для
выполнения данного задания. Выбор пал на данную стратеги по следующим причинам:
- стратегия основывается на подходе DDD, что идеально подходит для разделения монолита по бизнес-функциям;
- не ограничивает выбор для каждого слоя нарезки фреймворка/библиотеки/технологии,
что может быть полезным для изучения новых фреймворков/библиотек/технологий;
- позволяет разрабатывать слои независимо друг от друга, на сколько это возможно.
### Выбор варианта реализации
Исходя из вышеперечисленных соображений и простоты и скорости реализации выбранных стратегий, выбор пал на
метод интеграции - **run time**. Так же был сделан выбор в пользу **клиентской композиции**
из-за преимуществ, которые она предоставляет.
### Выбор инструмента
**Single SPA** был выбран из-за особенности Framework agnostic, так как при выполнении
задания хотелось вспомнить React и начать изучать Vue, а так же сравнить подходы разработки
с использованием этих библиотек.
### Выбор метода управления состоянием и связью между микрофронтендами
Для управления состоянием и связью между микрофронтендами был выбран через API по
следующим причинам:
- приложение практически не имеет связей между
## Планирование изменений
```
/styles
main.css # Корневой файл стилей
/user-mf # Микрофронтенд упраления пользователем
/src
/components
EditProfile.jsx # Компонент редактирования профиля пользователем
/api
Users.js # Файл с методами для доступа к API управления пользователями
/store
Stroe.js # Хранилище состояний для компонентов
EditProfileMF.js # Файл с экспортом обертки над EditProfile.jsx для SingleSPA
package.json # Конфигурация с зависимостями для микрофронтенда
webpack.config.js # Корневая конфигурация Webpack для микрофронтенда
/photos-mf # Микрофронтенд отображения фотографий
/src
/components
Photos.jsx # компонент отоборажений ленты с фотографиями c возможностью ленивой загрузки
Editior.jsx # компонент для загрузуи фотографий
Viewer.jsx # компонент для отображения одной фотографии
/api
Photos.js # Файл с для опрерацй с фотографиями через API
/store
Stroe.js # Хранилище состояний для компонентов
PhotosMF.js # Файл с экспортом обертки над Photos.js для SingleSPA
package.json
webpack.config.js
/likes-mf # микрофронтенд отметками пользователей.
/src
/components
Like.jsx # Копонента для отображения рекации пользователя(лайка)
/api
Likes.js # Методы для доступа к API с лайками для объекта(фотографий)
/store
Stroe.js # Хранилище состояний для компонентов
package.json
webpack.config.js
LikeMF.js # Файл с экспортом обертки над Like.jsx для SingleSPA
/src # Компонеты общего назначения, которые используются в
/components # во всем приложении

index.html
package.json # Корневой конфигурация с зависимостями
root.config.js # Корневая конфигурация библиотеки SingleSPA
webpack.config.js # Корневая Корневая конфигурация
```

# 2. Декомпозиция веб-приложения на Django на микросервисы
[Ссылка | https://drive.google.com/file/d/17V3olC-fsOU6TJKYeos3U1LDmhRbcUaJ/view?usp=sharing ] Если нет доступа по ссылке,
в коммите есть экспортированный вариант в файле diagram.txt
Данная диаграмма содержит несколько слоев для большей наглядности. Назначение компонентов на слое Легенда.
Полное описание потоки операций опущены в данной диаграмме, так как считаю невозможным наглядного изображения на данной
диаграмме, для этого есть другие варианты диаграмм, например диаграмма последовательностей
1 change: 1 addition & 0 deletions diagram.txt

Large diffs are not rendered by default.