Павел
в питухоне та же история. Откуда это правило про иммутабельность? Опять рандом хуй с интернетов вещает?
Опять таки, рандомный хуй это когда то придумал (VO), но не помню было ли это в самом ДДД первоисточнике.
Павел
Иммутабельность на уровне поведения, а не возмжности языка
Павел
Потому как ты верно сказал, в том же питоне нет приватов.
The Ant
воощето есть
Павел
воощето есть
шо то упустил я значит
Алексей
в JS нет приватов
The Ant
суть в том, что в языках, которые были приведены в пример любая хрень является объектом
Павел
воощето есть
Вроде на увроне конвенции, не более. Разве нет? Ща бегло прогуглил
The Ant
и простые скаляры это тоже объекты, объекты-значения
The Ant
Вроде на увроне конвенции, не более. Разве нет? Ща бегло прогуглил
в старых версиях, в новых есть _name, вот эти подчерки
Павел
в старых версиях, в новых есть _name, вот эти подчерки
Так подчерки вроде ничего не мешают, чисто внутри сообщенства правило
The Ant
они делают приватными свойства )
Павел
Хз может что-то изменилось
Павел
Но не думаю, слишком сильное изменение
Vlad
а зачем вообще приваты?) как и протектед?
The Ant
Хз может что-то изменилось
https://docs.python.org/3/tutorial/classes.html#private-variables
Павел
а зачем вообще приваты?) как и протектед?
Для инкапсуляции на уровне кода, а не было на уровне соглашений
Павел
https://docs.python.org/3/tutorial/classes.html#private-variables
Ну вот я тоже смотрю - написано, такого нет в питоне
Vlad
как инкапсуляция связано с спецификаторами доступа?
Павел
как инкапсуляция связано с спецификаторами доступа?
Так что мы не можем работать с объектом, вне его публичного api
Павел
А без спецификаторов - можем
Vlad
ну так работай только с публичным api
Vlad
конрактов не хватает чтоли?
Павел
ну так работай только с публичным api
Чем прямой доступ к свойству не контракт объекта
Павел
Ну хз, ошибками сыпет
Ну я тоже хз, я в питоне почти никак, так просто доку читал пару лет назад. В общем даже в той доке что ты скинул написано, что такого нет в питоне. Почему у тебя сыплет - я хз, мб для даблДандера по другому надо обращаться или рили что-то поменялось
The Ant
ну там есть прокладка какая-то в виде прокси или хз чо, позволяет получить доступ к привату
The Ant
А не, вот такое. добавление имени класса префиксом. Говно короче какое-то.
The Ant
ну по сути, оно как бы есть )
Павел
The Ant
приват шрёдингера 😂
The Ant
помощника для игры писал себе, чтобы кнопку жал когда вылетает значек, для усиления умений 😄 было весело
Павел
в питон стоит углубится, хотябы поиграца со всякими штуками типа OpenCV или нейросетки пообучать.
Это да, питон прикольный. Но чет у меня не дальше посмотреть доку - со всеми языками к которыми я притрагивался) не фанат короче ) Но питон этим прикольный - согласен
The Ant
дело не в прикольности. На нем пездец сколько всего написано
The Ant
особено под нейронки всякие
Павел
и десктоп, и нейронки, и биг дата
Павел
Обширное применение
Юра
Короче я понял
Юра
const a = 2 Это дто let a = 2 Это value object
Юра
У него есть свойство age
Юра
Почему б... при изменении возраста я должен нового человека создавать
Юра
Я согласен с тем что я в 5 лет и я в 30 лет слегка разные люди
Юра
Но если изменение всего один год
Юра
Имутабельность крута в основном при многопоточности
Юра
Но как обычно все дошло до абсурда где в реакте изменяют локальный стейт компонента через создание нового массива
Юра
И никто не смог мне объяснить нафига
Юра
Проблема в том что мгогое перекочевало к нам из других языков, там где это было реально необходимо, а у нас вопросики возникают. Чтобы понять например что такое POJO, надо понимать что такое Java beans, и зачем стали нужны эти поджо
Юра
Если это какой-то хаскель, где все крутится вокруг имутабльного стейта, то там понятно зачем имутабельность. А в других языках опять же вопросики
Юра
В дарте круто сдедали иммутабельные дто через кодоген
Юра
Ты просто пишешь свойства класса и получаешь в итоге готовый класс со всякими with... методами
Юра
В пхп кстати могли бы тоже сделать инструмент по типу dart build и генерить много всего полезного
The Ant
Но как обычно все дошло до абсурда где в реакте изменяют локальный стейт компонента через создание нового массива
ну вот да, а потом борятся с производительностью всякими микрооптимизациями, ха ха!
Юра
Ага и все забывают как-то что где-то там существует гарбадж коллектор которвй вынужден все эти массивы еще и трекать и убивать
Юра
А потом.. почему к меня фризы в UI? Да потому что гц запустился
Alexey
Почему б... при изменении возраста я должен нового человека создавать
Ну, так человек и не VO, человек - Entity. А вот возраст может быть представлен в виде VO. Но вообще контекст решает же
Alexey
откуда это правило?
Да даже из названия это понятно. Объект-значенте. Другое значение - другой объект.
The Ant
и пример ваш с Money - говно, за уши притянули.
Konstantin
Почему б... при изменении возраста я должен нового человека создавать
потому что человек - сущность. она идентифицируема. а "100 рублей" - нет
Павел
А человек
Ну короче вам все ещё расписали) человек entity, но зависит он контекста, но мало представляю контекст, где человек vo у которого есть года.
Павел
Походу тут все ответили)
Юра
Ладно надо расчехлить книгу по ddd
Юра
И разучится кодить потому что начнешь постоянно думать что есть дто а что домен а что валью обджект. Как разучится ходить если начать думать о том как ходить )
Sergey
Любая денежная бумажка имеет код уникальный
Об этом и речь, в некоторых контекстах, например если мы автоматизируем систему гознака, каждая купюра имеет уникальный идентификатор и поэтому является сущностью, а не VO. Но в большинстве случаев нам этот идентификатор не нужен, а важна только валюта и сумма, тогда это VO.
Konstantin
Любая денежная бумажка имеет код уникальный
нет, это не бумажка. это "сто рублей", которые стоит батон хлеба. не какая-то конкретная купюра с таким-то номером, а просто абстрактная сотка
Юра
Да понял я понял
Alexey
Ну короче вам все ещё расписали) человек entity, но зависит он контекста, но мало представляю контекст, где человек vo у которого есть года.
Ну, так вот если с потолка на вскидку, допустим какая-то система пропусков. Общественный транспорт например. Метро, автобус, там... Люди в данном случае никак не идентифицируются и просто являются относительно однообразными единицами. Но в зависимости от возраста могут пользоваться разными льготными тарифами (дети, пенсионеры).
Юра
У меня другой вопрос ьс имутабельностью, более практичный
Юра
Допустим у нас есть какой-то контейнер который хранит иммутабельные дто
Юра
И другой какой-то контейнер
Юра
Хотя наверное дто и не должны нигде хранится
Юра
Короче вопрос в том как обновить все иммутабельные объекты