Size: a a a

Software Design/Architecture/Zen

2020 September 25

AD

Apache DOG™ in Software Design/Architecture/Zen
что ООП что процеДУРный код одна лабуда
источник

E

Evgen in Software Design/Architecture/Zen
Опять вода водянистая по поводу ООП/ФП/ПП )
источник

IR

I Raimbayev in Software Design/Architecture/Zen
Ребят, день добрый!
Может кто-нибудь сталкивался с задачей выбора оптимального on premise файлового хранилища?

Есть проект, требуется распределенное файловое хранилище для большого объема данных - от 10 Тб общего объема, файлы размером от 10кб до 1гб, с поддержкой реплик, гарантией записи, в идеале ещё с шардированием из-под коробки.

Не могу взять облачные решения, так как требуется развернуть все это на инфраструктуре заказчика.

Нашел решение - min.io, вроде по всем параметрам подходит. Может есть ещё какие-то варианты?

Что-нибудь можете сказать про использование монги (grid fs)? Ещё видел некий ceph, но показался оверкиллом.
источник

SP

Sergey Protko in Software Design/Architecture/Zen
Андрей Ява
Понатыкают анемиков по всему проекту и считают что они пошли в ФП
вот опять же, если есть возможность явно типами задавать переходы стэйта и связывать это с функциями - это в целом не сильно отличается по смыслу от классов и агрегатов

главное informathin hiding а способов достигнуть этого в целом не мало (или мало... но они есть)
источник

SP

Sergey Protko in Software Design/Architecture/Zen
I Raimbayev
Ребят, день добрый!
Может кто-нибудь сталкивался с задачей выбора оптимального on premise файлового хранилища?

Есть проект, требуется распределенное файловое хранилище для большого объема данных - от 10 Тб общего объема, файлы размером от 10кб до 1гб, с поддержкой реплик, гарантией записи, в идеале ещё с шардированием из-под коробки.

Не могу взять облачные решения, так как требуется развернуть все это на инфраструктуре заказчика.

Нашел решение - min.io, вроде по всем параметрам подходит. Может есть ещё какие-то варианты?

Что-нибудь можете сказать про использование монги (grid fs)? Ещё видел некий ceph, но показался оверкиллом.
minio норм
источник

k

knopkod4v in Software Design/Architecture/Zen
Sergey Protko
ну тут опять же нужны конкретные примеры. во всяком случае я не готов какие-то общие правила формулировать
у меня пример есть только с чем-то типа multitenant системы, где нужен объект tenant-а, для того чтобы другие объекты создавать (нужен идентификатор). Но там нет никаких инвариантов, так что может можно и просто id обойтись
источник

VS

Vlad Sobenko in Software Design/Architecture/Zen
Sergey Protko
ну в реальности причин делать new не так много, и обычно это как-то связано логически бизнес логикой... мол... ты ж не будешь просто так создавать что-то...

Мне вот нравится пример - допустим у нас есть стандартная регистрация пользователя с верификацией email-а (потому что на email будут приходить важные вещи и нам важно что бы пользователь не ввел херню - ему же хуже).

В этом случае мы можем создать некий агрегат который будет хранить в себе неподтвержденный email  (UnconfirmedEmail какой, я так себе в нэйминг) и после подтверждения ты можешь использовать этот агрегат что бы сделать какого-нибудь Customer.

В этом случае вся валидация прекондишенов для создания Customer будет происходить в рамках UnconfirmedEmail и причин кастомеру ругаться на email не будет. Так же как и причин по которым ты где-то еще захочешь сделать какого-то другого кастомера с таким же набором ограничений на входящие данные.

Пример может так себе конечно, но смысл в этом. Скрыть информацию о отдельном этапе жизни данных от всей остальной системы. Кастомеру теперь об этом знать не надо. И всем кто работает с кастомером тоже...
Всё равно хотя в каком то аггрегате будет проверка на пустую строку и бросание исключения в конструкторе для email
источник

SP

Sergey Protko in Software Design/Architecture/Zen
Vlad Sobenko
Всё равно хотя в каком то аггрегате будет проверка на пустую строку и бросание исключения в конструкторе для email
проверки будут но не обязательно в конструкторе
источник

VS

Vlad Sobenko in Software Design/Architecture/Zen
Sergey Protko
проверки будут но не обязательно в конструкторе
Ну в фабричном методе ладно
источник

VS

Vlad Sobenko in Software Design/Architecture/Zen
Sergey Protko
проверки будут но не обязательно в конструкторе
напр new NotEmptyString('email@test.xy');
источник

SB

Sergei Baikin in Software Design/Architecture/Zen
Vlad Sobenko
Всё равно хотя в каком то аггрегате будет проверка на пустую строку и бросание исключения в конструкторе для email
а почему исключение а не сообщение?
источник

VS

Vlad Sobenko in Software Design/Architecture/Zen
Sergei Baikin
а почему исключение а не сообщение?
Тоже как вариант
источник

SB

Sergei Baikin in Software Design/Architecture/Zen
Vlad Sobenko
напр new NotEmptyString('email@test.xy');
а валидация входных данных вам на что?
источник

VS

Vlad Sobenko in Software Design/Architecture/Zen
Sergei Baikin
а почему исключение а не сообщение?
Типа (string) => NotEmptyString|Error?
источник

АЯ

Андрей Ява in Software Design/Architecture/Zen
Sergey Protko
вот опять же, если есть возможность явно типами задавать переходы стэйта и связывать это с функциями - это в целом не сильно отличается по смыслу от классов и агрегатов

главное informathin hiding а способов достигнуть этого в целом не мало (или мало... но они есть)
если есть возможность и у тебя код написан руками. то не важно какими конкретно паттерными и подходами ты пользуешься.
источник

SP

Sergey Protko in Software Design/Architecture/Zen
Андрей Ява
если есть возможность и у тебя код написан руками. то не важно какими конкретно паттерными и подходами ты пользуешься.
"хочешь хорошо делай хорошо". Отличное и оч полезное замечание
источник

SB

Sergei Baikin in Software Design/Architecture/Zen
Vlad Sobenko
Типа (string) => NotEmptyString|Error?
new UserHadInvalidEmail
источник

АЯ

Андрей Ява in Software Design/Architecture/Zen
а когда у тебя в проекте "тру-ФП" с мутабельными анемиками и процедурками запихнутыми в статически методы, то это не оч
источник

КГ

Константин Грачев... in Software Design/Architecture/Zen
Sergey Protko
"хочешь хорошо делай хорошо". Отличное и оч полезное замечание
нормально делай нормально будет
источник

SP

Sergey Protko in Software Design/Architecture/Zen
Андрей Ява
а когда у тебя в проекте "тру-ФП" с мутабельными анемиками и процедурками запихнутыми в статически методы, то это не оч
госпади что за бред ты несешь?
источник