Функциональное программирование способствует неизменяемым классам и ссылочной прозрачности.
Проект, основанный на домене, состоит из объекта Value (неизменяемый) и сущностей (изменчивый).
Должны ли мы создавать неизменяемые объекты вместо изменчивых?
Предположим, что проект использует Scala в качестве основного языка, как мы можем писать Entities как классы case (неизменяемые), не рискуя устаревшим статусом, если мы имеем дело с concurrency?
Что такое хорошая практика? Сохранение объектов изменяет (var
поля и т.д.) И избегает синтаксиса классов case?