
pew
23.03.2018
10:23:35
или стейт буду передавать в качестве аргумента
ой все

Sergey
23.03.2018
10:23:42
если ты про query методы которые чето там считают и возвращают - это не "доступ к стэйту"

Google

pew
23.03.2018
10:24:19
не важно про что я, бахнул свойств пачку, передал ссылку на объект, зачекал свойства
получил водокачку

Roman
23.03.2018
10:24:25
Просто если всё на полях приватных делать (вообще без геттеров-сеттеров) - то тут вопрос рефакторинга остро встаёт. Потому что для десериалищации объекта из базы - надо строками указывать имена полей. То есть переименовал поле - будь добр не забыть и конфиг сущности в ORM’ке поправить.

Sergey
23.03.2018
10:24:31
но в целом есть много вариантов. С тем же временем мне понравилась идея воспринимать время как стрим тэймстэмпов

Roman
23.03.2018
10:24:57
И со своей микро-орм

Sergey
23.03.2018
10:25:17

Aleh
23.03.2018
10:25:24

Sergey
23.03.2018
10:25:25
разные масштабы

pew
23.03.2018
10:25:44

Roman
23.03.2018
10:25:46
Потому что я могу через лямбду (это экспрешоны у нас) указать на нужное свойство и что с ним делать (если есть публичный геттер).

Google

Sergey
23.03.2018
10:26:49

Roman
23.03.2018
10:26:49
И все фишки, типа переименования свойства начинают работать.
Попутно меняя и лямбду в конфиге ОРМ, если ты сущность рефакторишь

Sergey
23.03.2018
10:27:42

pew
23.03.2018
10:27:50

Sergey
23.03.2018
10:28:08
а хотя.... объяснение стэйта как "просто все подряд запихнутое в рюкзак" очень точно отражает то как люди делают декомпозицию

pew
23.03.2018
10:28:55
а про шмотку
у тя шмотка

Aleh
23.03.2018
10:29:07

Sergey
23.03.2018
10:29:23

Aleh
23.03.2018
10:29:33
и со старыми именами, которые уже неактуальны

Roman
23.03.2018
10:29:42
геттеры то зачем?)
config.Property(x=> x.Name).Required().HasMaxLength(200);
Вот Name - это свойство с публичным геттером. А если его нет, а есть только поле, то
config.Property(”_name”).Required().HasMaxLength(200);

Sergey
23.03.2018
10:29:59
попахивает смешением ответственности

pew
23.03.2018
10:30:17
тогда я не понял вопроса
ну у шмотки свойства, ты её передаешь куда надо, обращаешься к чему хочешь, ты же не фреймворк пишешь! Что такого что о шмотке весь проект будет знать и какие у неё свойства, если это неотъемлемая часть проекта

Roman
23.03.2018
10:30:17

pew
23.03.2018
10:30:24
зачем задрачиваться ради задрачивания
а потом бить в грудь себя и кричать я ЖЕЖ ООП

Google

Sergey
23.03.2018
10:30:57

Aleh
23.03.2018
10:31:16

Sergey
23.03.2018
10:31:25
я ж к этому всему пришел не потому что "скучно было" а потому что хлебнул проблем с изменениями требований

pew
23.03.2018
10:31:39

Aleh
23.03.2018
10:32:08

pew
23.03.2018
10:33:03

Roman
23.03.2018
10:33:46
нифига не понимаю...
В первом случае, я иду в класс User, становлюсь на имя свойства с геттером, жму Ctrl+R+R, пишу UserName, и мой конфиг из
config.Property(x=> x.Name).Required().HasMaxLength(200);
превращается в
config.Property(x=> x.UserName).Required().HasMaxLength(200);
, а во втором он каким был - таким и остался, и мне надо ручками идти и править его.

Sergey
23.03.2018
10:34:33

Дмитрий
23.03.2018
10:34:37

Roman
23.03.2018
10:34:37
А когда там в свойствах ссылки на другие сущности - VO - то вообще трэш угар и веселуха начинается

