
Sergey
18.01.2018
18:52:31
например)
эрланги, элексиры, акки
вжух так
"Ваше ООП говно! Даже Алан Кей от вас отвернулся! Только экторы!"

Google

Sergey
18.01.2018
18:53:53
Нет - ну серьезно. Он же просто модуль с процедурами. Как раньше в сях лабали так и щас, тока классом еще обозвали.

Sergey
18.01.2018
18:54:35
что до DTO - это больше вопрос к любви к слоям

Sergey
18.01.2018
18:55:14

Sergey
18.01.2018
18:55:32

Sergey
18.01.2018
18:55:35

Sergey
18.01.2018
18:55:54
там нет поведения
это просто структура данных

Sergey
18.01.2018
18:56:42
Если DTO это реально структура с геттерами сеттерами, которая суть кусок данных который передается из сервиса в сервис, то это стамп каплинг. Терпимо но не идеал
Если сервисов больше двух, то каплинг уже идет не между двумя сервисами, а между всеми что испольуют эту DTOшку. Уже не айс

Google

Sergey
18.01.2018
18:57:25
а если нет сеттеров - зачем тебе там геттеры?

Sergey
18.01.2018
18:57:51

Sergey
18.01.2018
18:57:57
> из сервиса в сервис
а зачем из сервиса в сервис?
из сервиса в сервис - это процедурщица. между "экторами" - это уже больше похоже на DTO.
ну или HTTP запрос в DTO замэпить
удобно

Sergey
18.01.2018
18:58:38

Sergey
18.01.2018
18:59:02
типа как http например обладает своим форматом для сообщений

Sergey
18.01.2018
18:59:13
Ну так вот - я не договорил
Если какой нить чудак додумается пописать в DTOхах логику, то DTO уже больше не структура, а модуль с дниженским кохеженом и охеренным каплингом. А если вся эта структура еще и мутабельна, то каплинг впридачу temporal
Первый вопрос - если DTO это структура, то на кой ляд в ней геттеры и сеттеры? Чтобы дать соблазн всяким чудакам понавешать туда логику?

Sergey
18.01.2018
19:01:51
http://qualityisspeed.blogspot.com.by/2014/09/beyond-solid-dependency-elimination.html
вот например чувак накидывает
в серии постов

Sergey
18.01.2018
19:02:27
Второй вопрос - если использование DTO в трех и более модулях ведет к их перекрестному каплингу - зачем вообще она тогда нужна? Не проще сразу сделать дата каплинг и передавать только то что нужно через аргументы?

Sergey
18.01.2018
19:02:59

Sergey
18.01.2018
19:03:14

Google

da horsie
18.01.2018
19:03:15

Sergey
18.01.2018
19:03:43
что бы типы в рантайме проверять?))

da horsie
18.01.2018
19:03:54
именно

Sergey
18.01.2018
19:04:01
ну и зачем тебе это?

Maksim
18.01.2018
19:04:18
сеттеров нет, геттеры есть. Жить проще :)

Sergey
18.01.2018
19:04:21

Sergey
18.01.2018
19:04:43

Артур Евгеньевич
18.01.2018
19:04:55
Я думал в пыхе дто это просто класс с паблик свойствами

Sergey
18.01.2018
19:05:00
А разве в хибернейте маппинг можно применить на голые final поля?

Sergey
18.01.2018
19:05:03
именно
вот есть у тебя DTO с пропертями, типы через phpdoc выставлены, типы ты можешь в конструкторе проверить. Все.
дальше всякие анализаторы тебя ткнут носом в то что ты int туда где boolean нужен пихаешь

Sergey
18.01.2018
19:05:43

Sergey
18.01.2018
19:05:44

Maksim
18.01.2018
19:05:51
я не доверяю на столько этим вашим анализаторам(

Sergey
18.01.2018
19:06:04
анализаторы это дополнение к ним а не замена)

Maksim
18.01.2018
19:06:24
пишу) и типы в пропертях перепроверяю)

Bohdan
18.01.2018
19:06:27

Sergey
18.01.2018
19:07:16

Google

Sergey
18.01.2018
19:07:24
а разве хибернейт так хочет?)
Я к тому что если так уж хоцца смаппить кортежи из базы на структурку, то просто описать иммутабельную структурку без геттеров и сеттеров не прокатит. Хибер такое не схавает (поправьте если заблуждаюсь)

da horsie
18.01.2018
19:07:45
ну а геттеры без сеттеров в пыхе это костыльная иммутабельность

Sergey
18.01.2018
19:08:26

Sergey
18.01.2018
19:09:21

Maksim
18.01.2018
19:09:29

Sergey
18.01.2018
19:09:32
для мэппингга данных это самое оно
это как десериализация

Admin
ERROR: S client not available

Sergey
18.01.2018
19:10:39

Sergey
18.01.2018
19:10:53
Ну ок. А как вам такой аргумент. Можем ли мы считать хиберову ентити структурой без логики? Ведь у нее есть лэзи поля в которые хибер складывает определенные ожидания

da horsie
18.01.2018
19:11:04

Maksim
18.01.2018
19:11:22
и бесконечная вера в порядочность анализатора
не, в помойку) лучше не давать лишний повод :)

Sergey
18.01.2018
19:12:01
знаю что существует мнение что JPA орудует Pure Fubricated Objects
то есть не доменными моделями

da horsie
18.01.2018
19:12:44
@fes0r тебе, вероятно, удалось собрать свою команду и достаточно хорошо их воспитать. Увы, это не всегда так получается, приходится заниматься defensive programming

Sergey
18.01.2018
19:12:58
а сам я юзаю чуть другую ORM у которой, в силу динамической типизации и мощной рефлексии нет таких проблем как у гибернейта

Google

Sergey
18.01.2018
19:13:26

Maksim
18.01.2018
19:13:43

Sergey
18.01.2018
19:13:59

Maksim
18.01.2018
19:14:21
можно взять обрез и пойти в лес. Шансы нарваться на волка останутся прежними, а вот выйти целым - повышаются

da horsie
18.01.2018
19:16:34
костыле-ориентированное программирование такое. у пыха свой bounded context, геттеры и сеттеры там значат несколько другие вещи)

Sergey
18.01.2018
19:17:08
почему в питоне основной принцип которым оправдывают отсутствие прайватов - we are all adults
короч так себе оправдание
легаси - другое дело
тут не важен язык, но тут и не надо говорить что это значит что-то другое.
просто компромис

Maksim
18.01.2018
19:18:42
судя по всему ты там работаешь с командой первоклассных спецов, которые почему-то не доехали до гугла)
обычные смертные, вроде меня, роскошь в стиле "we are all adults" позволить себе не могут)

da horsie
18.01.2018
19:19:22
не всем так повезло

Maksim
18.01.2018
19:21:52
как раз мой опыт подсказывает, что если оставить кучу говна, поставить рядом табличку "не влезь!!11адын!", в неё обязательно наступят. И дай бог если только 1 раз

Sergey
18.01.2018
19:22:32

da horsie
18.01.2018
19:22:35

Sergey
18.01.2018
19:22:37
вот скажи

da horsie
18.01.2018
19:22:57

Sergey
18.01.2018
19:23:36