@oop_ru

Страница 509 из 785
Nik
20.02.2018
11:02:45
https://habrahabr.ru/post/349434/
*шутка про объяснение транзакций 5летнему из комментов*

Maksim
20.02.2018
11:09:44
топчик же объяснение)

Bohdan
20.02.2018
11:12:50
в пхп чате я ведь кидал)

Oleg
20.02.2018
11:19:12
а дай линк на чат

Google
Ilia
20.02.2018
11:24:54
https://habrahabr.ru/post/349434/
ФЕЕРИЧНО ЯЩИТАЮ!

Ihor
20.02.2018
11:25:58
в пхп чате я ведь кидал)
линк на чат дай плз )

:( был я там, полезного мало

в основном спам

Adel
20.02.2018
11:30:38
https://t.me/phpclubru - ну тут в основном молчат :)

Ihor
20.02.2018
11:31:16
лучше, но в последнее время то же самое :(

Sergey
20.02.2018
11:31:24
ребят

а ну прекращаем

Adel
20.02.2018
11:31:53
ну да. рекламой пахнет. ты поудаляй если что.

Sergey
20.02.2018
11:32:04
оффтопом пахнет

Artur
20.02.2018
12:40:53
где тот еретик который полиморфизмом защищает solid

Артур Евгеньевич
20.02.2018
12:42:30
Artur
20.02.2018
12:42:38
дыа

Google
Artur
20.02.2018
12:48:50
Артур Евгеньевич
20.02.2018
12:49:45
лучше без сеттера менять любую пропрртю!? сеттер это то что в констракт не влезло или не обязательно
не менять без сеттера, а вызывать метод у объекта котоырй будет иметь смысл

то есть вместо setUserStatus(1) нужно писать banUser()

Artur
20.02.2018
12:51:03
бывает нужно просто засетить что-то

Alexandr
20.02.2018
12:51:07
а вместо setNickname(...) ?)

Maksim
20.02.2018
12:51:12
rename

Artur
20.02.2018
12:52:08
слишком простой пример

Alexandr
20.02.2018
12:52:24
rename
а если setFirstname, setLastname, setMiddlename?

Maksim
20.02.2018
12:52:50
сделай объект для фулнейма, для начала

Panda
20.02.2018
12:53:03
а если setFirstname, setLastname, setMiddlename?
Ренейм с параметрами...?

Artur
20.02.2018
12:53:05
если у DTO объекта есть меняемые пропорти - сеттер лучше чем прямой доступ

или магия

если это поведенческий класс в контракте принимает минимальный набор зависомостей - динамичесий лучшечерез сеттер делать

Артур Евгеньевич
20.02.2018
12:53:32
для DTO вообще не нужны гетеры и сетеры

можно просто публик свойства делать

Artur
20.02.2018
12:53:40
или тоже ИЗМЕНЕНИЕ

Артур Евгеньевич
20.02.2018
12:53:47
т.к это просто структура данных

Artur
20.02.2018
12:53:50
для DTO вообще не нужны гетеры и сетеры
так и нарушится типизация

Maksim
20.02.2018
12:53:52
для DTO вообще не нужны гетеры и сетеры
зависит от языка) в этом вашем богомерзком пхп иначе типы не проверить)

Google
Artur
20.02.2018
12:53:59
если речь про php

это ж не TS какой

в теории оно красиво конечно...

Maksim
20.02.2018
12:54:20
да-да-да, сейчас с ноги влетит Сергей с криками про phan, но он не панацея от слова совсем.

Artur
20.02.2018
12:54:46
можно. не значит правильно

Артур Евгеньевич
20.02.2018
12:54:47
зависит от языка) в этом вашем богомерзком пхп иначе типы не проверить)
как она нарушиться? вот мы DTO сформировали и отправляем его или в другой boundedContext или вообще в другую приложуху по http например

Like
20.02.2018
12:54:51
а если setFirstname, setLastname, setMiddlename?
class User { string firstname; string lastname; string middlename; } class Foo { void update(User user) { this.repository.update(user) }; } Делов то

Артур Евгеньевич
20.02.2018
12:55:11
а там уже мы валидируем это как данные, которым не доверяем

Like
20.02.2018
12:55:26
и ты создашь нового юзера? )
Это просто сущность

Artur
20.02.2018
12:55:27
чтобы СМЕНИТЬ имя?

Like
20.02.2018
12:55:46
Я тебе больше скажу, у меня в репозиториях везде этот User

Like
20.02.2018
12:55:50
И коллекции с ним

Artur
20.02.2018
12:56:08
если сеттер не нужен потому что он может быть опасен это не значит что сеттер не нужен. это значит что сеттер нужен не всегда когда его можно использовать

Maksim
20.02.2018
12:56:36
ты просто не контролируешь типы данных в своей дтошке. Если тебя такой расклад устраивает - это твоё дело

