
Sergey
19.04.2018
11:06:01
и отсюда вопрос - нафига тебе класс если можно структуру?

Roman
19.04.2018
11:06:40

Sergey
19.04.2018
11:07:03

Roman
19.04.2018
11:07:25

Google

Roman
19.04.2018
11:07:31

Ihor
19.04.2018
11:07:47
вот кейс с измением емейла. User:changeEmail(newEmail). И вот мы поставили IsEmailVerified=false внутри changeEmail() и теперь должны отослать емейл.

Roman
19.04.2018
11:07:55
Плюс далеко не каждая в приватные поля/свойства может

Ihor
19.04.2018
11:07:57
кто и где будет отсылать этот емейл?

Roman
19.04.2018
11:08:23

Ihor
19.04.2018
11:08:50
где почитать об этом? https://martinfowler.com/eaaDev/DomainEvent.html - оно?

Roman
19.04.2018
11:08:54
А обработчиков этого события может быть хоть 3 сотни, нас это не волнует

Aleh
19.04.2018
11:09:24

Дмитрий
19.04.2018
11:09:27
Я кстати не уверен, что доменное событие это правильная абстракция

Roman
19.04.2018
11:09:59

Дмитрий
19.04.2018
11:10:08
Пытаясь это имплементировать, у меня раз за разом получается просто событие в домене + hoist

Roman
19.04.2018
11:11:16
Эвфемизм
Это как стрелять себе в ногу потому что кто-то там сказал, что геттеры это плохо.

Google

Roman
19.04.2018
11:11:35
Из разряда "а вот сын маминой подруги.."
Один фиг чтение свойств не меняет стейта

Aleh
19.04.2018
11:12:11

Roman
19.04.2018
11:12:19
Требует свойства

Aleh
19.04.2018
11:12:45
что это за свойства и поля разные такие?)

Дмитрий
19.04.2018
11:13:04
"Курс для тех, чьё приложение страдает от особенностей архитектуры"
"Старайтесь не допускать особенностей архитектуры"
"Наняли джуна, за неделю по всему коду напихал особенностей архитектуры"
Типа мы переименуем костыли и технический долг и они сразу перестают быть костылями и становятся Особенностями

Roman
19.04.2018
11:13:56

Дмитрий
19.04.2018
11:14:02
Абсурд, но именно так же это сейчас и заявляется

Roman
19.04.2018
11:14:49

Дмитрий
19.04.2018
11:14:56
Да

Aleh
19.04.2018
11:14:56

Roman
19.04.2018
11:15:00
И только Егор знает истину

Дмитрий
19.04.2018
11:15:00
Следующий вопрос

Aleh
19.04.2018
11:15:15

Roman
19.04.2018
11:15:17

Aleh
19.04.2018
11:15:18
не только

Дмитрий
19.04.2018
11:15:24
Я ответил, аллё
Да

Google

Дмитрий
19.04.2018
11:15:42
Людям почему то кажется, что они живут в мире, в котором решены пробемы разработки

Roman
19.04.2018
11:15:46
Да
Телега сегодня плохо себя чувствует

Дмитрий
19.04.2018
11:16:01
И они просто должны найти тех людей которые с этим справились

Ihor
19.04.2018
11:16:35
дак и что в итоге с User:changeEmail и отправкой емейла - domain event?

Pavel
19.04.2018
11:16:48

Дмитрий
19.04.2018
11:17:19
И они просто должны найти тех людей которые с этим справились
Разработка — это путь во тьме в глобальном плане — мы никогда с этим ранее в истории не сталкивались, это нормально, что люди и компании заблуждаются десятилетиями, как и то, что их путь вполне может быть оптимальным но проигрывающим каким-то новым концепциям

Roman
19.04.2018
11:17:49
Ну хз. По мне так абсолютно пофигу что эти свойства через геттер возвращают состояние. Главное что снаружи его поменять нельзя, инварианты не нарушатся, инстанс класса останется в корректном состоянии сколько бы угодно раз ты их не читал.

