Size: a a a

Архитектура ИТ-решений

2019 December 12

d

dreamore in Архитектура ИТ-решений
Каждое поколение должно его переизобрести?)
источник

PD

Phil Delgyado in Архитектура ИТ-решений
Ilya Galakhov
Я тут как раз для того, чтобы понять как это лучше делать сейчас, спасибо 🙂
Ну и все это поверх распределенной kv СУБД (просто она была, можно и постгресс взять). И с нотификациями по изменениям.
Там главное - это версионирование метадаты - ты по логам любой операции должен мочь понять, какая версия использовалась
И, например, завершать длинные операции с той же версией, что и начал.
источник

GK

Gennadiy Kruglov in Архитектура ИТ-решений
Phil Delgyado
Ну и все это поверх распределенной kv СУБД (просто она была, можно и постгресс взять). И с нотификациями по изменениям.
Там главное - это версионирование метадаты - ты по логам любой операции должен мочь понять, какая версия использовалась
И, например, завершать длинные операции с той же версией, что и начал.
Вот это точно. Самая сложная задача - версионирование моделей и данных. Потому что Объект А может иметь как версию модели, так и версию данных. Точнее он всегда имеет эти версии.

И ещё многие забывают об ограничениях (constraints), а не стоит.
источник

GK

Gennadiy Kruglov in Архитектура ИТ-решений
Очень надеюсь, но тучи сгущаются. Боюсь прилетит какая-нибудь встреча:(
источник

GK

Gennadiy Kruglov in Архитектура ИТ-решений
Я не такой свободный, к сожалению. Можем отдельно встретиться за мой счёт.
источник

GK

Gennadiy Kruglov in Архитектура ИТ-решений
👍
источник

PD

Phil Delgyado in Архитектура ИТ-решений
Gennadiy Kruglov
Вот это точно. Самая сложная задача - версионирование моделей и данных. Потому что Объект А может иметь как версию модели, так и версию данных. Точнее он всегда имеет эти версии.

И ещё многие забывают об ограничениях (constraints), а не стоит.
Не только объект, но и процесс )
источник

AW

Alex Wells in Архитектура ИТ-решений
dreamore
Вижу вы начинаете строить key-value-attribute схему бд. Это антипаттерн. У вас база не нормализована, потом выборки не сможете делать и расширяемость будет страдать. Плюс исходный код начнет завязываться из-за бизнес требований на содержимое колонок типа вашей data, что ведёт к утечке контроля
В этой таблице будет 1-2 тысячи строк как максимум. Выборки по data не нужны, но если сильно приспичит (не приспичит) - современные базы прекрасно работают с json полями (с такими смешными цифрами разницы в производительности не будет вообще, подозреваю).
источник

AW

Alex Wells in Архитектура ИТ-решений
dreamore
Ну и в итоге ничего кроме монолита не получится построить, то есть теряете в гибкости дальнейшего развития. Или может каждому микросервисы свой key-value-attribute конструктор типов сделать? Или может сделать это отдельным микросервисом?) В общем губите гибкость
Я не понимаю, как это приводит к монолиту. Я наоборот отделил некую систему, включая ее хранилище. Сама по себе система никак не завязана на этих самый данных, она лишь знает что там лежит null или json. Остальное - задача клиентского кода (и.е. того, который уже связан с бизнес логикой).
источник

AW

Alex Wells in Архитектура ИТ-решений
Если "система" как то и зависит от бизнес логики, то только через интерфейсы и без жесткой связанности.
источник

IN

Igor Nikolskiy in Архитектура ИТ-решений
Alex Wells
Если "система" как то и зависит от бизнес логики, то только через интерфейсы и без жесткой связанности.
Ошибаешься на уровне функционала. Вьетнам не пройдёшь, Гена прав. Учи матчасть. Извини за резкость
источник

AW

Alex Wells in Архитектура ИТ-решений
Igor Nikolskiy
Ошибаешься на уровне функционала. Вьетнам не пройдёшь, Гена прав. Учи матчасть. Извини за резкость
"Учи матчасть" - слишком абстрактный совет.
источник

IN

Igor Nikolskiy in Архитектура ИТ-решений
Alex Wells
"Учи матчасть" - слишком абстрактный совет.
Короче, тогда твоя задача подходит для select * from everything
источник

GK

Gennadiy Kruglov in Архитектура ИТ-решений
Phil Delgyado
Не только объект, но и процесс )
Версионирование это ещё не всё ). Мы мозг заставляли работать, когда моделировали представление иерархий в разных разрезах (с разных точек зрения). Например, один и то же продукт может иметь разные представления в разрезе орг. структуры и в разрезе продуктовой линейки. Иными словами в Туле и в Москве продукт может отличаться,
источник

PD

Phil Delgyado in Архитектура ИТ-решений
А, ну это в DDD просто в разных доменах по разному представляется )
источник

IN

Igor Nikolskiy in Архитектура ИТ-решений
Phil Delgyado
А, ну это в DDD просто в разных доменах по разному представляется )
Не совсем
источник

GK

Gennadiy Kruglov in Архитектура ИТ-решений
Igor Nikolskiy
Не совсем
Да, не всё так просто)
источник

PD

Phil Delgyado in Архитектура ИТ-решений
Или синхронизация через сообщения )
источник

GK

Gennadiy Kruglov in Архитектура ИТ-решений
Не могу к сожалению поддержать разговор прямо сейчас
источник

IN

Igor Nikolskiy in Архитектура ИТ-решений
Phil Delgyado
Или синхронизация через сообщения )
Например, а это уже функция предметной области
источник