Evgeniy
модель зависящая от хранения
Sergey
ты можешь бизнес логику вынести в доменную сущность которая будет хранить данные внутри ar моделек
Evgeniy
ок )
Sergey
class User { /** * @var UserDataModel */ private $userData; }
Sergey
вот о чем я
Ale
но просто вроде все ок с таким подходом и хаскель тогда один из самых ОО языков программирования)
Sergey
это ли имел ввиду Алан Кей?)
не уверен... он точно говорил что "но я не имел ввиду C++"
Evgeniy
вообщем ООП головного мозга наверно также плохо как и ФП головного мозга и подобного)
Sergey
но просто вроде все ок с таким подходом и хаскель тогда один из самых ОО языков программирования)
Об этом Вэст вещает в своих речах... мол что ФП это просто очередной виток очевидной идеи об изоляции побочных эффектов
Sergey
тип тренд ФП с монадами и т.д. это лишь повторение того что подразумевалось под ооп
Sergey
что бы понять предпосылки появления всего этого булшита
Sergey
то самое которое goto considered harmful
Evgeniy
что именно Дэйкстры почитать
Evgeniy
мне нравиться как он пишет он норм мужик)
Sergey
http://david.tribble.com/text/goto.html
Sergey
вот тут с пояснениями и разбором мыслей
Evgeniy
это про ненависть к goto ?
Ale
это объяснение проблемы с goto
Ale
про сложность верификации такой программы
Evgeniy
у меня где то перевод избранных статей его лежит
Sergey
это про ненависть к goto ?
Here Dijkstra observes that humans are better at visualizing static relationships than dynamic relationships. Thus, he argues, we should minimize the difference between the two when expressed as program code, so that the dynamic (nonconstant) aspects of the program are evident in the structure of the source code itself.
Evgeniy
даже поставлено todo чтобы их прочитать как время будет)
Ale
http://david.tribble.com/text/goto.html
только это какой-то дискашен на тему
Sergey
вот например одна из основных мыслей которые заставили меня сильно много думать
Ale
http://david.tribble.com/text/goto.html
блин, крутой разбор, я только оригинальное письмо читал и немного срачей на тему
fink3L
блин, крутой разбор, я только оригинальное письмо читал и немного срачей на тему
хм, а что может быть интересного в том что гото гавно?) вроде же это аксиома, давно же решили так умные дядьки
fink3L
То, что это не аксиома?
ну я хотел сказать, что гото это же что-то мертвое, с чем никогда не встретишься
fink3L
И почему так?
ну я не говорю, что плохо это читать, просто интересуюсь, какой с этого профит? Скажем так, меня это удивило. А плохо, никогда не думал на эту тему, но наверно потому, что несёт путаницу.
Ale
Их понимать надо для того, чтобы яснее понимать принципы, когда что-то стоит делать, а когда не стоит
Sergey
ну тоесть 90% информации описывает почему вообще такие штуки не очень хорошо. Не конкретно goto а почему вообще нам надо писать код по другому. ПОнимание этого позволит тебе лучше понять себя.
Evgeniy
а можно просто писать на битриксе и не забивать голову всякими умными словами
🐴
насколько бредовой выглядит идея сделать все модели immutable? а сеттеры заменить на что-то вроде withProperty('new value'): self
🐴
@fes0r Сергей ^
🐴
не знаю. пытаюсь понять возможные последствия для архитектуры
Ale
Сеттеры или их замена плохо)
🐴
я почитал про CQRS у Фаулера
🐴
вроде как это связанные вещи
Ale
Именно так и выглядят ValueObjects
🐴
но все равно не понятн
Evgeniy
имхо это может дать плюсы в много поточной среде
Sergei
я почитал про CQRS у Фаулера
в моем понимании оно про то, что в некоторых случаях (ээээ "доменах предметной области") отображение/чтение и изменение данных происходят существенно разным образом. в С++ к примеру у каждого класса потенциально имеется ДВА интерфейса - для чтения и для записи.
Evgeniy
где хорошо чтобы все было имутабельно
Evgeniy
в случае с пхп большого профита врятли стоит ожидать
🐴
имхо это может дать плюсы в много поточной среде
у меня нет многопоточности, я говнокодер на пхп
Evgeniy
я написал имхо
Sergei
с точки зрения "модель только для чтения" - это immutable модель
Evgeniy
имутабельность еще хороша в js в асинхронности
Sergei
в которой за бонус скорости и асинхронности ты платишь памятью
Sergei
python весь immutable
Sergei
ну "почти весь"
Evgeniy
реакт вон на js тоже на этом базируется под копотом, говорят)
Evgeniy
имхо в php лучше оставить ValueObject а вот всякие сервисы вполне не плохо делать без side эффектов
Evgeniy
типо имутабельные, на самом деле не делать сэтеров и все передавать аргументами в метод)))
Evgeniy
ну и пару зависимостей в конструктор которые точно используются почти всегда)
Evgeniy
это опять же имхо
Evgeniy
например UserService
Evgeniy
очвидно должен уметь заводить нового пользователя
Evgeniy
по username, password и тд это аргументы метода
Evgeniy
а вот работать с бд, это в конструкторе, туда или pdo, или entityManager в зависимости от того что в приложение используется
🐴
понял
Evgeniy
это мое имхо
Evgeniy
не факт что правильное
🐴
т.е. получается просто соглашение, не жестко заданные правила
Evgeniy
компромис скорей)
🐴
в смысле, что сеттеры все же есть, но мы их договорились не использовать за пределами модуля
Sergei
теперь я не понял
Evgeniy
ага я тоже, перестал понимать)
Sergei
как оно после этого immutble?