Дмитрий
19.04.2018
11:18:21
Потому что никто не знает как надо наверняка. Если тебе предъявляют конкретные претензии то бессмысленно ссылаться на абстрактных чуваков из мс, да, они, как и все другие могут заблуждаться десятилетиями, sad but true, следующий вопрос

Roman
19.04.2018
11:18:47

Дмитрий
19.04.2018
11:19:42
?

Roman
19.04.2018
11:20:20
Про наши пропертя - если что https://docs.microsoft.com/ru-ru/dotnet/csharp/programming-guide/classes-and-structs/properties
Но вот логику в них пихать - все сошлись на мнении, что это антипаттерн, поэтому автоимплементируемые юзают.

Дмитрий
19.04.2018
11:21:47
Ну да

Pavel
19.04.2018
11:25:08
Ну так че, надо делать не
setEmail(sting)
, а
changeEmail(new Email())
?

Дмитрий
19.04.2018
11:26:15
Нормально делай — нормально будет)

Миша
19.04.2018
14:42:33
Какой паттерн лучше применить. У меня ситуация, в зависимости от роли, мне нужно выгружать разное количество данных. То есть нужно "обрезать" лишнее, если нету доступа.

Ky
19.04.2018
14:45:47

Миша
19.04.2018
14:47:05
Определил бы в сервисе функции с правилами выгрузки под конкретный случай.

Ky
19.04.2018
14:47:33

Миша
19.04.2018
14:48:09
типа того, конкретной роли, конкретный метод

Google

Ky
19.04.2018
14:48:25

Миша
19.04.2018
14:49:52
Класс растет. Это не по ООП.

Ky
19.04.2018
14:50:04

Миша
19.04.2018
15:08:25

Ky
19.04.2018
15:08:56

Миша
19.04.2018
15:10:06

Ky
19.04.2018
15:10:55
ничего
А зачем тебе вообще паттерны?

Миша
19.04.2018
15:12:34

BioBodya
19.04.2018
15:16:13
Как же у тебя может быть плохая расширяемость в этом случае?
Класс не лист тетрадки - cтрочки не закончатся. Просто новая роль - новая функция.
новая роль - новая функция

Миша
19.04.2018
15:18:37
Я вас понял, навернуть кучу функций это нормально и не противоречит ООП. Так и сделаю.

Ky
19.04.2018
15:20:10

Миша
19.04.2018
15:20:48

Evgeniy
19.04.2018
15:20:53
кстате слышали maven central заблочили говорят ?)
тут уже это обсуждали ?)
кто то на java пишет?)

Ky
19.04.2018
15:21:10
BioBodya
Я про "куча функций противоречит ООП"

Like
19.04.2018
15:21:15

Aleh
19.04.2018
15:21:24
Если операция для каждой роли своя, то логично отправить ее в объект роли и для каждой новой роли определять по-своему метод/операцию

Google

BioBodya
19.04.2018
15:21:26
BioBodya
Это был сарказм. Жаль, что нет таблички.

Миша
19.04.2018
15:21:52

BioBodya
19.04.2018
15:22:40

Ky
19.04.2018
15:22:41

Like
19.04.2018
15:22:54

Миша
19.04.2018
15:23:15

Like
19.04.2018
15:23:30
Точнее, вообще не ответил

Миша
19.04.2018
15:24:14

Like
19.04.2018
15:24:24

Миша
19.04.2018
15:27:32
Забей
Если ты про почему не ответил на "Что нарушаешь?" Ну очевидно, я не могу понять, что я нарушаю. Эти принципы для меня слишком абстрактные.
думаю Open-closed нарушаю

Aleh
19.04.2018
15:30:19
да
еще cohesion не очень будет у итогового объекта, вероятно

Миша
19.04.2018
15:34:32

Aleh
19.04.2018
15:34:45
Если операция для каждой роли своя, то логично отправить ее в объект роли и для каждой новой роли определять по-своему метод/операцию

Миша
19.04.2018
15:35:14