
Dmitry
28.08.2018
21:21:45
хм

Adel
28.08.2018
21:21:50
это не зависимости

f4rt~
28.08.2018
21:22:05
чо рофлишь

Google

Maxim
28.08.2018
21:22:26
@oneerror Композиция позволяет скрыть отношение использования объектов от глаз клиента.
Агрегация - Выставление наружу деталей реализации.

dev
28.08.2018
21:22:45
а в реальности вам дают проект на вордпресе и говорят тут голосовалка отпала - почини

f4rt~
28.08.2018
21:22:49
точней не мимо, а сложно

Adel
28.08.2018
21:24:07
чо рофлишь
в случае stateless сервисов - это зависимости. а когда сущность-агрегат просит себе свои компоненты(другие сущности) как-то нет смысла называть их зависимостями...
хотяпофиг. дерьмоспор какойто :)

Vit
28.08.2018
21:24:47
@Adelf32 где то месяц назад ты с кем то собирался дуэль устроить, типа наследование vs композиция. Где посмотреть можно?

f4rt~
28.08.2018
21:24:52
композиция, когда ты создаешь зависимость сам в конструкторе/методе/etc увеличивает связность
агрегация, очень хорошо дружит с DIP, реализуется зачастую через DI, делает её часто DiC, суть получить готову зависимость извне и работать с ней

Adel
28.08.2018
21:26:16
https://www.visual-paradigm.com/guide/uml-unified-modeling-language/uml-aggregation-vs-composition/
вот тут говоритсяненмого о другом

Google

Adel
28.08.2018
21:28:52
эти понятия вообще не говорят о конструкторах... они более выского порядка

f4rt~
28.08.2018
21:29:46
конструктор можно опустить проводить инъекцию можно и через метод
давай линк получше
нет смысла объяснять почему там чепуха
и бтв если гуглить что то вроде композиция/агрегация ооп, там смотрят с другого угла, объясняют на примере отношений принадлежности
типо агрегация по ссылке, существуют независимо друг от друга, один имет ссылку на другого, если один уничтожет то второй останется
это сложно,в голове не остается, рассматривать такие штуки нужно через призму языка на котором ты пишешь

Adel
28.08.2018
21:35:50

f4rt~
28.08.2018
21:36:12
просто никто не смотрит на эти штуки под этим углом

Adel
28.08.2018
21:36:22
смотрят:)

f4rt~
28.08.2018
21:36:23
безусловно важно как связан комп, проц и память
а так же чем с собакой

Adel
28.08.2018
21:36:31
и делают агрегаты. или просто сущностис VO

f4rt~
28.08.2018
21:37:02
ты сейчас уповаешь на контекст которого нет
а тут речь о том, что если человек нуждается в собаке он не может вырастить её внутри себя, он должен получить её откуда-то извне
и о том, что такого рода связь несет нужные бенефиты, вроде собаку можно заменить другой
нет связности, все хорошо и нормально
а если ты человек и нужаешься в другом человеке, ты не можешь вмиг стать сиамским близнецом, а если сможешь и умрет один из вас, второй обречет насмерть тоже
а следовательно все можно упоростить до простых:
композиция, создаешь внутри (миришься с связностью, не можешь заменить)
агрегация, получаешь извне (соблюден DIP, реализуется через DI, удобно когда её делает DiC, все вкусно и хорошо)
для челов которые только начинают, то что в скобках можно до поры до времени опустить, что бы запомнить простой принцип

Adel
28.08.2018
21:41:39
композиция - там тоже можно получить извне :)

Google

Adel
28.08.2018
21:41:48
кароч ладно. я заколебался :)
бесполезное переливание из пустоговпорожнее :)

f4rt~
28.08.2018
21:43:56
что противоречит твоим же описаниям композиции

Adel
28.08.2018
21:44:30
почему же?
типа я тея породил я и убью? :)
не. не надо тут бульбу включать :)
помнится в Delphi надо было указывать каждому компоненту - компонент-родитель.
и когда родитель умирал - умирали и все его дети :)
т.е. совсем другая логика

f4rt~
28.08.2018
21:46:23
ну я изначально говорил, что рассматриваю эти штуки через призму пхп

Adel
28.08.2018
21:46:41
в пхп тоже самое

Adel
28.08.2018
21:47:00
механизмыуничтожения не тарасобульбовские

f4rt~
28.08.2018
21:47:22
в общем добавим композиция/агрегация в твой списочек триггеров, наряду с валидация в базе

Adel
28.08.2018
21:47:55
да не :))
валидация с unique/exists правилами - это 100% агр

Rishat
28.08.2018
21:48:22
Валидация в базе?

Adel
28.08.2018
21:48:48
а композиция... просто бесполезные перекидывания мячика

Dmitry
28.08.2018
22:17:12

Adel
28.08.2018
22:17:48
а в чем там разница?

Google

Dmitry
28.08.2018
22:19:17
хм, ну по идее только в удобстве использования в клиентском коде

Adel
28.08.2018
22:19:27
ну в любом случае вас устрашает видимо... количество методов

Dmitry
28.08.2018
22:20:46
хотя в любом случае потребовалось бы делать абстрактный класс ведь с одинаковой реализацией

Adel
28.08.2018
22:20:56
угу
именно

Dmitry
28.08.2018
22:21:09
ну т.е. тут без наследования никак

Adel
28.08.2018
22:21:16
можно

Dmitry
28.08.2018
22:21:20

Adel
28.08.2018
22:21:28
ну там методов наверно штук 30

Admin
ERROR: S client not available

Dmitry
28.08.2018
22:21:37
дублировать их?
или проксировать?

Adel
28.08.2018
22:21:43
и люди не понимают.. это же все 30 методов дублировать!!!11
точнее проксировать. да.

Dmitry
28.08.2018
22:22:18
можно
но зачем?
дополнительный слой сложности
имхо в данном случае соблюдение LSP решает все проблемы

Adel
28.08.2018
22:26:57
возможно ты иправ. смотреть надо конкретности

Dmitry
28.08.2018
22:48:02
Согласен. Все зависит от ситуации

Google

Dmitry
28.08.2018
22:48:19
вот тут например более оправдана композиция имхо https://paste.laravel.io/2409c92c-fe48-4eaf-ab08-3c3c901b5147
те же коллекции
а в случае с eloquent - лучше наследование
хотя у меня и пример другой, другая ответственность у класса
у меня родилась гипотеза, что
наследование применимо тогда, когда классы имеют одинаковую ответственность

Nioray
29.08.2018
05:33:25
а нужно тесты писать на маленькие get методы?
в них же вроде и так все ясно. зачем их тестировать?

Azer
29.08.2018
05:48:41
это нова если что

Илья
29.08.2018
05:56:03
аналогично
у меня на 1.0.5 такое

Azer
29.08.2018
05:56:25
интересно какая версия последняя

Илья
29.08.2018
05:57:34
глянь на сайте
1.0.6 вроде

Azer
29.08.2018
05:57:44
а там пишут?

Илья
29.08.2018
05:58:05
1.0.7 даже
да, для зарегистрированных пользователей

Сергей
29.08.2018
05:59:55
мне кажется нова будет норм с версии 2.0.0))

Azer
29.08.2018
06:00:40
еще поиск не правильно работает.
обычный