169 похожих чатов

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

например.
Вот у меня есть пользователь. И мне нужно его аутентифицировать.
Как оно сейчас? Сервис аутентификации, метод LogOn(login, password), возвращает экземпляр User. User - простейшее DTO. Ну там, FirstName, LastName, Login, Email и т.д.
Если мы объединяем логику работы с данными и сами данные, то тогда как?
В конструкторе? Типа: new User(login, password) и лезем в базу? Да не, нельзя. У нас же везде async / await.
Тогда
var user = new User();
await user.LogOn(login, password);
-> user.Email => "user@domain.com"

var user2 = new User();
-> user.Email => throw new EntityStateException("Entity is not initialized")
Так получается?

1 ответов

10 просмотров

Погнали: 1. За аутентификацию у тебя отвечает специальный сервис, который принимает на вход пользователя, тут идём вровень, НО этот сервис принимает не какую-то там ДТО пользователя, а твоего доменного, который уже сугубо правильный с точки соблюдения всех валидаций! ДТО тебе не могут гарантировать инкапсуляцию. await user.LogOn(login, password); -> бред, у тебя пользователи сами себя логинят? это же не так, даже по элементарной логике

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта