Size: a a a

var chat = new Chat();

2020 April 12

DB

Dmytro Bardai in var chat = new Chat();
Yurii Nskyi
тут вопрос больше в том, что ты будешт делать с ролями, когда и как
Да всё что угодно. Проверять возможность выполнить операцию. Выводить разными цветами, в зависимости от наличия роли, имя пользователя. Что бизнес скажет, то и буду
источник

YN

Yurii Nskyi in var chat = new Chat();
Dmytro Bardai
То есть, сервисы для получения данных остаются. А в классах только бизнес логика.
Хорошо.

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

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

YN

Yurii Nskyi in var chat = new Chat();
Dmytro Bardai
Да всё что угодно. Проверять возможность выполнить операцию. Выводить разными цветами, в зависимости от наличия роли, имя пользователя. Что бизнес скажет, то и буду
строить воздушные замки это конечно прикольно, но обломно, так что когда бизнес скажет - тогда и решай!
источник

DB

Dmytro Bardai in var chat = new Chat();
Yurii Nskyi
строить воздушные замки это конечно прикольно, но обломно, так что когда бизнес скажет - тогда и решай!
Ну так архитектура должна быть готова к изменениям.
источник

N

Name => "Kyryll"; in var chat = new Chat();
Dmytro Bardai
Ещё раз. Мы тут рассматриваем гипотетический пример, как строить архитектуру. И в нём много допущений, чтобы не отвлекаться на несущественные детали.
Хорошо, тогда гипотетически, тьі всем свой пароль рассказьіваешь, когда спросят? Тогда почему пароль Public. Лучше передавай пароль в IAuthService.LogOn  Убери IsAuthenticated с пользователя, и перенеси его в сервис, которьій отвечает за аутентификацию в качестве метода IsAuthenticated(User user); Сейчас кто угодно может тебе юзера  аутентификавать.
источник

DB

Dmytro Bardai in var chat = new Chat();
Dmytro Bardai
Ну так архитектура должна быть готова к изменениям.
Изменениям требований.
источник

DB

Dmytro Bardai in var chat = new Chat();
Name => "Kyryll";
Хорошо, тогда гипотетически, тьі всем свой пароль рассказьіваешь, когда спросят? Тогда почему пароль Public. Лучше передавай пароль в IAuthService.LogOn  Убери IsAuthenticated с пользователя, и перенеси его в сервис, которьій отвечает за аутентификацию в качестве метода IsAuthenticated(User user); Сейчас кто угодно может тебе юзера  аутентификавать.
Дался тебе этот пароль. Полистай на середину беседы, там есть вариант, когда сервису передаётся экземпляр Creds и всё будет хорошо. ;)
источник

YN

Yurii Nskyi in var chat = new Chat();
Dmytro Bardai
Ну так архитектура должна быть готова к изменениям.
так где требования?) "Да всё что угодно." - это не требование, а блажь, всегда нужна конкретика
источник

DB

Dmytro Bardai in var chat = new Chat();
Раз
источник

DB

Dmytro Bardai in var chat = new Chat();
Два
источник

YN

Yurii Nskyi in var chat = new Chat();
Dmytro Bardai
Дался тебе этот пароль. Полистай на середину беседы, там есть вариант, когда сервису передаётся экземпляр Creds и всё будет хорошо. ;)
ну он прав, флаг IsAuthenticated в пользователе быть не должен
источник

DB

Dmytro Bardai in var chat = new Chat();
Yurii Nskyi
ну он прав, флаг IsAuthenticated в пользователе быть не должен
Так ты же сам настаивал на том, чтобы пользователя передавать в сервис аутентификации
источник

N

Name => "Kyryll"; in var chat = new Chat();
Да, пользователя и пароль.
источник

YN

Yurii Nskyi in var chat = new Chat();
Dmytro Bardai
Так ты же сам настаивал на том, чтобы пользователя передавать в сервис аутентификации
да, специального AnonymousUser, а возвращать AuthenticatedUser, видишь между ними разницу?
источник

DB

Dmytro Bardai in var chat = new Chat();
Yurii Nskyi
так где требования?) "Да всё что угодно." - это не требование, а блажь, всегда нужна конкретика
Ну, сегодня надо проверять права.
Завтра - делать раскраску, в зависимости от наличия роли.
Какая разница?
источник

YN

Yurii Nskyi in var chat = new Chat();
Dmytro Bardai
Ну, сегодня надо проверять права.
Завтра - делать раскраску, в зависимости от наличия роли.
Какая разница?
действительно, полная анархия...
источник

DB

Dmytro Bardai in var chat = new Chat();
Yurii Nskyi
да, специального AnonymousUser, а возвращать AuthenticatedUser, видишь между ними разницу?
И что в этом AnonymousUser хранить? Логин/пароль?
источник

DB

Dmytro Bardai in var chat = new Chat();
Yurii Nskyi
действительно, полная анархия...
Реалии корпоративной разработки.
источник

N

Name => "Kyryll"; in var chat = new Chat();
Нет
источник

YN

Yurii Nskyi in var chat = new Chat();
Dmytro Bardai
И что в этом AnonymousUser хранить? Логин/пароль?
типа того, может ещё какую-то инфу
источник