Alexandr
20.02.2018
12:56:58
сделай объект для фулнейма, для начала
ок, будет rename(FullNameDto) ... а что делать с setNickname тогда?)

Google
Artur
20.02.2018
12:57:22
сеттер значит изменить что-то. :) если это бизнес логика никто его сеттером и не назовёт

Maksim
20.02.2018
12:57:26
ок, будет rename(FullNameDto) ... а что делать с setNickname тогда?)
rename - это смена никнейма, а не смена полного имени

Artur
20.02.2018
12:57:39
если приджёт время ставить костыли в сеттеры - это надо по рукам давать

Alexandr
20.02.2018
12:59:32
rename - это смена никнейма, а не смена полного имени
неочевидно ... весь смысл отказа от сеттера - придумать корректное имя метода, справедливое для бизнес-процессов ... почему rename - это сменить ник, а не сменить ФИО? ... может пользовательница замуж вышла?

Like
20.02.2018
12:59:47
Чёт жесть какая-то.
Самая дичайшая

Admin
ERROR: S client not available

Maksim
20.02.2018
13:00:14
неочевидно ... весь смысл отказа от сеттера - придумать корректное имя метода, справедливое для бизнес-процессов ... почему rename - это сменить ник, а не сменить ФИО? ... может пользовательница замуж вышла?
да очевидно как раз. у тебя логин юзера есть? есть. Значит ренейм - смена логина. а смена полного имени - это нихера не ренейм. ну вот как не посмотри

Maksim
20.02.2018
13:00:47
на гос услугах смена никнейма - тоже будет ренейм

Roman
20.02.2018
13:01:21
Самая дичайшая
У меня просто тут это... си с решёткой. Там ченж трекинг есть. А весь персистенс вообще особняком от сущностей живёт. Чтоб такой дичи не было. И тестить такие сущности ультра-изи.

Roman
20.02.2018
13:01:59
Maksim
20.02.2018
13:02:25
а смена фио как будет выглядеть? ... renameFio?
блин, переведи дословно: fullNameChange

Артур Евгеньевич
20.02.2018
13:02:47
Alexandr
20.02.2018
13:03:04
блин, переведи дословно: fullNameChange
ну и чем это отличается от обычного сеттера?))

Artur
20.02.2018
13:03:11
вы никогда не сетили изменение поведения?

Google
Artur
20.02.2018
13:03:50
сеттеры это нормально. изговнять можно любой подход и паттерн

Артур Евгеньевич
20.02.2018
13:03:58
ты просто не контролируешь типы данных в своей дтошке. Если тебя такой расклад устраивает - это твоё дело
Абсолютно верно. Но DTO и не должна поддерживать свои инварианты корреткными. Это просто пакет для передачи данных, из которого уже другие классы будут создавать "настоящие" объекты и валидировать соответственно

Alexandr
20.02.2018
13:05:10
да +/- всем
fullNameChange VS setFullName ну да, +/- буквы по-разному расставлены)

Roman
20.02.2018
13:05:37
ну и чем это отличается от обычного сеттера?))
Сеттеры лично у меня приватные, так как они нужны для работы орм (только за этим в сущностях они и есть), чтобы она в них данных напихать могла. И в параметрах принимаемых по API от юзера DTO’х, пушо в get-only они не маппятся. Больше они вообще нигде не нужны. То бишь они нужны тупо для рефлекшена, чтобы инфраструктура могла с ними работать. (C# если что).

Артур Евгеньевич
20.02.2018
13:05:51
fullNameChange VS setFullName ну да, +/- буквы по-разному расставлены)
ты не понимаешь. fullnameChange - это бизнес событие, которое можно на пальцех объяснить кому угодно - владельцам, пользователям системы и т.д

Maksim
20.02.2018
13:06:02
Артур Евгеньевич
20.02.2018
13:06:11
а setFullName это уже низкоуровневая фигня понятная только программистам

Maksim
20.02.2018
13:06:36
##ddd_говно

Артур Евгеньевич
20.02.2018
13:06:39
допустим ты женился, ты говоришь - Я женился

Maksim
20.02.2018
13:06:43
:) приступим)

Bohdan
20.02.2018
13:06:58
попкорн ннада?

Roman
20.02.2018
13:07:17
##ddd_говно
#cqrs_говно

Артур Евгеньевич
20.02.2018
13:07:20
ты же не говоришь, я произвел манипуляции с документами( паспортом) и на такой то странице появились следующие строки

Maksim
20.02.2018
13:07:27
#cqrs_говно
редкостное)

Roman
20.02.2018
13:07:34
#event_sourcing_говно

Like
20.02.2018
13:07:54
Чаво уж там... #js_говно

Bohdan
20.02.2018
13:08:14
#oop_говно

Sergey
20.02.2018
13:08:29
#вывсе

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