Sergey
23.03.2018
10:34:49

Дмитрий
23.03.2018
10:35:11
Ну я бы не сказал что это очевидно

Sergey
23.03.2018
10:35:13

pew
23.03.2018
10:35:16
ясно, свойства не нужны, методы тоже

Aleh
23.03.2018
10:35:19

Roman
23.03.2018
10:35:19
не вижу профита
Профит в том, что у тебя не возникнет ситуации, когда в модели у тебя одно, а в конфиге ORM другое.

pew
23.03.2018
10:35:25

Roman
23.03.2018
10:35:43
ide-проблемы
То есть она должна имя приватного поля сама туда запихнуть по-твоему?

Aleh
23.03.2018
10:35:50
продолжай, интересно же
так че продолжать, надо добавить новый тип шмотки, а у вас старые шмотки размазаны по проекту
и надо везде добавлять проверочки

Google

Sergey
23.03.2018
10:35:55

Roman
23.03.2018
10:35:58

pew
23.03.2018
10:36:04

Aleh
23.03.2018
10:36:05

Roman
23.03.2018
10:37:07

pew
23.03.2018
10:37:27

Sergey
23.03.2018
10:37:42

pew
23.03.2018
10:38:25

Sergey
23.03.2018
10:38:26
если мы говорим про инвентар в играх - ты когда "достаешь" предметы то меняется стэйт

Roman
23.03.2018
10:38:36

pew
23.03.2018
10:38:49
чето пошло потом в ключе типа да геттеры фигня, надо по другому че-то кудато не пойми что куда передавать
а знать о геттерах типа сакс

Sergey
23.03.2018
10:40:34
Ну то бишь если я через геттер не изменяю состояния, а сеттер у меня закрыт (изменения можно вносить только изнутри сущности) - то в целом такой подход - норм?
давай разберемся с логической цепочкой.... ты сделал приватными сеттерами потому что публичные сеттеры тебе не нужны. Да и в целом сеттеры тебе нужны только для ORM. Геттеры так же только для ORM. Появилось это решение как следствие какой-то другой проблемы (то что у тебя там что-то в отдельном проекте и по другому тяжело и больно). Скорее всего у этой проблемы найдется и другое решение которое не подразумевает наличия ни геттеров ни сеттеров, но в целом я допускаю что "на данный момент сойдет если использование этих геттеров и сеттеров строго ограничено конкретно этой задачей и никто и никогда не будет юзать эти геттеры для других целей"


pew
23.03.2018
10:42:20
стейт только через методы

Sergey
23.03.2018
10:42:39

Roman
23.03.2018
10:42:45

pew
23.03.2018
10:42:59

Google

Sergey
23.03.2018
10:43:12

Roman
23.03.2018
10:43:23
internal - это видимость в пределах сборки
Среднее между public и private

pew
23.03.2018
10:43:59
и зачем ты к ней обращаешься?
ну вес посчитать к примеру, или для квеста првоерить подходят ли вещи, или к вещи в руке могу обратиться посчитать формулы

Sergey
23.03.2018
10:44:08

pew
23.03.2018
10:44:12
и еще много как

Roman
23.03.2018
10:44:27

Sergey
23.03.2018
10:44:31

pew
23.03.2018
10:44:59
или проверить подойдет вещь что бы одеть или нет
или для бартера выставить шмотку, или нпц продать

Sergey
23.03.2018
10:45:38

pew
23.03.2018
10:45:40
или для крафта
ну так

Sergey
23.03.2018
10:45:52

pew
23.03.2018
10:46:53
я не делал но покури, не знаю курил ты, сколько там делал т что делаешь, ну короче вот тебе мой совет, ниблагадари
))))

Aleh
23.03.2018
10:47:07

pew
23.03.2018
10:47:31

Aleh
23.03.2018
10:47:35
https://martinfowler.com/bliki/TellDontAsk.html

pew
23.03.2018
10:47:40
а потом все равно в компонентах обращайся к этой вещи
ну спс