@oop_ru

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

Roman
19.04.2018
11:06:40
почему геттер то? ты в сишарпе страшно любишь свойства... сделай приватное автосвойство и будет тебе оно как приватное поле. и все ок
Алллооо, ORM есть ещё, когда я Name захочу на UserName поменять - ORM'ка со своими потрохами, живущая в другом проекте - не увидит их. Надо их пабликом делать, либо строками описывать, что есть боль. Плюс оно медленнее работает, потому что начинается рефлекшон.

Roman
19.04.2018
11:07:25
и отсюда вопрос - нафига тебе класс если можно структуру?
Ну начнём с того, что ORM не умеет писать структуры в базку) Продолжим тем, что структуры всего передаются по значению, если явно не передаются ссылка)

Google
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
кто и где будет отсылать этот емейл?

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

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

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

Roman
19.04.2018
11:09:59
зачем объекту свое свойство получать через геттер?
Особенности архитектуры, чтобы не испытывать лютую жопную боль при конфиге ORM.

Дмитрий
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
Особенности архитектуры, чтобы не испытывать лютую жопную боль при конфиге ORM.
орм требует публичные поля у сущности? Какой сейчас год о.о

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
Абсурд, но именно так же это сейчас и заявляется
То бишь в Microsoft поголовно дебилы работают, что уже лет так 10 ORM'ки, завязанные на свойства делают?

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

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

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

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?

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

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

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

Дмитрий
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
Какой паттерн лучше применить. У меня ситуация, в зависимости от роли, мне нужно выгружать разное количество данных. То есть нужно "обрезать" лишнее, если нету доступа.

Миша
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
Я вас понял, навернуть кучу функций это нормально и не противоречит ООП. Так и сделаю.

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
Это был сарказм. Жаль, что нет таблички.
Ну я сюда не пошутить пришел, а попросил помощи

Я про "куча функций противоречит ООП"
Мне кто-то говорил, что если в классе больше 6 функций, скорее всего что то не так с ним.

BioBodya
19.04.2018
15:22:40
Ну я сюда не пошутить пришел, а попросил помощи
Ну так тебе и предлагают подумать, что нарушает твой подход. А он нарушает один из принципов solid

Миша
19.04.2018
15:23:15
Like
19.04.2018
15:23:30
знаю, ок подумаю
А почему тогда ты так долго не отвечал Ky ??

Точнее, вообще не ответил

Миша
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
еще cohesion не очень будет у итогового объекта, вероятно
Ну да скорее всего. Тогда я возвращаюсь к тому с чего начал. Как мне тогда это сделать, если это не правильно. Хотя я кажется понял стратегию этого чата, пойду сам разбираться.

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

Страница 612 из 785