
Sergei
11.01.2017
08:01:55
в которой за бонус скорости и асинхронности ты платишь памятью
python весь immutable
ну "почти весь"

Evgeniy
11.01.2017
08:02:47
реакт вон на js тоже на этом базируется под копотом, говорят)

Google

Evgeniy
11.01.2017
08:03:51
имхо в php лучше оставить ValueObject а вот всякие сервисы вполне не плохо делать без side эффектов
типо имутабельные, на самом деле не делать сэтеров и все передавать аргументами в метод)))
ну и пару зависимостей в конструктор которые точно используются почти всегда)
это опять же имхо

da horsie
11.01.2017
08:06:08

Evgeniy
11.01.2017
08:06:52
например UserService
очвидно должен уметь заводить нового пользователя
по username, password и тд это аргументы метода
а вот работать с бд, это в конструкторе, туда или pdo, или entityManager в зависимости от того что в приложение используется

da horsie
11.01.2017
08:08:32
понял

Evgeniy
11.01.2017
08:08:39
это мое имхо
не факт что правильное

da horsie
11.01.2017
08:08:50
т.е. получается просто соглашение, не жестко заданные правила

Google

Evgeniy
11.01.2017
08:09:06
компромис скорей)

da horsie
11.01.2017
08:09:21
в смысле, что сеттеры все же есть, но мы их договорились не использовать за пределами модуля

Sergei
11.01.2017
08:09:34
теперь я не понял

Evgeniy
11.01.2017
08:09:40
ага я тоже, перестал понимать)

Sergei
11.01.2017
08:09:44
как оно после этого immutble?

da horsie
11.01.2017
08:10:16
короче
исходный вопрос

Sergei
11.01.2017
08:10:26
давай
(а то я запутался)

da horsie
11.01.2017
08:10:37
беру и всем моделям говорю: "нельзя вилкой"
т.е. нельзя сеттеры

Evgeniy
11.01.2017
08:10:42
данные переданные в конструктор не меняем

da horsie
11.01.2017
08:11:03
как это может повлиять на архитектуру проекта в целом?

Evgeniy
11.01.2017
08:11:07
через публичные методы

Sergei
11.01.2017
08:11:36

Evgeniy
11.01.2017
08:11:49

da horsie
11.01.2017
08:11:59

Evgeniy
11.01.2017
08:12:01
лучше 1 раз увидеть чем 100 раз услышать)

Sergei
11.01.2017
08:12:28

Google

Aleh
11.01.2017
08:17:17
несколько объектов спокойно могут ссылаться на один и тот же vo
с сущностями сложнее, если они immutable, то ссылки из других сущностей будут не на объекты, а только на id, получать объекты каждый раз для общения надо заново, плюс при изменении надо не забывать их словить и заперсистить
в cqrs read-model это не доменный объект, а что-то уровня dto + finder к нему
доменная модель это write model

da horsie
11.01.2017
08:19:28
Понял
То есть cqrs это не совсем про мой случай

Aleh
11.01.2017
08:20:47
а сервисы immutable потому что не имеют состояния... Ну да)

Evgeniy
11.01.2017
09:00:40
Serivce часть namespace ?)

Evgeniy
11.01.2017
09:01:22
Здесь же все ООП, ORM, DDD, SOLID, CORS
причем наверно каждый по своему понимает эти термины)

finkel
11.01.2017
09:02:54
а кто-то не понимает ?

?
11.01.2017
09:05:33
Вы продолжайте, мы тут сидим, молчим , гуглим

Evgeniy
11.01.2017
09:06:20
Ну тогда mvc, тут довольно много всего можно нагуглить)
работать надо(

?
11.01.2017
09:07:15
тру

Google

finkel
11.01.2017
09:08:23
но у меня хоть часть того, что вы здесь обсуждаете в проекте, вроде.

Dmitriy
11.01.2017
09:09:32
о. у него новая картинка . спс.

Admin
ERROR: S client not available

Aleh
11.01.2017
09:25:32
а как называют в вашей религии ?
зачем мне навязывать свою религию, если я могу указать на проблемы твоей :3 Где заканчивается ответственность UserService? Какие методы там должны быть?

Evgeniy
11.01.2017
09:26:00
где заканчивается там и заканчивается)
это все зависит от задачи)

Aleh
11.01.2017
09:26:24
как ты понимаешь, новый метод надо добавить в UserService или куда-то еще?

Evgeniy
11.01.2017
09:27:16
по фазе луны
это сарказм
если серьезно то зависит от ситуации и от доступных вариантов в приложение
просто строить архитектуру которую понимает только 1 человек в команде тоже не есть гуд
даже если она сделана по всем канонам
и лучшим практикам

Aleh
11.01.2017
09:28:40
ну так как новому человеку понять
чем занимается UserService

Evgeniy
11.01.2017
09:29:59
он предоставляет часто выполняемые действия пользователя в виде методов
чтобы вызвать из контроллера и не парится
или middleware или еще откуда

Aleh
11.01.2017
09:38:39
http://eax.me/kolkhoz-doctrine/

Google

F01134H
11.01.2017
09:43:04

Aleh
11.01.2017
09:46:56
почему нет AppService где просто частые действия в приложении живут?

Sergey
11.01.2017
10:35:46

Evgeniy
11.01.2017
10:41:31
и делать god object не везде возможно
и нужно
тут опять же все от деталей ситуации зависит

Sergey
11.01.2017
10:42:46
> и делать god object не везде возможно
ты хочешь сказать что god object это хоть когда-нибудь нужно?)

Evgeniy
11.01.2017
10:43:05
когда поджимают сроки например

Aleh
11.01.2017
10:43:13