Size: a a a

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

2021 July 04

MS

Maxim Smirnov in Архитектура ИТ-решений
change data capture (cdc) - название класса инструментов для захвата изменений данных и переноса их куда вам надо
источник

AL

Alexander Luchkov in Архитектура ИТ-решений
Хм, попробую донести мысль по другому.
Проблема - это наличие неразрешимого в текущем контексте противоречия.

Пока вы не сформулировали противоречие - говорить о необходимости внесения изменений рано.
источник

M

Michael in Архитектура ИТ-решений
Основная проблема - структура легаси базы не соответствует ни тому, как это принято в выбранном фреймворке для нового проекта, ни общепринятому подходу. Но я понял, как это разрулить. Переименую таблицы, поправлю код легаси проекта. Буду менять структуру таблиц и добавлять новые по мере необходимости
источник

GM

Gerr Mes in Архитектура ИТ-решений
источник

M

Michael in Архитектура ИТ-решений
Спасибо
источник

p

pragus in Архитектура ИТ-решений
А что за мифический "фреймворк"?
источник

M

Michael in Архитектура ИТ-решений
Легаси - чистый  PHP, фреймворк - Laravel. Но это не принципиально ИМХО.
источник

p

pragus in Архитектура ИТ-решений
выглядит как шило на мыло
источник

A

Anton in Архитектура ИТ-решений
Почему ?
источник

M

Michael in Архитектура ИТ-решений
тоже интересно узнать, почему? @pragus
источник
2021 July 05

IG

Ilia Garaga in Архитектура ИТ-решений
Тут может быть пара таких проблем с поиском мест использования таблиц со старым названием. 1. В коде название таблицы вычисляется, например, не 'hour_archive', а 'hour' . '_archive'. 2. Есть скрипты "не из проекта", которые используют базу. Например, скрипты из крона.
источник

M

Michael in Архитектура ИТ-решений
С именами порядок - они не определяются динамически. А вот со скриптами да, придется поискать. Тем более, что даже базового ридми в проекте нет.
источник

IG

Ilia Garaga in Архитектура ИТ-решений
Если первым будет меняться код, а не база, и если будет использоваться Eloquent, то название таблицы можно определить через свойство $table. Вдруг поможет эта информация.
источник

M

Michael in Архитектура ИТ-решений
Это я знаю :) просто хотелось сразу избавиться от User, ModuleRole и подобного.
источник

I

Ivan in Архитектура ИТ-решений
Звучит похоже как на https://docs.microsoft.com/en-us/azure/architecture/patterns/strangler-fig , но только там не про "оборачивание фреймворком". Вообще, глубокая зависимость приложения от конкретного фреймворка - не самое лучшее архитектурное решение. Об этом Ralf Johnson писал еще в 1991, а сегодня, в век DDD/Clean/Onion/Hexagonal/CQRS, такая цель, как "мигрировать на современный фреймворк", звучит несколько интересно. В хорошей архитектуре, фреймворк обычно не проникает выше логики уровня инфраструктуры, и легко сменяется с одного на другой.

Непонятно, какую проблему пытаетесь решить (согласен с @WatchTh15 ). Для исправления структуры БД вроде необязательно внедрять фреймворк.

Про методы работы с легаси есть монументальная книга “Working Effectively with Legacy Code” by Michael C. Feathers. Можете посмотреть в ней, возможно, найдете то, что ищете.
источник

AL

Alexander Luchkov in Архитектура ИТ-решений
Вообще я за то, чтобы у БД был API и абстракции уровня хранения данных никогда не протекали в логику приложения.

Можно конечно и кусок прикладной логики шить в бд.  Иногда это оправдано. Но чаще нет.

Поэтому с моей точки зрения наличие в коде приложения реализующего прикладную логику прямых обращений к абстракциям уровня хранения данных (таблицы, поля, вьюхи... Всё, кроме хранимых процедур) - bad smell.
источник

p

pragus in Архитектура ИТ-решений
php на php.
источник

M

Michael in Архитектура ИТ-решений
Менять надо весь код. Для этого фреймворк и нужен. Вопрос по базе был, так как не понятно было, как ее мигрировать на новую струкруту постепенно (теперь понял ;)).
За ссылку на паттерн и книгу  - спасибо. Посмотрю обязательно.
Что касается DDD  - это в плане миграции - сначала обернуть, потом разделить логику по доменам.
источник

M

Michael in Архитектура ИТ-решений
Реалии, к сожалению, таковы, что в проекте мало того, что нет никакой ORM. Там практикуется прямой доступ к базам данных, не принадлежащих проекту.
источник

ЯI

Я и твой кот I.... in Архитектура ИТ-решений
Прям почти как у меня ситуация. Делаю Strangler pattern, у новых (заменённых) сервисов свои базы данных.
источник