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

Hw 2 #11

Open
wants to merge 5 commits into
base: main
Choose a base branch
from
Open

Hw 2 #11

wants to merge 5 commits into from

Conversation

Pauline-sh
Copy link

No description provided.

Copy link

@Alviner Alviner left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Здравствуйте!
Ознакомился с работой! Одобряю выбор plantuml, сам пользуюсь)
Очень понравились adr, в некоторых указаны альтернативы и был проведен сравнительный анализ. Схемы используют привычную нотацию и понятны без дополнительных комментариев.

Однако, есть небольшие замечания, которые нужно исправить:

  • adr представляют собой лишь историю принятия решений, основным документом все же является notificator/software_architecture_document.md, поэтому нужно описать в нем:
    • требования об ожидаемой нагрузке на основании чего можно будет делать предположения
    • компоненты системы, со ссылками на материалы об особенностях, особенно с имплементацией выбранных паттернов
    • критерии оценки прототипа, который должен быть создан по имеющейся схеме
  • на схемах не обозначено как будет происходить авторизация и аутентификация

Некоторые моменты также были подсвечены в пр.

Напоминаю, что работа не может быть принята без исправления всех критических ошибок! Желаю удачи!

- Хранилище:
база данных, которая хранит информацию об учетных записях пользователей из других подсистем и настроек сообщений для них

Для контейнеризации компонентов используем Docker, а для оркестрации системы должен использоваться Kubernetes. Это популярные решения с большой поддержкой коммьюнити.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Это действительно так, но что если команда не умеет работать с кубером?

Обычно принимают такие решения с учетом контекста команды и ресурсов (денежных, временных и тд)

Не стоит брать решение только из-за того, что оно популярно и у всех на слуху


#### Отрицательные:
* требует больше времени на разработку
* требует больше ресурсов для поддержки
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

не забываем еще про сопровождение. Обычно поддержка это что-то точечное и адресное, в данном случае нужно скорее сопровождение, которое идет непрерывно


Альтернативные решения:
python + django -- более распространенный, но менее производительный
nodejs + express -- поддерживает асинхронное выполнение из коробки, но менее производительный и не поддерживает "настоящую" многопоточность. менее распространенный чем go и python
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

вот тут не хватает ссылки на требования, откуда будет понятно, что допустим python действительно не проходит под производительность, особых вычислений я пока не увидел, пока кажется, что чаще всего элементы будут перекладывать данные и ждать ответа


#### Отрицательные:
* отсутствие стандартных библиотек для работы с базами данных
* у команды небольшой опыт разработки на этом языке, потребуется дополнительное время на обучение и наем новых сотрудников
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Молодец! Как я отмечал в комментариях выше, это действительно может быть проблемой

База данных для хранения настроек отправки
Выбираем PostgreSQL

Альтернативные решения:
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Здорово, вот тут и сравнения есть, было бы замечательно увидеть альтернативы и сравнения и по другим компонентам


Альтернативные решения:
MySQL -- легче в настройке, но имеет меньше инструментов для работы с данными.
MongoDB -- NoSQL база данных. Может быть полезна, если в будущем понадобится хранить большое количество данных, но в нашем случае структура у данных достаточно жесткая, чтобы использовать SQL базу данных
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

в описании есть ссылка на жесткую структуру, которая не обозначена в adr и основном документе


#### Положительные:
* прост в настройке и использовании
* хранит историю сообщений
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

а можешь подробней рассказать как rabbitmq будет хранить историю сообщений в данном случае?

* удобный интерфейс для просмотра логов

#### Отрицательные:
* дополнительные затраты на интеграцию логирования и алертов
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

скорее всего нужна еще инфраструктура для хранения логов и данных, а это опять же поддержка и сопровождение

но обычно это решается централизовано для команды/компании

Copy link

@Alviner Alviner left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Прекрасная работа! Твой проект подсистемы отправки оповещений о событиях выглядит великолепно.

Ты удачно реализовал рассылку уведомлений через различные каналы связи, включая email, SMS и push-уведомления. Возможность настройки для каждого канала позволяет пользователям максимально адаптировать систему под свои нужды.

Технический проект написан чисто и структурирован логично, что сделает его поддержку и дальнейшее развитие более удобными.

Спасибо за твой вклад!. Отличная работа

Прости пожалуйста за долгое ожидание( я действительно взял в работу и не отправил обратную связь

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants