Size: a a a

Software Design/Architecture/Zen

2020 October 07

AD

Apache DOG™ in Software Design/Architecture/Zen
Roman
И что? То, что кто-то там в другом месте хранил это число — это выглядит, как нарушение инкапсуляции и лечение — инкапсуляция, а не создание нового числа. Число само по себе ничего не говорит. А если это число, например, возраст человека, то "кому-то там" надо хранить ссылку на человека, а не число. И число с наступлением следующего дня рождения должно измениться, отчего "кто-то там другой" сможет прочитать в нужный ему момент времени новый возраст.

Можно довести до абсурда. "кто-то там" сохранил себе 20 лет назад возраст человека — 12 лет. Спустя 20 лет решил воспользоваться. Но человеку уже 32 года. Зачем это число 12 "кому-то там"?
это так не работает
источник

А

Алексей in Software Design/Architecture/Zen
Roman
И что? То, что кто-то там в другом месте хранил это число — это выглядит, как нарушение инкапсуляции и лечение — инкапсуляция, а не создание нового числа. Число само по себе ничего не говорит. А если это число, например, возраст человека, то "кому-то там" надо хранить ссылку на человека, а не число. И число с наступлением следующего дня рождения должно измениться, отчего "кто-то там другой" сможет прочитать в нужный ему момент времени новый возраст.

Можно довести до абсурда. "кто-то там" сохранил себе 20 лет назад возраст человека — 12 лет. Спустя 20 лет решил воспользоваться. Но человеку уже 32 года. Зачем это число 12 "кому-то там"?
инкапсуляция тут вообще не причём
источник

AD

Apache DOG™ in Software Design/Architecture/Zen
иммутабельные обьекты ничего не моделируют
источник

R

Roman in Software Design/Architecture/Zen
˸̧̨ ͅBlack Akula˸̧̨ ͅ ̤ ̬̪
Я устал доказывать, что иммутабельность - это хорошо...
Надеюсь, всем кто против, попадётся проект с 150к+ LOC, где разные модули через обсёрверы мутируют объекты других модулей (в Мадженте именно так). Пусть потратят недельку на поиск того, какое место кода мутировало нужный объект. А потом после изменения этого участка - обязательно отвалится другое место, для которого эта мутация предназначалась изначально.
Я не шучу - такая ситуация встречалась часто
У меня проект 600к+ LOC и я тебя ой как понимаю. Но не вижу решения в иммутабельности. Это ужасная архитектура и нарушение всех возможных принципов
источник

AD

Apache DOG™ in Software Design/Architecture/Zen
они описывают вычисления
источник

AD

Apache DOG™ in Software Design/Architecture/Zen
Roman
У меня проект 600к+ LOC и я тебя ой как понимаю. Но не вижу решения в иммутабельности. Это ужасная архитектура и нарушение всех возможных принципов
каких нафиг принципов?
источник

R

Roman in Software Design/Architecture/Zen
Apache DOG™
иммутабельные обьекты ничего не моделируют
А, так вот как. С этого и надо было начинать. А то у вас, как поглядишь, весь хаскель иммутабельный и чтобы окрыть дверь дома, нужно создать новый дом с открытой дверью
источник

RL

Romka Los in Software Design/Architecture/Zen
Roman
У меня проект 600к+ LOC и я тебя ой как понимаю. Но не вижу решения в иммутабельности. Это ужасная архитектура и нарушение всех возможных принципов
что такое 600k+ LOC ?
источник

SM

Sergey Milimko in Software Design/Architecture/Zen
Алексей
как раз стараются полигоны не менять, а все трансформации описывать матрицами
А в матрицах значения объекты разве?
источник

R

Roman in Software Design/Architecture/Zen
Romka Los
что такое 600k+ LOC ?
lines of code
источник

RL

Romka Los in Software Design/Architecture/Zen
Roman
lines of code
аа.
источник

DE

Dmitry Eliseev in Software Design/Architecture/Zen
Алексей
затем что для точек как раз это не очень хорошо
Про это пишу. Кому надо так делать, тому это "очень хорошо". Кому не надо, тому "не очень хорошо".
источник

DT

Dmitriy Tkachenko in Software Design/Architecture/Zen
Roman
У меня проект 600к+ LOC и я тебя ой как понимаю. Но не вижу решения в иммутабельности. Это ужасная архитектура и нарушение всех возможных принципов
А возможность незаметно для родителя в иерархической структуре поменять состояние дочерних объектов не нарушает никаких принципов?
источник

RL

Romka Los in Software Design/Architecture/Zen
иммутабельность не панацея :)
источник

AD

Apache DOG™ in Software Design/Architecture/Zen
если просто тупо лень почитать как это работает это не значит что это нарушение принципов
источник

DE

Dmitry Eliseev in Software Design/Architecture/Zen
Sergey Milimko
А в матрицах значения объекты разве?
Там чаще как раз структуры, а не объекты. Так что неожиданностей нет.
источник

DT

Dmitriy Tkachenko in Software Design/Architecture/Zen
Romka Los
иммутабельность не панацея :)
Ничто не панацея
источник

SM

Sergey Milimko in Software Design/Architecture/Zen
˸̧̨ ͅBlack Akula˸̧̨ ͅ ̤ ̬̪
Я устал доказывать, что иммутабельность - это хорошо...
Надеюсь, всем кто против, попадётся проект с 150к+ LOC, где разные модули через обсёрверы мутируют объекты других модулей (в Мадженте именно так). Пусть потратят недельку на поиск того, какое место кода мутировало нужный объект. А потом после изменения этого участка - обязательно отвалится другое место, для которого эта мутация предназначалась изначально.
Я не шучу - такая ситуация встречалась часто
Так какой критерий применимости в итоге? Или до вас это универсальный принцип который верен всегда?
источник

AD

Apache DOG™ in Software Design/Architecture/Zen
Roman
А, так вот как. С этого и надо было начинать. А то у вас, как поглядишь, весь хаскель иммутабельный и чтобы окрыть дверь дома, нужно создать новый дом с открытой дверью
Это у пюржаваооп которые не могут выдумать ничего кроме как мутацию заменить на копипасту но это самый примитивный случай
источник

А

Алексей in Software Design/Architecture/Zen
Roman
И что? То, что кто-то там в другом месте хранил это число — это выглядит, как нарушение инкапсуляции и лечение — инкапсуляция, а не создание нового числа. Число само по себе ничего не говорит. А если это число, например, возраст человека, то "кому-то там" надо хранить ссылку на человека, а не число. И число с наступлением следующего дня рождения должно измениться, отчего "кто-то там другой" сможет прочитать в нужный ему момент времени новый возраст.

Можно довести до абсурда. "кто-то там" сохранил себе 20 лет назад возраст человека — 12 лет. Спустя 20 лет решил воспользоваться. Но человеку уже 32 года. Зачем это число 12 "кому-то там"?
Не важно что число говорит. Важно что число - иммутабельное, и число 4 всегда останется числом 4. Вот с точками точно также должно быть.
источник